Строковые процедуры и функции

СТРОКОВЫЕ ВЫРАЖЕНИЯ.

Выражения, в которых операндами служат строковые данные, называются строковыми. Они состоят из строковых констант, переменных, указателей функций и знаков операций. Над строковыми данными допустимы операция сцепления и операции отношения.

Операция сцепления (+) применяется для сцепления строк в одну результирующую строку. Например:

Выражение Результат
‘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’

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: