Здавалка
Главная | Обратная связь

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



LENGTH(s) - функция выдает в байтах длину строки s:string, измеряемую в символах.

Например, функция LENGTH(st), где St = 'ABBCCD' возвратит значение 6.

CONCAT(s1,s2,...,sN) – функция осуществляет сцепление строк s1,s2, ..., sN:string и выдает результат в виде одной общей строки. Например:

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

COPY(S, Start, Len) - функция выдает подстроку типа string из строки S:string длиной Len:integer, начиная с символа с номером Start:integer.

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

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

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

Delete('aбвгде' , 4, 2); // результатом будет строка - “абве”.

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

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

st := 'abcdef' ;

Insert( '-***-' ,st, 4); // результат - строка: St = 'abc-***- de'

POS(Subs, S) - функция типа byte отыскивает вхождение подстроки Subs:string в строке S:string и выдает номер позиции, с которой начинается это вхождение.

Если строка s не содержит данной подстроки, то функция POS выдает 0. Если в строке s несколько одинаковых подстрок subs, то функция выдает только номер первого вхождения. Например, для строки St = 'abcdef' результатом функций

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

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

STR(x[:w[:n]], s) - процедура преобразует числовое значение x в строковое s:string, возвращая строку s.

Х может быть переменной или выражением целого или вещест­венного типа. Для переменной 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, x, ErrCod) - процедура преобразует числовую строку S:string в числовую переменную x (типа Real или Integer) и формирует код ошибки ErrCod:Integer, возвращая xи ErrCod.

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

Например:

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

VAL( '13.24Е2' , x, Cod); // результат преобразования x = 1324, Cod=0;

VAL( '25А3' , x, Cod); // результат не определен, Cod=3.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.