Турбо Паскаль 6.0

Запись в поток.


Все, что осталось сделать - это обычная последовательность В/В в файл: создать поток; поместить данные (коллекцию) в него; закрыть поток. Вы не используете итератор ForEach для записи каждого элемента коллекции в поток. Вы просто говорите потоку поместить коллекцию в поток:

{ TVGUID21.PAS } var GraphicsList: PCollection; GraphicsStream: TBufStream; begin StreamRegistration; . GraphicsStream.Init('GRAPHICS.STM', stCreate, 1024); GraphicsStream.Put(GraphicsList); GraphicsStream.Done; . end.

Будет создаваться дисковый файл, который содержит всю информацию, необходимую для чтения коллекции в память. Когда поток открывается и коллекция считывается (см. TVGUID22.PAS), все скрытые связи между коллекцией и ее элементами и объектами и их таблицами виртуальных методов будут восстановлены. Эта техника используется в IDE Turbo Pascal для сохранения его файла панели экрана. Следующий пример показывает Вам как сделать это. Но вначале Вы должны изучить объекты, выводимые в поток, которые содержат связи с другими объектами.



Содержание раздела