байт расположен в самом начале строки (имеет нулевой номер) и содержит значение текущей длины строки.
Структура размещения строки в памяти:
Пусть N максимальная длина строки;
L текущая длина строки;
А ячейка памяти.
А содержит величину текущей длины строки (L).
А+1 ячейка содержит 1 символ строки;
...
А+L ячейка содержит последний значащий символ строки;
A+L+1
... незанятые ячейки памяти
А+N
Выражения, в которых операндами служат строковые данные, называются строковыми.
Строковые выражения состоят из строковых констант, переменных, указателей, функций и знаков операций. Над строковыми данными допустимы операция конкатенации (сцепления) и операции отношения.
Операция конкатенации (+) применяется для сцепления нескольких строк в одну результирующую строку.
Пример.
Stroka1:= 'IBM'; {длина строки 3 символа}
Stroka1:= Stroka1 + 'PC AT'; {длина строки 8 символов}
Помни:
· Если значение переменной после выполнения оператора присваивания превышает по длине максимально допустимую при описании величину, все лишние символы справа отбрасываются.
Важнейшее отличие строк от других типов данных заключается в том, что строки могут динамически изменять свою длину.
Операции отношения ( =, <, >, <>, <=, >= ) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция конкатенации.
Сравнение двух строк происходит по следующим правилам:
1. Более короткая строка всегда меньше более длинной;
2. Если длины сравниваемых строк равны, происходит поэлементное сравнение символов слева направо до первого несовпадающего символа. И та строка считается больше, в которой несовпадающий символ имеет больший номер в таблице ASCII;
Результат выполнения операций отношения над строковыми операндами всегда имеет булевский тип и принимает значение True, если выражение истинно, и False, если ложно.
Пример.
'dos6.22' < 'Dos6.22' True
'IBm' > 'IBM' False
3. Строки считаются равными, если они полностью совпадают по длине и содержат одни и те же символы.
В строковом выражении допускается смешение операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина строки должна быть равна 1,иначе возникает ошибка выполнения.
К отдельным символам строки можно обратиться по номеру (индексу) данного символа в строке. Индекс определяется целочисленным выражением, которое записывается в квадратных скобках сразу за идентификатором строковой переменной или константы.
Пример.
Stroka:= 'информатика'
Stroka[1+2] - 'ф'
Stroka[7] - 'а'
Запись Stroka[0] дает доступ к нулевому байту, содержащему значение текущей длины строки.
Для обработки строковых данных используются специальные процедуры и функции.
Delete (St: string; M, N: byte) - удаление N символов строки St начиная с позиции М. Если М > 255 возникает программное прерывание.
Insert (St1, St2: string; M: byte) - вставка строки St1 в строку St2, начиная с позиции M.
Пример.
St1:= 'IBM AT';
St2:= 'PC';
St3:= Insert (St1, St2, 4) 'IBM PC AT'
Str (A, St: string;) - преобразование числового выражения A в строковый формат и помещение результата в строку St.
После А может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода автоматически расширяется до нужной длины.
Пример.
Str(1500: 6, St) '_ _1500'
Val (St: string; A:<число>, Cod: byte) - преобразует значение числа в строковом формате в величину вещественного или целого типа и помещает результат в переменную А. Значение St не должно содержать незначащих пробелов в начале и конце строки. Cod - целочисленная переменная. Если во время преобразования ошибки не обнаружено, значение
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.