ВУЗ:
Составители:
Рубрика:
75
Лабораторная работа № 8
СОХРАНЕНИЕ ОБЪЕКТОВ В ПОТОКЕ
Цель. Получить практические навыки использования потоков в TV-
прграмме.
Основное содержание работы.
Написать программу, создающую объекты пользовательского класса
и помещающую их сначала в коллекцию, а затем в поток. Объекты могут
читаться из потока и помещаться в коллекцию. Предусмотреть диалог для
ввода исходных данных и просмотра объектов.
Краткие теоретические сведения.
• Поток. Поток TStream и его потомки TDosStream,
TBufStream, TEMSStream предназначены для хранения в них объектов. В
отличие от файлов потоки могут существовать не только на внешних уст-
ройствах, но и в оперативной памяти. Также поток отличается от файла
тем, что в нём можно хранить данные разных типов, в том числе и
объек-
ты.
Работа с потоком напоминает работу с файлом последовательного
доступа. При создании потока в нём не находится никакой информации.
Записываемая в поток информация последовательно приписывается к его
концу.
Для того чтобы было возможно сохранять в потоке объекты разных
классов (типов) используется механизм регистрации классов (типов объек-
тов). Зарегистрировать класс,
означает присвоить ему какой-то уникаль-
ный номер. Этот регистрационный номер записывается в файл и считыва-
ется первым. Прочитав его, TV сразу же определяет тип объекта.
• Регистрация объектов. Для регистрации любого класса ис-
пользуется глобальная процедура RegisterType (RObjects:TStreamRec).
Единственным параметром обращения к этой процедуре является запись
типа TStreamRec:
TStreamRec=record
Objtype:word;
VMTLink:word;
Load:pointer;
Store:pointer;
Next:word;
End;
75
Лабораторная работа № 8
СОХРАНЕНИЕ ОБЪЕКТОВ В ПОТОКЕ
Цель. Получить практические навыки использования потоков в TV-
прграмме.
Основное содержание работы.
Написать программу, создающую объекты пользовательского класса
и помещающую их сначала в коллекцию, а затем в поток. Объекты могут
читаться из потока и помещаться в коллекцию. Предусмотреть диалог для
ввода исходных данных и просмотра объектов.
Краткие теоретические сведения.
• Поток. Поток TStream и его потомки TDosStream,
TBufStream, TEMSStream предназначены для хранения в них объектов. В
отличие от файлов потоки могут существовать не только на внешних уст-
ройствах, но и в оперативной памяти. Также поток отличается от файла
тем, что в нём можно хранить данные разных типов, в том числе и объек-
ты.
Работа с потоком напоминает работу с файлом последовательного
доступа. При создании потока в нём не находится никакой информации.
Записываемая в поток информация последовательно приписывается к его
концу.
Для того чтобы было возможно сохранять в потоке объекты разных
классов (типов) используется механизм регистрации классов (типов объек-
тов). Зарегистрировать класс, означает присвоить ему какой-то уникаль-
ный номер. Этот регистрационный номер записывается в файл и считыва-
ется первым. Прочитав его, TV сразу же определяет тип объекта.
• Регистрация объектов. Для регистрации любого класса ис-
пользуется глобальная процедура RegisterType (RObjects:TStreamRec).
Единственным параметром обращения к этой процедуре является запись
типа TStreamRec:
TStreamRec=record
Objtype:word;
VMTLink:word;
Load:pointer;
Store:pointer;
Next:word;
End;
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »
