.
Tuesday 22nd of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Поток - TStream
загрузка...

Абстрактный класс TStream описан в модуле Classes и предназначен для организации чтения и записи данных во внешний источник (файл, память и т. д.). Такие действия называются операциями ввода-вывода. Поток обладает всего двумя свойствами:

property Size: Longint; property Position: Longint;

Размер Size измеряется в байтах; попытка редактировать значение свойства в родительском классе не даст никаких результатов. Такая возможность предоставлена только в потомках TStream. Свойство Position возвращает текущую позицию внутри потока во время операций чтения и записи. За чтение данных потока отвечает метод:

function Read(var Buffer; Count: Longint): Longint; virtual; abstract;

А за запись данных потока метод:

function Write(const Buffer; Count: Longint): Longint; virtual; abstract;

Но если вы хотите контролировать появление ошибок при чтении и записи данных, то опирайтесь на методы:

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

Данные процедуры - это надстройки над методами Read() и Write(). При невыполнении условий - (Count <> 0) and (Read(Buffer, Count) <> Count) для Read-Buffer или (Count <> 0) and (Write(Buffer, Count) <> Count) для WriteBuffer - создаются исключительные ситуации EReadError и EWriteError соответственно.

Для копирования данных из одного потока в другой предназначен метод:

function CopyFrom(Source: TStream; Count: Longint): Longint;

где Source - поток-источник, а Count - количество копируемых байт. При необходимости полностью скопировать поток в качестве параметра Count передается значение 0. Функция возвращает количество скопированных байт.

Следующий метод обеспечивает изменение текущей позиции потока (табл. 6.1):

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


загрузка...
 

Самое популярное:

bottom

карта сайта