{ Модуль для поддержки динамических байтовых массивов (ДБМ) } {$mode objfpc} unit DynArrayUnit; interface type TDArray=record // структура ДБМ count:longword; // кол-во байт в ДБМ pa:^byte; // адрес начала памяти, где хранятся данные ДБМ end; PDArray=^TDArray; // тип указателя на ДБМ // создает ДБМ, возвращаемое значение - ссылка на созданный ДБМ // count - количество элементов в ДБМ function DACreate(count:longword):PDArray; // уничтожает ДБМ // PDA - ссылка на уничтожаемый ДБМ // По окончании уничтожения приваивает PDA значение nil Procedure DADestroy(var PDA:PDArray); // возвращет кол-во элементов в ДБМ // PDA - ссылка на ДБМ function DALength(PDA:PDArray):longword; // заносит значение в ДБМ // PDA - ссылка на ДБМ // index - позиция, куда помещается заносимое значение (индексируется от нуля) // data - заносимое значение Procedure DASet(PDA:PDArray; index:integer; data:byte); // возвращает значение из ДБМ // PDA - ссылка на ДБМ // index - позиция, откуда возвращется значение function DAGet(PDA:PDArray; index:integer):byte; // Дополнительная функция - изменение размера ДБМ Procedure DASetSize(PDA:PDArray; size:longword); implementation // Вставить сюда свой код реализации функций и процедур end.