Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_2семестр.doc
Скачиваний:
59
Добавлен:
15.06.2014
Размер:
983.04 Кб
Скачать

Встроенные функции и процедуры для обработки строк

LENGTH(s:string):byte  выдает длину строки в символах.

Например, функция LENGTH(st), где St='ABBCCD' возвратит значение 6. CONCAT(s1,s2,...,sN:string):string - осуществляет сцепление строк. Например:

St:='1a'; S3:=Concat(St,'bc'); аналог S3:=St+'bc' S3='1abc'.

COPY(S:string; Start,Len:integer):string  выдает подстроку S длиной Len, начиная с символа с номером Start. Если Start >Length(S) (больше длины всей строки S), то функция вернет пустую строку; если Start>255, то возникает ошибка. Если Len больше, чем число символов от позиции Start до конца строки S, то вернется остаток строки S от Start до конца. Например, для выражения COPY('ABCDEF',2,3) результатом является строка 'BCD'.

DELETE(Var S:string; Start,Len:integer)  удаляет из строки S подстроку длиной Len, начиная с символа с номером Start.

После стирания подстроки ее оставшиеся части "склеиваются". Если Start=0 или превышает длину строки S, то строка не изменяется. Не из­менит строку и значение Len=0. При Len большем, чем остаток строки, будет удалена подстрока от Start до конца S. Например, для

Delete('aбвгде',4,2) результат будет “абве”.

INSERT(Subs:string; Var S:string;index:integer)  вставляет в строку S подстроку Subs, начиная с символа с номеpом index;

Если измененная строка S оказывается слишком длинной, то она ав­томатически укорачивается до объявленной длины S (при этом всегда те­ряются символы справа). Например,

st:='abcdef' ;

Insert('-***-',st,4); {результат: St='abc-***-de' 0 }

POS(Subs,S:string):byte  отыскивает вхождение подстроки Subs в строке S и выдает номер позиции, с которой начинается это вхождение. Если строка s не содержит данной подстроки, то функция POS выдает 0. Если в строке s несколько одинаковых подстрок subs, то функция выдает только номер первого вхождения.

Для St='abcdef' результатом функций

POS('de',St) является значение 4,

POS('k',St) является значение 0.

Процедуры преобразования

STR(x[:w[:n]], Var s:string) преобразует числовое значение x в строковое s, x может быть переменной или выражением целого или вещест­венного типа. Для переменной x может быть указана ширина поля w, кото­рое она занимает, а также n  количество знаков после десятичной точ­ки. Параметры [:w[:n]] не обязательны. Если параметр n отсутствует для вещественного типа, то используется экспоненциальное представле­ние. Если w больше, чем реальное количество знаков в числе, то произ­водится выравнивание числа по правому краю. Для выравнивания по левому краю используется отрицательное значение w. Если в дробной части числа x знаков больше, чем указано в n, выполняется округление. Например:

str(6.66:8:1,s); {результат: S='6.7' c округлением}

str(6.66:-8:2,s); {результат: S='6.66'}

VAL(S:string,Var x,Var ErrCod) преобразует числовую строку S в числовую переменную x и формирует код ошибки ErrCod. Строка S не долж­на содержать незначащих пробелов, в том числе в начале и конце. ErrCod  целочисленная переменная. Она равна 0, если преобразование выполне­но. В противном случае (если преобразование невозможно) эта функция выдает код символа, на котором прекратилось преобразование, значение x в этом случае неопределено. Если в строке S имеется десятичная точка или символ E, то переменная x должна быть определена вещественной.

Например, результат преобразования VAL(1324,x,Cod) есть x=1324,Cod=0;

FILLCHAR(Var X; k:word; Value)  процедура заполнения k последо­вательных байт переменной Х значением Value. Х  многобайтовая пере­менная. Процедура служит для заполнения участков памяти ОЗУ одним и тем же однобайтовым значением.