Шаг 24.
Класс TStream

    На этом шаге мы рассмотрим свойства и методы класса TStream.

    Класс TStream и его потомки называются потоками. Со времен появления в библиотеке TurboVision он не претерпел существенных изменений, но теперь потоки стали обязательными составными частями там, где нужно прочитать или передать во внешний источник какую-либо информацию.

    TStream является абстрактной моделью совокупности данных, обладающей двумя свойствами - длиной Size (тип Int64, только для чтения) и положением текущего элемента Position (тип Int64).

    От TStream порождены дочерние объекты, позволяющие пользоваться потоками при работе с файлами, блоками памяти и т. п. Так, в модуле CLASSES описаны классы TMemoryStream и TFileStream.

    Данные потока можно читать или записывать, используя предоставляемый буфер, или копировать из другого потока. Эта возможность реализована методами:

   function Read(var Buffer; Count: LongInt) : LongInt; virtual; abstract;
   function Write(const Buffer; Count: LongInt) : LongInt; virtual; abstract;

    Метод:

   function Seek(Offset: LongInt; Origin: Word): LongInt; virtual; abstract;

позиционирует поток. В зависимости от значения параметра Origin новая позиция выбирается так:
0 - новая позиция равна Offset;
1 - текущая позиция смещается на Offset байт к концу потока от текущего положения. Значение должно быть неотрицательно;
2 - новая позиция находится на Offset байт от конца потока. Значение должно быть неположительно.

    Методы:

   procedure ReadBuffer (var Buffer;Count: LongInt);
   procedure WriteBuffer (const Buffer; Count: LongInt);

представляют собой оболочки над Read/Write, вызывающие в случае неудачи операции исключительные ситуации EReadError/EWriteError.

    На следующем шаге мы остановимся более подробно на свойствах и методах класса TControl.




Предыдущий шаг Содержание Следующий шаг