Кроме вышеописанных, так называемых статических массивов, у которых количество элементов неизменно, в Delphi можно использовать динамические массивы, количество элементов в которых допускается изменять в зависимости от требований программы. Это позволяет экономить ресурсы компьютера, хотя работа с такими массивами происходит гораздо медленнее. Описываются динамические массивы аналогично статическим, но без указания диапазона индексов:
A:=nil; Ключевое слово nil в Delphi означает отсутствие значения. Записи очень важный и удобный инструмент. Даже не применяя специальные технологии, с его помощью можно создавать собственные базы данных. Записи - это структура данных, каждый элемент которой имеет собственное имя и тип данных. Элемент записи иначе называют поле. Описание записи имеет вид: 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; Теперь переменная такого типа занимает строго определённое место в памяти, и может быть записана в файл. Как это сделать, рассказывается во 2-й части Урока №7. Множество - это группа элементов, объединённая под одним именем, и с которой можно сравнивать другие величины, чтобы определить, принадлежат ли они этому множеству. Количество элементов в одном множестве не может превышать 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']; *Примечание: DecimalSeparator - встроенная в Delphi константа типа Char, имеющая значение символа-разделителя целой и дробной частей, который может быть равен точке ( '.' ) либо запятой (',' ), в зависимости от текущих настроек Windows. |