A.5. Создание ppu-файлов

Вверх  Предыдущий  Следующий

Создание нового ppu-файла происходит почти также как его чтение. Сначала вам нужно инициализировать объект и создать его:

ppufile:=new(pppufile,init('output.ppu'));
ppufile.createfile;

После этого вы можете просто записать все необходимые данные. Вам придётся позаботиться о том, что вы пишите, по крайней мере, создать основные записи для разделов:

ibendinterface
ibenddefs
ibendsyms
ibendbrowser (только если вы установили uf_has_browser!)
ibendimplementation
ibend

Создание записей немного отличается от их чтения. Вам нужно сначала поместить все записи в ppufile.putxxx:

procedure putdata(var b;len:longint);
procedure putbyte(b:byte);
procedure putword(w:word);
procedure putlongint(l:longint);
procedure putreal(d:ppureal);
procedure putstring(s:string);

После помещения всех данных в запись, вам необходимо вызвать ppufile.writeentry(ibnr:byte), где ibnr – это номер записи, которую вы создаёте.

В конце файла вам необходимо вызвать ppufile.writeheader для записи нового заголовка в файл. Это автоматически заботится о новом размере ppu-файла. Когда это сделано, вы можете вызвать ppufile.closefile и освободить объект.

Дополнительные функции/переменные, доступные для записи:

ppufile.NewHeader;
ppufile.NewEntry;

Они позволяют вам создать чистый заголовок или запись. Обычно они вызываются автоматически в ppufile.writeentry, так что нет необходимости вызывать эти методы.

Вы можете вызвать

ppufile.flush;

чтобы очистить текущий буферы диска, и вы можете установить

ppufile.do_crc:boolean;

в False, если вы не хотите, чтобы контрольные суммы были обновлены при записи на диск. Это необходимо, если вы, например, пишите обозреватель данных.