Свойства и функции класса TmaStream
- constructor Create(const name:wideString;mode:cardinal)
- constructor Create(stream:ImaStream)
- constructor Create(cell:TmaCell)
- property Options:maStreamOptions
- procedure PushOptions(opt:maStreamOptions)
- procedure PopOptions
- procedure Open
- procedure Close
- procedure Flush
- procedure newLine
- procedure newField
- procedure WriteLong(value:integer)
- procedure WriteDouble(value:double)
- procedure WriteStr(value: WideString)
- function ReadLong:Integer
- function ReadDouble:Double
- function ReadStr:WideString
- procedure WriteBlock (var ptr;length: integer)
- procedure ReadBlock(var ptr;length: integer)
- function Write(Value: TmaComponent): HResult
- function Read: ImaComponent
- function ReadCell: TmaCell
- function ReadMatrix: TmaMatrix
- function ReadList: TmaList
- function ReadSparseMatrix: TmaSparseMatrix
- procedure Read(var val: TmaCell)
- procedure Read(var val: TmaMatrix)
- procedure Read(var val: TmaList)
- procedure Read(var val: TmaSparseMatrix)
Чтение и запись в поток
constructor Create(const name:wideString;mode:cardinal)Создает поток, связяный с файлом с именем name. При этом файл остается закрытым до вызова функции Open, но автоматически открывается перед каждой операцией ввода-вывода и закрывается после нее.
Параметры:
name имя открываемого файлаmode режим открытия и формат файла (см. файловые константы ).
constructor Create(stream:ImaStream)Присоединение класса к уже существующему интерфейсу.
constructor Create(cell:TmaCell)Присоединение к потоку, хранящемуся в ячейке cell. Если в ячейке нет потока, то объект не создается.
property Options:maStreamOptionsСвойство позволяет получать и устанавливать опции ввода-вывода.
procedure PushOptions(opt:maStreamOptions)Функция сохраняет текущие опции ввода-вывода во внутреннем стеке и затем заменяет текущие опции на opt.
Параметры:
opt новые опции ввода-выводаprocedure PopOptionsФункция восстанавливает предыдущие опции ввода-вывода.
procedure OpenОткрывает поток. После вызова Open поток не будет закрываться после каждой операции ввода-вывода до вызова Close.
procedure CloseЗакрывает поток.После этоого файл автоматически открывается перед каждой операцией ввода-вывода и закрывается после нее.
procedure FlushСбрасывает файловые буфера. Имеет смысл только для открытого потока.
procedure newLineФункция записывает разделитель строк в поток. Что именно будет записано в поток, определяется опциями ввода-вывода. Если поток не текстовый, то вызовы игнорируются.
procedure newFieldФункция записывает в поток разделитель полей. Что именно будет записано в поток, определяется опциями ввода-вывода. Если поток не текстовый, то вызовы игнорируются.
procedure WriteLong(value:integer) procedure WriteDouble(value:double) procedure WriteStr(value: WideString)Процедуры выводят простое значение в текстовый поток. Формат вывода задается опциями потока. Если поток не открыт, то он открывается, и по завершении вывода закрывается.
Параметры:
value записываемое значениеfunction ReadLong:Integer function ReadDouble:Double function ReadStr:WideStringФункции считывают простое значение из текстового потока. Если поток не открыт, то он открывается, и по завершении ввода закрывается. Функция ReadStr выделяет память под строку сама.
procedure WriteBlock (var ptr;length: integer)Функция записывает блок данных заданной длины. Только для бинарных потоков. Если поток не открыт, то он открывается, и по завершении ввода/вывода закрывается.
Параметры:
ptr указатель на записываемые данныеlength длина записываемых данных
procedure ReadBlock(var ptr;length: integer)Функция счикывает блок данных заданной длины. Только для бинарных потоков. Если поток не открыт, то он открывается, и по завершении ввода/вывода закрывается.
Параметры:
ptr указатель на считываемые данныеlength длина считываемых данных
function Write(Value: TmaComponent): HResultФункция записи компонента любого типа. Если поток не открыт, то он открывается, и по завершении ввода/вывода закрывается.
Параметры:
comp указатель на компонентВозвращаемое значение:
MA_NOERROR при отсутствии ошибокMA_ERR_BAD_PARAM если comp==NULL
MA_ERR_IOPERM если запись в поток запрещена
MA_ERR_NOINTERFACE если компонент не имеет интерфейса ImaSupportsStreaming
function Read: ImaComponentФункции чтения компонента. Создается и возвращается компонент с CLSID, считанным из потока.
Если поток не открыт, то он открывается, и по завершении ввода/вывода закрывается.
Возвращаемое значение:
Указатель на считываемый компонентfunction ReadCell: TmaCell function ReadMatrix: TmaMatrix function ReadList: TmaList function ReadSparseMatrix: TmaSparseMatrixФункции чтения компонентов из потока. При вызове функции очередной компонент считывается из потока и создается. Если очередной компонент в потоке имеет тип, не совпадающий с типом возвращаемого класса-оболочки, то считанный объект уничтожается и возвращается класс-оболочка с пустым указателем на интерфейс.
procedure Read(var val: TmaCell) procedure Read(var val: TmaMatrix) procedure Read(var val: TmaList) procedure Read(var val: TmaSparseMatrix)Функции чтения компонентов из потока. При вызове функции считывается из потока уже существующий компонент. При ошибке считывания возвращается класс-оболочка с пустым указателем на интерфейс.