Для обработки текстов в ТР используются следующие типы:
- короткая строка ShortString или String[N], N<=255;
- длинная строка String;
- широкая строка WideString;
- нуль-терминальная строка PChar.
Общим для этих типов является то, что каждая строка трактуется как одномерный массив, количество символов в котором может меняться в работающей программе.
Примеры объявления строковых типов:
Var
S: String [250]; // короткая строка длиной до 250 символов
SMax: ShortString; // длинная строка длиной до 255 символов
St: String; // длинная строка
SW: WideString; // широкая строка
PCS: Pchar; // ссылка на нуль-терминальную строку
AS: array [0..100] of Char; // нуль-терминальная строка
// длиной до 100 символов.
ТР позволяет рассматривать строковую переменную как набор символьных переменных, что дает возможность обращаться к отдельным символам по их индексам (номерам), указанным в квадратных скобках после идентификатора объекта строкового типа a[I].
Например, в слове а = ’абрикос’, a[1] = ‘а’, т.е. первая буква строки а.
Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно слева направо с учетом кодировки символов.
Для работы со строковыми переменными предусмотрены следующие процедуры и функции.
- функции:
d:=Length(a) - определяет текущую длину любой строки а, переменной d присваивается количество символов строки a, включая пробелы.
Применим функцию к нашему слову d:=Length(a), и получим что d=7
Concat(a1, a2,…, aN: string): String; - объединяет несколько строк.
Например, а2 = ‘ик’, тогда после применения k:= concat(a1,a2), k=’абрикосик’
Copy (a: string; I,C: integer):String; - вырезает из строки a с символов начиная с символа I.
Например, после применения f:=copy(a,5,3) получим, что b=’кос’
Pos(b,а: string):Integer; - отыскивает в строке a вхождение строки b и возвращает номер позиции, с которой она начинается.
- Процедуры:
Insert(b,a : string; I: Integer); - вставляет подстроку b в строку a начиная с позиции I.
Delete(a, I, C) - удаляет C символов из строки a начиная с позиции I.
Str(N, a) - преобразует число N в строку a.
Val(a,c,p) – преобразует строку а в число с. Если это возможно, то значение параметра р становится равно нулю.