Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторки 1-6 по Delphi.pdf
Скачиваний:
39
Добавлен:
08.04.2015
Размер:
1.09 Mб
Скачать

Языки программирования

ЛР 6. Классы потоков данных

Еще в начале 1990-х годов в составе языка программирования Turbo Pascal 6.0 появился весьма неординарный класс TStream. В логику класса разработчики сумели вложить единую методологию для осуществления операций ввода-вывода в файлы, коммуникационные порты, массивы бинарных данных, ресурсы приложений. В результате на свет появилась удобная абстракция, которая оказалась способной описать процесс переноса битов данных от источника к приемнику. Эта абстракция нашла свое воплощение в многочисленных потомках класса TStream, которые мы станем называть потоками данных.

Поток данных способен оказать неоценимые услуги в приложениях, предназначенных для чтения (записи) данных из внешнего источника. Так класс TFileStream специализируется на файловых операциях, TMemoryStream незаменим в операциях с памятью, TStringStream предназначен для управления текстовыми строками в памяти (рис. 6.1).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TObject

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(System)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TStream

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TCustomMemory-

 

 

THandleStream

 

 

 

 

TWinSocket-

 

 

 

TOleStream

 

 

 

 

 

 

 

Stream

 

 

 

 

 

 

 

 

 

Stream

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

 

(AxCtrls)

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

 

(ScktComp)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TMemoryStream

 

 

 

 

 

 

 

 

 

TFileStream

 

 

 

 

 

 

 

 

 

TBlobStream

 

 

 

 

 

Tcustom-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ZStream

(Classes)

 

 

 

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

(DBTables)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(ZLib)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TBytesStream

 

 

 

Tresource-

 

 

 

 

TStringStream*

 

 

 

TZCompression-

 

TZDecompressio

 

 

 

 

Stream

 

 

 

 

 

 

 

 

Stream

 

 

 

 

nStream

(Classes)

 

 

 

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

 

 

 

(Classes)

 

 

 

 

 

 

 

 

 

 

(ZLib)

 

 

 

 

 

(ZLib)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TStringStream**

 

 

 

 

для строк ANSI

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Classes)

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

**

для строк Unicode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6.1. Иерархия классов TStream

58

СКФУ Кафедра компьютерной безопасности