Запись. Объявление записи.
В практике программирования довольно часто приходится иметь дело с данными, которые естественным образом состоят из других данных. Например, сведения об учащемся содержат фамилию, имя, отчество, число, месяц и год рождения, домашний адрес и другие данные. Для представления подобной информации в языке Delphi используется структура, которая носит название запись (record).
С одной стороны, запись можно рассматривать как единую структуру, а с другой – как набор отдельных элементов, компонентов. Характерной особенностью записи является то, что составляющие ее компоненты могут быть разного типа. Другая особенность записи состоит в том, что каждый компонент записи имеет имя.
Итак, запись – это структура данных, состоящая из отдельных именованных компонентов разного типа, называемых полями.
Объявление записи
Как любой тип, создаваемый программистом, тип "запись" должен быть объявлен в разделе type. В общем виде объявление типа "запись" выглядит так:
Имя = record Поле_1: Тип_1; Поле_2: Тип_2; Поле_К: Тип_К; end;
Где:
- Имя – имя типа "запись";
- record – зарезервированное слово языка Delphi, означающее, что далее следует объявление компонентов (полей) записи;
- поле_i и тип_i – имя и тип i-го компонента (поля) записи, где i=1,…, k;
- end – зарезервированное слово языка Delphi, означающее, что список полей закончен.
Примеры объявлений:
type TPerson = record f_name: string [20]; l_name: string [20]; day: integer; month: integer; year: integer; address: string[50]; end; TDate = record day: integer; month: integer; year: integer; end;
После объявления типа записи можно объявить переменную-запись (или просто запись), например:
var student: TPerson; birthday: TDate;
Для того чтобы получить доступ к элементу (полю) переменной-записи (записи), нужно указать имя записи и имя поля, разделив их точкой. Например, инструкция:
ShowMessage('Имя: ', student.f_name + #13 + 'Адрес: ', student.address);
Выводит на экран содержимое полей f_name (имя) и address (адрес) переменной-записи student.
Иногда тип переменной-записи объявляют непосредственно в разделе объявления переменных. В этом случае тип записи указывается сразу за именем переменной, через двоеточие. Например, запись student может быть объявлена в разделе var следующим образом:
student: record f_name:string[20]; l_name:string[20]; day:integer; month:integer; year:integer; address:string[50]; end;