Действия со строками в Паскале
Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.
Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). В результате сравнения двух строк получается логическое значение (true или false). Сравнение строк производится слева направо посимвольно до первого несовпадающего символа, большей считается та строка, в которой первый несовпадающий символ имеет больший код в таблице кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что короткая строка меньше. Строки равны, если они имеют равную длину и соответствующие символы совпадают.
Стандартные функции.
Вызов | Описание |
function Chr(a: byte): char; | Символ ASCII c номером а. |
function Concat(s1,s2,...: string): string; | Возвращает строку, являющуюся результатом слияния строк s1,s2,... |
function Copy(s: string; index,count: integer): string; | Возвращает подстроку строки s длины count с позиции index |
procedure Delete(var s: string; index,count: integer); | Удаляет из строки s count символов с позиции index. |
procedure Insert(source: string; var s: string; index: integer); | Вставляет подстроку source в строку s с позиции index |
function Length(s: string): integer; | Возвращает длину строки |
function LowCase(ch: char): char; | Строка S в нижнем регистре. |
function Pos(subs,s: string): integer; | Возвращает позицию подстроки subs в строке s. Если не найдена, возвращает 0 |
procedure Str(i: integer; var s: string | Преобразует целое значение i к строковому представлению и записывает результат в s |
function StringOfChar(ch: char; count: integer): string; | Возвращает строку, состоящую из count символов ch |
function UpCase(ch: char): char; | Преобразует символ в верхний регистр |
Val(S,V, C) | Преобразует строку S в число V. При ошибке в C заносится номер ошибочного символа строки S. |
Ord(n) | Номер n (Код ASCII) |
Succ (n) | Следующее значение в последовательности |
Pred (n) | Предыдущее значение в последовательности |
function ChrUnicode(a: word): char; Преобразует код в символ в кодировке Unicode |
function OrdUnicode(a: char): word; Преобразует символ в код в кодировке Unicode |
function UpperCase(ch: char): char; Преобразует символ в верхний регистр |
function LowerCase(ch: char): char; Преобразует символ в нижний регистр |
function PosEx(subs,s: string; from: integer := 1): integer; Возвращает позицию подстроки subs в строке s начиная с позиции from. Если не найдена, возвращает 0 |
procedure SetLength(var s: string; n: integer); Устанавливает длину строки s равной n |
function Concat(s1,s2: string): string; Возвращает строку, являющуюся результатом слияния строк s1 и s2 |
function LowerCase(s: string): string; Возвращает строку в нижнем регистре |
function UpperCase(s: string): string; Возвращает строку в верхнем регистре |
function ReverseString(s: string): string; Возвращает инвертированную строку |
function CompareStr(s1,s2: string): integer; Сравнивает строки. Возвращает значение < 0 если s1 0 если s1>s2 и = 0 если s1=s2 |
function LeftStr(s: string; count: integer): string; Возвращает первые count символов строки s |
function RightStr(s: string; count: integer): string; Возвращает последние count символов строки s |
function Trim(s: string): string; Возвращает строку с удаленными начальными и конечными пробелами |
function TrimLeft(s: string): string; Возвращает строку с удаленными начальными пробелами |
function TrimRight(s: string): string; Возвращает строку с удаленными конечными пробелами |
function Format(fmtstr: string; params pars: array of object): string; Возвращает отформатированную строку, построенную по форматной строке fmtstr и списку форматиуемых параметров pars |
function StrToInt(s: string): integer; Преобразует строковое представление целого числа к числовому значению |
function StrToInt64(s: string): int64; Преобразует строковое представление целого числа к числовому значению |
function StrToFloat(s: string): real; Преобразует строковое представление вещественного числа к числовому значению |
function TryStrToInt(s: string; var value: integer): boolean; Преобразует строковое представление s целого числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False |
function TryStrToInt64(s: string; var value: int64): boolean; Преобразует строковое представление s целого числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False |
function TryStrToFloat(s: string; var value: real): boolean; Преобразует строковое представление s вещественного числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False |
function TryStrToFloat(s: string; var value: single): boolean; Преобразует строковое представление s вещественного числа к числовому значению и записывает его в value. При невозможности преобразования возвращается False |
procedure Val(s: string; var value: integer; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: shortint; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: smallint; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: int64; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: byte; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: word; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: longword; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: uint64; var err: integer); Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: real; var err: integer); Преобразует строковое представление s вещественного числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Val(s: string; var value: single; var err: integer); Преобразует строковое представление s вещественного числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0 |
procedure Str(r: real; var s: string); Преобразует вещественное значение r к строковому представлению и записывает результат в s |
function IntToStr(a: integer): string; Преобразует целое число к строковому представлению |
function IntToStr(a: int64): string; Преобразует целое число к строковому представлению |
function FloatToStr(a: real): string; Преобразует вещественное число к строковому представлению |
Операции со строками.
1 . Операция сравнения (так как в строках определён порядок, то для их возможно сравнить).
В строках определён лексико-графический порядок: из двух строк меньшей считается та у который первый символ меньше.
Пустая строка по умолчанию меньше всех остальных.
2. Операция обращения к элементу строки
В отличии от массивов нельзя s[5]:=’c’ для этого лучше воспользоваться Copy или Concat.
Записи.
Данные такого рода, описывающие существенные стороны того или иного объекта путем включения в описание нескольких, часто разнотипных, элементов, называют записью (record). В языке Паскаль запись определяется путем указания служебного слова record и перечисления входящих в запись элементов с указанием типов этих элементов.
Запись Паскаля – структурированный комбинированный тип данных, состоящий из фиксированного числа компонент (полей) разного типа.
type < имя _ типа >=record
<имя_поля1>: тип;
<имя_поля2>: тип;
………………….
<имя_поля K >: тип
end ;
где record – служебное слово, а <имя_типа> и <имя_поля> - правильные идентификаторы языка Паскаль.
Type anketa1=record
fio: string[45];
pol: char;
dat_r: record;
god: integer;
mes: string[10];
den: 1..31;
end;
adres: record
gorod: string[25];
ulica: string [20];
dom, kv: integer;
end;
curs: 1..5;
grupp: string[3];
end;
Полями записи могут быть любые типы (базовые, структурированные, конструируемые, процедуры, функции, файлы)
var
student: anketa;
student 1: anketa 1;