КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Процедуры и функции для работы со строками string
Begin Begin Var End. Begin Const Var Разрешение использовать расширенный синтаксис Begin Var Проверка переполнения при арифметических операциях Begin Var Проверка выхода за пределы диапазона Разрешение использовать типизированные константы как переменные Проверка результата ввода-вывода And If (x > 4) // Вычисляется (x < 5) // НЕ вычисляется then...;
Использование длинных строк (AnsiString) {$H + } or {$H-} или {$LONGSTRINGS ON} or {$LONGSTRINGS OFF} По умолчанию: {$H + } или {$LONGSTRINGS ON} Зона действия: Локальный
{$I + } or {$I-} или {$IOCHECKS ON} or {$IOCHECKS OFF} По умолчанию: {$I + } или {$IOCHECKS ON} Зона действия: Локальный Применён в проекте OptPathRDLU. {$J + } or {$J-} или {$WRITEABLECONST ON} or {$WRITEABLECONST OFF} По умолчанию: {$J-} или {$WRITEABLECONST OFF} Зона действия: Локальный Ключ {$J + } применён в проектах KnightTurns и OptPathRDLU.
Генерация информации о текущих типах полей, методов, свойств, объявленных в секции Published (RTTI, RunTime Type Information ) {$M+} or {$M-} или {$TYPEINFO ON} or {$TYPEINFO OFF} По умолчанию: {$M-} или {$TYPEINFO OFF} Зона действия: Локальный
Если класс объявлен в режиме {$M-}, или не является потомком класса, объявленного в режиме {$M+}, секция Published запрещена. Задание размера стека {$M <Число: Мин. размер стека>, < Число: Макс. размер стека>} или {$MINSTACKSIZE <Число>} {$MAXSTACKSIZE <Число>} По умолчанию: {$M 16384, 1048576} Зона действия: Глобальный
1024 ≤ <Число: Мин. размер стека> ≤ 2147483647 <Число: Мин. размер стека> ≤ <Число: Макс. размер стека> ≤ 2147483647
{$R + } or {$R-} или {$RANGECHECKS ON} or {$RANGECHECKS OFF} По умолчанию: {$R-} или {$RANGECHECKS OFF} Зона действия: Локальный
Пример. TP7
i: integer; mA, nB: array [1..10] of integer; for i:= 1 to 10 do begin mA[i]:= 0; mB[i]:= 0; end; {$R-} i:= 12; mA[i]:= -7; writeln(mA[i]); // -7 writeln(mB[2]); // -7 {$R + } mA[i]:= -7; // RunTime Error writeln(mA[12]); // Constant Out Of Range end. {$Q + } or {$Q-} или {$OVERFLOWCHECKS ON} or {$OVERFLOWCHECKS OFF} По умолчанию: {$Q-} или {$OVERFLOWCHECKS OFF} Зона действия: Локальный
Пример. TP7
L: integer; L:= 2000000000; {$Q-} L:= L*L; // Реакции на переполнение нет writeln(L); // -1651507200 L:= 1000000000; {$Q + } L:= L*L; // RunTime Error end.
{$X + } or {$X-} или {$EXTENDEDSYNTAX ON} or {$EXTENDEDSYNTAX OFF} По умолчанию: {$X + } или {$EXTENDEDSYNTAX ON} Зона действия: Глобальный
Пример 1. TP7
{$X + } p: pChar; // То же, что p = ^Char; mC: array [0..39] of char = 'Petrov'#0; // Синтаксическая ошибка при {$X-} // Во ВСЕХ последующих операторах // будет выявлена синтаксическая ошибка при ключе {$X-} // При ключе {$X+} код нормально компилируется и работает. p:= 'Nikolaev'; writeln(Ord(p[8])); // 0 writeln(p); p:= @mC; writeln(p); writeln(p[0]); Пример 2. TP7
{$X + } uses crt; c: char; x, y: double; c:= readkey; ReadKey; // Синтаксическая ошибка при {$X-} x:= pi/2; y:= sin(x); sin(x); // Синтаксическая ошибка в любом случае end. Пример 3. Delphi
{$X + } function Factorial(N: longint): longint; var i: longint; Result:= 1; // Синтаксическая ошибка при {$X-} for i:= 2 to N do Result:= Result * i; // Синтаксическая ошибка при {$X-} end;
function Length(S: string): byte; Возвращает длину строки S. Значение длины равноценно значению Ord(s[0]), поскольку код «нулевого» байта строки есть её текущая длина.
function Copy(S: string; iStart, iLength: byte): string; Возвращает подстроку строки S – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы. Замечание: Copy(S, n, 1) равноценно S[n].
procedure Delete(S: string; iStart, iLength: byte); Удаляет из строки S её подстроку – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы.
function Index(S, SWhat: string): byte; Ищет первое вхождение подстроки sWhat в строку S. Результат – номер символа, начиная с которого найдено вхождение. Результат – ноль, если вхождение не найдено.
function Str(X: <числовой тип>): string; Возвращает строковое выражение числа X.
procedure Val(S: string; var X: <числовой тип>; IER: integer); Пытается преобразовать строку S в число и занести его в параметр-переменную X. Если попытка завершается удачно, IER=0, в противном случае IER<>0.
Дата добавления: 2014-01-04; Просмотров: 319; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |