Системные процедуры и функции обработки строк

Процедура Delete (Var S: string; Pos, N: integer) – удаляет из строки S подстроку, содержащую N символов, начиная с позиции Pos.

Например,

S:=ABCL+FGR ’;

Delete (S, 3, 4);

После выполнения этих операторов строка S =ABGR ’.

Процедура Insert (Fragment: string; Var S: string; Pos: integer) – вставляет в строку S подстроку Fragment, начиная с позиции Pos.

Например,

Fragment:=ABCD ’;

S:=abefg ’;

Insert (Fragment, S, 3);

Результатом выполнения этой процедуры будет строка
S =abABCDefg ’.

Процедура Str (X; Var S: string) – преобразует числовое значение X в строковое и присваивает результат строке S, причём можно переводить числа как целые, так и вещественные.

Например:

X:= 2321;

Y:= 76.854;

Str (X, S1);

Str (Y:8:3, S2); {без форматного преобразования результат будет выдан в форме с плавающей точкой}

В результате выполнения этих операторов S1=2321,
S2=
76.854 ’.

Процедура Val (S: string; Var X; Var ErrCode: integer) – переводит строковое значение S в значение числовой переменной X целого или вещественного типа, если данная строка действительно отвечает правилам записи чисел. Строка S не должна содержать незначащих пробелов в начале и в конце. Значение переменной ErrCod равно нулю, если при преобразовании не обнаружено ошибок, в противном случае значение ErrCod равно номеру позиции первого ошибочного символа.

Например,

S1:=5621 ’;

S2:=-89.543’;

S3:=246.56 + 0.45’;

Val (S1, X, Cod1);

Val (S2, Y, Cod2);

Val (S3, Z, Cod3);

Результатом выполнения этой последовательности операторов будут значения:

X = 5621, Cod1 = 0; Y = -89.543, Cod2 = 0; Cod3 = 4;

В последнем операторе выдан только код ошибки, так как разделительным знаком между целой и дробной частями является точка, а не запятая.

Функция Pos (Fragment, S: string): byte – возвращает номер первого элемента, с которого начинается первое вхождение подстроки Fragment в строку S. Если такой подстроки нет, то результат равен нулю.

Например:

Frag_1 =CD ’;

Frag_2:=DA ’;

S:=ABCDabcCD ’;

k1:= Pos (Frag_1, S);

k2:= Pos (Frag_2, S);

Переменная k1 равна 3, так как первое появление подстрока ‘ CD ’ начинается с третьей позиции строки S. Значение переменной k2 равно 0, так как такой подстроки нет.

Функция Copy (S: string; Pos, N: integer): string – копирует N символов строки S, начиная с позиции Pos. Если Pos больше длины строки S, то результатом будет пробел, при Pos большем 255 выдаётся ошибка.

Например,

S1:=Весна идёт, весне дорогу! ’;

Frag_1:= Copy (S1, 13, 13);

Frag_2:= Copy (S, 9, 3);

Значением переменной Frag_1 будет строка ‘ весне дорогу! ’, а переменной Frag_2 будет присвоено значение ‘ ёт, ’.

Функция Concat (S1, S2, …, Sn): string – выполняет сцепление (слияние) строк S1, S2, …, Sn аналогично операции сцепления (+).

Функция Length (S: string): byte – выдаёт текущую длину строки.

Например,

Var S1: string;

S2: string[5];

S1:=a+bsin (x) ’;

S2:=aa dd7 cc bbb ’;

L1:= Length (S1);

L2:= Length (S2);

В результате получим L1 = 9, а L2 = 5, так как по объявлению количество символов в строке S2 не должно быть больше 5.

Процедура Insert (Fragment: string; Var S: string; Pos: integer) – вставляет в строку S подстроку Fragment, начиная с позиции Pos.

Например,

S1:=У Егорки ’;

S2:=отговорки! ’; {строка начинается с пробела}

Insert (S1, S2, 1);

Insert (всегда, S2, 9); {строка ‘ всегда ’ тоже начинается с пробела}

В результате выполнения последовательности этих операторов будет сформирована строка S2 =У Егорки всегда отговорки! ’.


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



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