Записи в Lazarus

Кроме простейших типов данных существуют и более сложные. Например, записи (в С++ это называется структурами). По традиции я говорю “в Lazarus”, поскольку все примеры проверяю в этой среде разработки. Хотя более правильно было бы сказать в Паскале, так как этот тип данных появился давно и имеется во всех реализациях Паскаля (Delphi, Lazarus, Pascal Script и т.п.).

Запись (структура) - это набор данных разных типов. То есть это почти объект, который состоит из множества элементов, где каждый элемент представляет собой переменную определённого типа (и с помощью записи уже можно описать какой-нибудь объект). В Паскале один элемент записи называется полем. Таким образом запись состоит из множества полей. Синтаксис записи в Паскале примерно такой:

type ИмяЗаписи = record
Поле01 : ТипПоля01;
Поле01 : ТипПоля02;
ПолеN : ТипПоляN;
end;

Затем вы можете объявить переменную, имеющую тип определённой вами записи:

var ИмяПеременной : ИмяЗаписи;

К каждому элементу (полю) записи можно обратиться, используя составное имя:

ИмяПеременной.Поле

Здесь ИмяПеременной - это переменная, которая имеет тип соответствующей записи.

Записи удобно использовать, когда необходимо сгруппировать какие-то данные, относящиеся к одному объекту, но заморачиваться с классами и объектами нецелесообразно. Например, в простых программах в запись можно впихнуть настройки, а потом сохранять их всей кучей в файл (и читать, разумеется):

Кроме простейших типов данных существуют и более сложные. Например, записи (в С++ это называется структурами). По традиции я говорю “в Lazarus”, поскольку все примеры проверяю в этой среде разработки.

И обратите внимание, что строка в записи имеет ограниченную длину. Иначе компилятор будет ругаться, так как по умолчанию строки в Lazarus/FreePascal имеют неограниченную длину, а это недопустимо в записях (в записях должно быть фиксированное количество элементов с фиксированным размером). Хотя в более старых версиях это, если я правильно помню, работало (у меня сейчас версия Lazarus 3.2).

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.