Турбо Паскаль 6.0

       

TBufStream Objects


+------------+ | TObject | +------+-----+ +------+-----+ | TStream | +------+-----+ +------+-----+ | TDosStream | +------+-----+ +======+=====+ | TBufStream | +============+

TBufStream реализует буферизованную версию TDosStream. Дополнительные поля указывают размер и положение буфера, а так же текущую и последнюю позицию в буфере. Кроме перекрытия восьми методов TDosStream, TBufStream определяет абстрактный метод TStream.Flush. Констрактор TBufStream создает и открывает файл, вызывая TDosStream.Init, затем создает буфер с помощью GetMem. TBufStream значительно эффективнее TDosStream при работе большого числа небольших данных в поток, а так же при сохранении и загрузке объектов с использованием TStream.Get и TStream.Put.

Поля

Buffer Buffer: Pointer; Только чтение Указатель на начало буфера потока.

BufSize BufSize: Word; Только чтение Размер буфера в байтах.

BufPtr BufPtr: Word; Только чтение Смещение от указателя Buffer, указывающее на текущую позицию внутри буфера.

BufEnd BufEnd: Word; Только чтение Если буфер не заполнен, BufEnd дает смещение от указателя Buffer на последний используемый байт в буфере.

Методы

Init constructor Init(FileName: FNameStr; Mode, Size: Word); Создает и открывает файл с режимом доступа Mode, вызывая TDosStream.Init. Так же создает буфер размером в SizeBuf, вызывая GetMem. Handle, Buffer и BufSize инициализируются соответственно. Типичный размер буфера от 512 до 2048 байт. См. так же: TDosStream.Init

Done destructor Done; virtual; Перекрывается: Никогда Закрывает и освобождает файловый поток; выталкивает и освобождает его буфер. См. так же: TBufStream.Flush

Flush procedure Flush; virtual; Перекрывается: Никогда Выталкивает буфер потока, обеспечивая, что поток будет в состоянии stOK. См. так же: TBufStream.Done

GetPos function GetPos: LongInt; virtual; Перекрывается: Никогда Возвращает значение текущей позиции потока (не перепутайте с BufPtr - текущей позицией в буфере). См. так же: TBufStream.Seek

GetSize function GetSize: LongInt; virtual; Перекрывается: Никогда Выталкивает буфер, а затем возвращает общее число байт в потоке.


Read procedure Read(var Buf; Count: Word); virtual; Перекрывается: Никогда Если stOK, читает Count байт в буфер Buf, начиная с текущей позиции потока. Заметим, что Buf - это не буфер потока, а внешний буфер, содержащий данные читаемые из потока. См. так же: TBufStream.Write, stReadError

Seek procedure Seek(Pos: LongInt); virtual; Перекрывается: Никогда Выталкивает буфер, а затем устанавливает текущую позицию в Pos байт от начала потока. Начальная позиция потока - 0. См. так же: TBufStream.GetPos, TBufStream.GetSize

Truncate procedure Truncate; virtual; Перекрывается: Никогда Выталкивает буфер, затем удаляет все данные потока от текущей позиции до конца потока. Текущая позиция устанавливается в новый конец потока. См. так же: TbufStream.GetPos, TBufStream.Seek

Write procedure Write(var Buf; Count: Word); virtual; Перекрывается: Никогда Если stOK, записывает Count байт из буфера Buf в поток, начиная с текущей позиции. Заметим, что Buf - это не буфер потока, а внешний буфер, содержащий данные, записываемые в поток. Когда Write вызывается, Buf указывает на переменную, чье значяение записывается. См. так же: TBudStream.Read, stWriteError


Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий