Динамические массивы появились в Delphi 4 и представляют собой удобное средство для хранения данных для тех задач, где заранее неизвестно количество элементов в обрабатываемых массивах. А поскольку программы должны составляться для произвольных данных, то появление динамических массивов можно считать закономерным.
Объявить одномерный динамический массив можно следующим образом:
var < имя массива >: array of< тип >;
Например:
var
vect: array of real; {вектор}
matr: array of array of integer; { матрица}
cube: array of array of array of char; {трехмерный массив}
Длину массива следует задать при помощи процедуры SetLength. Например:SetLength(vect,6); SetLength(matr,4,5);
Выделяет для массива vect в оперативной памяти 6 элементов и присваивает этим элементам нулевые значения. Индекс первого элемента массива равен 0, поэтому массив vect содержит элементы vect[0], vect[l],..., vect[5]. Начальное значение многомерных массивов, как и для одномерных равно 0.
При желании длину динамического массива можно изменить при помощи повторного использования процедуры SetLength. Если новая длина окажется больше исходной, то в массив добавляются новые элементы с нулевыми значениями; если меньше, то последние элементы в исходном массиве будут отброшены.
Переменная, имеющая тип динамического массива, является указателем, т.е. содержит адрес участка памяти, начиная с которого располагаются элементы массива. Поэтому удаление из памяти динамического массива может быть осуществлено одним из трех способов:-
1. Присвоить переменной значение nil, например: vect:= nil;
2.Использовать процедуру finalize, например: finalize(vect);
3. Установить нулевую длину, например: Setlength(vect,0);
Файлы
Различия: TextFile(f) вместо Text(f), CloseFile(f) вместо Close(f), AssignFile(f,imf) вместо Assign.
При открытии файла полезно использовать логическую функцию FileExists(< имя файла>);
Здесь имя файла - символьная строка, содержащая имя файла на ВЗУ. Если файл существует, то функция возвращает true (1).