Запись — это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Структура объявления типа записи такова:
<Имя типа> = record <сп. полей> end;
Где имя типа — правильный идентификатор; record, end — зарезервированные слова (запись, конец) сп. полив — список полей, который представляет собой последовательность разделов записи, между которыми ставится точка с запятой.
Каждый раздел записи состоит из одного или нескольких идентификаторов полей, отделяемых друг от друга запятыми. По идентификатору ставится двоеточие и описание, например:
Type
Birsday = record
Day, month: byte;
Year: word;
End;
Var
A, b: Birsday;
Как и в массиве, значения переменных типа запись можно присваивать другим переменным того же типа, например:
A = b;
К каждому элементу записи можно получить доступ, если использовать составное имя, т. е. указать имя переменной, затем точку и имя поля:
A. day: = 1;
B. year = 1980;
Для вложенных полей приходится продолжать уточнение:
Type
Birsday = record
Day, month: byte;
Year: word;
End;
Var
c: record
name: string;
bd: Birsday;
end;
Begin
. . . . .
If c. bd. Year = 1990 then. . .
End.
Чтобы упростить доступ к полям записи, используют оператор присоединения with
With <переменная> do <оператор>;
Где with и do — ключевые слова (с, делать) <Переменная> — имя переменной типа запись, за которым, возможно следует список вложенных полей; <Оператор> — любой оператор языка Pascal.
C. bd. Year = 2005;
Эквивалентно
With c. bd do Year = 2005;
Или
With с do with bd do Year = 2005;
Или
With с, bd do Year = 2005;