PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Delphi: Felder laden / speichern


aths
2004-12-14, 16:58:07
Ich hab ein Feld von 2^22 smallints, also 8 MiB Größe. Kann man das direkt als Datei speichern und wieder laden, ohne einzeln die smallints zu laden, bzw. ohne die Datei erst in einen TMemoryStream zwischenpuffern zu müssen?

Crushinator
2004-12-14, 18:56:49
So aus dem Kopf...

procedure WriteFile();
var
MySmInts : array[1..140000] of Smallint;
MyFile: File;
begin

AssignFile(MyFile, 'bla.txt');
ReWrite(MyFile, 1);
BlockWrite(MyFile, MySmInts, Sizeof(MySmInts));
CloseFile(MyFile);

end;

procedure ReadFile();
var
MySmInts : array[1..140000] of Smallint;
MyFile: File;
begin

AssignFile(MyFile, 'bla.txt');
Reset(MyFile, 1);
BlockRead(MyFile, MySmInts, Sizeof(MySmInts));
CloseFile(MyFile);

end;
Es müßte so in etwa funktionieren. Als Idee sollte es jedenfalls taugen.

aths
2004-12-14, 23:22:54
Jupp, blockread und blockwrite gehen. Danke.