СТРОКОВЫЕ ВЫРАЖЕНИЯ.
Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых констант, переменных, указателей функций и знаков операций. Над строковыми данными допустимы операция сцепления и операции отношения.
Операция сцепления (+) применяется для сцепления строк в одну результирующую строку. Например:
Выражение | Результат |
‘A’+’T’+’ ‘+’386’ | ‘AT 386’ |
‘Turbo’+’ ‘+’Pascal’+’ ‘+’7.0’ | ‘Turbo Pascal 7.0’ |
Следует учитывать, что в операциях сцепления длина результирующей строки не должна превышать 255.
Операции отношения (=, <>, <, >, >=, <=) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операции сцепления, т.е. вначале всегда выполняются все операции сцепления, если они присутствуют, и лишь потом реализуются операции отношения. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат выполнения операций отношения над строковыми операндами всегда имеет булевский тип и принимает значение true, если выражение истинно, и false, выражение ложно. Если строки имеют различную длину, но в общей части символы совпадают, считается, сто более короткая строка меньше, чем более длинная. Строки считаются равными, если они полностью совпадают по длине и содержат те же символы. Допускается смешение в одном выражении операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина строки должна быть равна единице, иначе возникает ошибка выполнения.
|
|
Delete(St,Poz,N) – удаление N символов строки St, начиная с позиции Poz. Если значение Poz>255, возникает программное прерывание.
Insert(Str1,Str2,Poz) – вставка строки Str1 в строку Str2, начиная с позиции Poz.
Str(IBR,St) – преобразование числового значения величины IBR и помещение результата в строку St. После IBR может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода расширяется автоматически до нужной длины.
Значение IBR | Выражение | Результат |
Str(IBR:6,St) | ‘__1500’ | |
4.8E+03 | Str(IBR:10,St) | ‘______4800’ |
Str(-IBR:3,St) | ‘-76854’ |
Val(St,IBR,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содержать незначащих пробелов в начале и конце. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружилось, значение Code равно нулю, если ошибка обнаружена, Code будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.
|
|
Значение St | Выражение | Результат |
‘1450’ | Val(St,IBR,Code) | Code=0 |
’14.2E+02’ | Val(St,IBR,Code) | Code=0 |
’14.2A+02’ | Val(St,IBR,Code) | Code=5 |
Concat(Str1,Str2,…,StrN) – выолняет сцепление строк Str1, Str2, …, StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255.
Length(St) – вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип.
Pos(Str1,Str2) – обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 подстроки Str1 не найдено, результат равен 0.
UpCase(Ch) – преобразует строчную букву в прописную. Параметр и результат имеют литерный тип. Обрабатывает буквы только латинского алфавита.
Copy(St,Poz,N) – выделяет из St подстроку длиной N символов, начиная с позиции Poz. Если Poz>Lenght(St), то результатом будет пробел; если Poz>255, возникает ошибка при выполнении.
Значение St | Выражение | Результат |
‘ABCDEFG’ | Copy(St,2,3) | ‘BCD’ |
‘ABCDEFG’ | Copy(St,4,10) | ‘DEFG’ |