Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.
Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.
Пример 4:
Str:= 'Мама ' + 'мыла ' + 'раму';
В результате получится строка: 'Мама мыла раму'.
Операции отношения: =, <, >, <=, >=, <>.
Позволяют произвести сравнение двух строк, в результате чего получается логическое значение (true или false). Операция отношения имеет приоритет более низкий, чем операция сцепления. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.
Пример 5:
Выражение
Результат
‘True1’<’True2’
True
‘Mother’>’MOTHER’
True
‘Мама ‘ <> ‘Мама’
True
‘Cat’=’Cat’
True
Таблица 1
1) Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition — целочисленные выражения.
Значение S
Выражение
Результат
‘Мама мыла раму’
Copy(S, 6, 4)
‘мыла’
‘Маша ела кашу’
Copy(S, 1, 8)
‘Маша ела’
2) Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.
Выражение
Результат
Concat('Маша ', 'ела ', 'кашу')
'Маша ела кашу'
3) Функция Length(S) — определяет текущую длину строки S. Результат — значение целого типа.
Значение S
Выражение
Результат
'test-5'
Length(S)
'(A+B)*C'
Length(S)
4) Функция Pos(S1, S2) — обнаруживает первое появление в строке S2 подстроки S1. Результат — целое число, равное номеру позиции, где находится первый символ подстроки S1. Если в S2 подстроки S1 не обнаружено, то результат равен 0.
Значение S2
Выражение
Результат
'abcdef'
Pos('cd', S2)
'abcdcdef'
Pos('cd', S2)
'abcdef'
Pos('k', S2)
5) Процедура Delete(S, Poz, N) — удаление N символов из строки S, начиная с позиции Poz. В результате выполнения процедуры уменьшается текущая длина строки в переменной S.
Исходное значение S
Оператор
Конечное значение S
'abcdefg'
Delete(S, 3, 2)
'abefg'
'abcdefg'
Delete(S, 2, 6)
'a'
6) Процедура Insert(S1, S2, Poz) — вставка строки S1 в строку S2, начиная с позиции Poz.
Исходное значение S2
Оператор
Конечное значение S2
'ЭВМ РС'
Insert('IBM-', S2, 5)
'ЭВМ IBM-PC'
'Рис. 2'
Insert('N', S2, 6)
'Рис. N 2'
7) Процедура STR(x, out) преобразует численное выражение X в его строковое представление и помещает результат в out.
x:=12345;
out:=’’;
Str(x,out); {В переменную out будет записана строка ‘12345’}
8) Процедура VAL(st, x, code) преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.