Запись массива на диск

Previous  Top  Next

    
 

 

 

Скажем, ваша структура данных выглядит следующим образом:

 

Code:

type

TMyRec = record

   SomeField: Integer;

   SomeOtherField: Double;

   TheRest: array[0..99] of Single;

end;

 

и TBlobField имеет имя MyBlobField. TMyRec назван как MyRec. Для копирования содержимого MyRec в MyBlobField необходимо сделать следующее:

 

Code:

var

Stream: TBlobStream;

begin

Stream := TBlobStream.Create(MyBlobField, bmWrite);

Stream.Write(MyRec, SizeOf(MyRec));

Stream.Free;

end;

 

Есть другой путь:

 

Code:

var

Stream: TBlobStream;

begin

Stream := TBlobStream.Create(MyBlobField, bmRead);

Stream.Read(MyRec, SizeOf(MyRec));

Stream.Free;

end;

 

 

 

- Steve Schafer

©Drkb::00247

Взято из Советов по Delphi от Валентина Озерова

Сборник Kuliba

 

 


 

Code:

type

TCharArray = array[500] of Char;

 

procedure WriteToFile(var aArray: TCharArray; sFileName: string); {Примечание:

Объявление массива как параметр Var позволяет передавать только ссылку на массив,

а не копировать его целиком в стек, если же вам нужна безопасная работа с массивом,

то вам не следует передавать его как var-параметр. }

var

nArrayIndex: Word;

fFileHandle: TextFile;

begin

AssignFile(fFileHandle, sFileName);

Rewrite(fFileHandle);

 

for nArrayIndex := 1 to 500 do

begin

   Write(fFileHandle, aArray[nArrayIndex]);

end;

 

CloseFile(fFileHandle);

end; {end Procedure, WriteToFile()}

 

©Drkb::00793

http://delphiworld.narod.ru/

DelphiWorld 6.0