Einzelnen Beitrag anzeigen

snow

Registriert seit: 28. Jun 2007
277 Beiträge
 
#16

Re: blockwrite sehr sehr große datei.

  Alt 28. Jan 2008, 14:10
Delphi-Quellcode:
var
  Form1: TForm1;
  Num : Array of byte;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var dat : file;
lokal : integer;
begin
AssignFile(dat,'I:\delphi\testContainer\test1.dat');
rewrite(dat);
Blockwrite(dat,num[0],1);
closefile(dat);
end;

procedure TForm1.FormCreate(Sender: TObject);
var lokal : integer;
begin
setlength(num,128);
for lokal:=0 to 127 do begin
num[lokal]:=lokal;
end;
end;
so klappt es.

ich kann nun den gesammten array inhalt speichern.

naja anscheinend muss ich bei blockwrite immer 128 byte schreiben. Dies wäre natürlich verschwendung. via move in ein 128byte langes array zu schreiben. wenn ich nun z.b einen int32 10 bytes und einen 6 stelligen string(7bytes) abspeichern will,

schiebe ich zuerst den integer in array[0..3],
dann die 10 bytes in array[4..13],
dann den string in array[14..20]

im inhaltsverzeichniss der datei gebe ich dann nicht die blocknummer sondern die byte nummer an.

Diese wird durch 128 geteilt und der rest sollte die bytenummer im block angeben.

ich mach mich mal ran

gruß snow
  Mit Zitat antworten Zitat