Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 74 стр.

UptoLike

Составители: 

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;