Урок 49 - Структурные типы данных, часть (2/2)
В этом уроке мы продолжаем изучать структуры и рассмотрим Множества и Записи.
Записи очень важный и удобный инструмент. Даже не применяя специальные технологии, с его помощью можно создавать
собственные базы данных. Записи - это структура данных, каждый элемент которой имеет собственное имя и тип данных. Элемент записи иначе
называют поле. Описание записи имеет вид:
type имя_типа_записи = record название_поля : тип_поля ; . . . название_поля : тип_поля ; end;Названия полей, имеющих одинаковый тип, можно, как и в случае описания переменных, указывать в одну строку через запятую. Для обращения к полю записи сначала указывают имя записи, затем точку, затем имя поля. Например, данные о персонале предприятия могут быть организованы таким типом записи:
type TPers = record Fam, Name, Par : String; Year : Integer; Dep : String; end; var Pers : TPers; begin Pers.Fam:='Иванов'; Pers.Name:='Иван'; Pers.Par:='Иванович'; Pers.Year:=1966; Pers.Dep:='Цех №1'; end;Теперь осталось записать эти данные в файл, предварительно объявив и его тип как TPers, и база данных готова. С файлом в Delphi также ассоциируется переменная, называемая файловой переменной, которая описывается так:
VFile : file of тип_файла;В качестве типа может использоваться любой ограниченный тип Delphi. При этом не допускается тип String, так как он допускает переменный размер до 2 ГБайт. Его необходимо ограничивать: String[N], где N - количество символов. Тип TPers из предыдущего примера должен быть описан, например, так:
type TPers = record Fam, Name, Par : String[20]; Year : Integer; Dep : String[10]; end;Теперь переменная такого типа занимает строго определённое место в памяти, и может быть записана в файл.
Множество - это группа элементов, объединённая под одним именем, и с которой можно сравнивать другие величины, чтобы определить, принадлежат ли они этому множеству. Количество элементов в одном множестве не может превышать 256. Множество описывается так:
type имя_множества = set of диапазон_значений_множества ;В качестве диапазона может указываться любой тип, количество элементов в котором не больше 256. Например:
type TMySet = set of 0 .. 255;
type TMySet = set of Byte;Конкретные значения множества задаются в программе с помощью перечисления элементов, заключённых в квадратные скобки. Допускается использовать и диапазоны:
var MySet : TMySet; begin MySet:=[1, 3 .. 7, 9]; end;Чтобы проверить, является ли некое значение элементом множества, применяется оператор in в сочетании с условным оператором:
var Key : Char; Str: String; begin if Key in [?0? .. ?9?, ?+?, ?-?] then Str:=?Math?; end;Чтобы добавить элемент во множество, используется операция сложения, удалить - вычитания:
var Digit: set of Char=[?1?..?9?]; var Math: Set of Char; begin Math:=Digit+[?+?, ?-?, DecimalSeparator*];*Примечание: DecimalSeparator - встроенная в Delphi константа типа Char, имеющая значение символа-разделителя целой и дробной частей, который может быть равен точке ('.') либо запятой (','), в зависимости от текущих настроек Windows.
end;
Удачи!
Встретимся в следующем уроке!
Добавил(а): Xameleon | Дата: 2014-04-27 | |
|
-
O my god. Hell no.