webForumDet fria alternativet

Binära filer

Programmering

3 svar · 223 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Jag skulle vilja spara en array av en egen record binärt. Hur gör man det?

Medlem sedan maj 20002 993 inlägg
#2

Kom igen nu!! Jag måste få reda på hur man gör

Medlem sedan juni 2000350 inlägg
#3

type
TArecord = record
TimeDate : TDateTime;
Name : string[20];
end;
TArecordFile = file of TArecord;

procedure Save;
var
Arecord : TArecord;
F: TArecordFile;
begin
System.Assign(F,'c:\Test.dat');
Rewrite(F);
with Arecord do begin
TimeDate := now;
Name := 'Pelle';
end;
system.Write(F, Arecord);
system.Close(F);
end;

procedure Open;
var
Arecord : TArecord;
F: TArecordFile;
begin
System.Assign(F,'c:\Test.dat');
Reset(F);
system.read(F, Arecord);
with Arecord do begin
Memo1.Lines.add(DateTimeToStr(TimeDate));
Memo1.Lines.add(Name);
end;
system.Close(F);
end;

Medlem sedan maj 20002 993 inlägg
#4

Jag gjorde så här:

Map är en array med records

procedure TForm1.LoadMap(filename: string);
var
  Stream : TFileStream;
begin
  Stream := TFileStream.Create(filename, fmOpenRead);
  try
    Stream.ReadBuffer(Map, SizeOf(Map));
  finally
    Stream.Destroy;
  end;

end;

procedure TForm1.SaveMap(filename: string);
var
  Stream: TFileStream;
begin
  Stream  := TFileStream.Create(filename, fmCreate);
  try
    Stream.WriteBuffer(map, SizeOf(map));
  finally
    Stream.Destroy;
  end;

end;
505 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
127 ms — hämta statistik (db)
247 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)