Для работы с символьной информацией в ТР используют тип данных - строковый, именуемый ключевым словом STRING (или просто строка). Этот тип данных во многом похож на одномерный массив символов (Array[0..N] of char), но длина строки (максимальное количество символов N ограничивается числом 255). Значение N определяется при объявлении типа STRING(N) и может быть любой константой порядкового типа, но не больше 255. Значение N при объявлении типа STRING можно не указывать: в этом случае длина строки принимается равной 255 символам.
Строка в ТР трактуется как цепочка символов и к любому символу в строке можно обратиться по адресу (индексу), подобно одномерным массивам типа Array[0..N] of char. Самый первый байт в строке, имеющий адрес 0 (ноль), содержит код, равный числу символов в строке (длине строки).
Например, дана строка, имеющая следующее описание:
Var St:string;
Тогда длину строки St можно определить как значение функции Ord(St[0]).
Значением строки может быть любая последовательность символов, заключенная в одинарные кавычки (апострофы). Можно присваивать строке пустое значение, обозначаемое как '' (две одинарные кавычки подряд). При попытке записать в переменную строку длиннее, чем задано в описании, "лишняя" часть будет отсечена.
Строки можно присваивать, сливать и сравнивать.
Например:
Var st1,st2,st3,sts:string;
Begin
. . .
{ Операции присваивания}
st1:='Фамилия';
st2:='Имя';
st3:='Отчество';
{ Операция слияния}
sto:=st1+' '+st2+' '+st3;
{ В результате в строке sto будет 'Фамилия Имя Отчество'}
End; . . .
Сравнение строк основывается на порядке расположения символов в таблице ASCII. Например:
'abcd' = 'abcd' - результат сравнения True (истина);
'abc'<'bcd' так как код символа 'a' меньше кода символа 'b' и т.п.
Для работе со строками в ТР разработан ряд стандартных процедур и функций.