Jag skulle vilja spara en array av en egen record binärt. Hur gör man det?
Binära filer
3 svar · 221 visningar · startad av Alpha II
Kom igen nu!! Jag måste få reda på hur man gör
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;
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;