Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LYeKTsIYa_16_2.doc
Скачиваний:
27
Добавлен:
20.04.2019
Размер:
214 Кб
Скачать
☆

5.1. Строковые выражения.

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

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

Выражение

Результат

‘A’+’T’+’ ‘+’386’

‘AT 386’

‘Turbo’+’ ‘+’Pascal’+’ ‘+’7.0’

‘Turbo Pascal 7.0’

Следует учитывать, что в операциях сцепления длина результирующей строки не должна превышать 255.

Операции отношения (=, <>, <, >, >=, <=) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операции сцепления, т.е. вначале всегда выполняются все операции сцепления, если они присутствуют, и лишь потом реализуются операции отношения. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Результат выполнения операций отношения над строковыми операндами всегда имеет булевский тип и принимает значение true, если выражение истинно, и false, выражение ложно. Если строки имеют различную длину, но в общей части символы совпадают, считается, сто более короткая строка меньше, чем более длинная. Строки считаются равными, если они полностью совпадают по длине и содержат те же символы. Допускается смешение в одном выражении операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина строки должна быть равна единице, иначе возникает ошибка выполнения.

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

Delete(St,Poz,N) – удаление N символов строки St, начиная с позиции Poz. Если значение Poz>255, возникает программное прерывание.

Insert(Str1,Str2,Poz) – вставка строки Str1 в строку Str2, начиная с позиции Poz.

Str(IBR,St) – преобразование числового значения величины IBR и помещение результата в строку St. После IBR может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода количество разрядов, поле вывода расширяется автоматически до нужной длины.

Значение IBR

Выражение

Результат

1500

Str(IBR:6,St)

‘__1500’

4.8E+03

Str(IBR:10,St)

‘______4800’

76854

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’

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]