Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: Array als Datei speichern
8. Okt 2004, 00:02
So geht es:
Delphi-Quellcode:
// unser Record
type
TScoreRecord = packed record
Player: string[25];
Score: Cardinal;
end;
// unser Array vom Typ unseres Records
var
ScoreRecord: array[0..2] of TScoreRecord;
procedure TForm1.Button1Click(Sender: TObject);
var
fs: TFileStream;
begin
// Array fülllen
ScoreRecord[0].Player := 'Hans';
ScoreRecord[0].Score := 5;
ScoreRecord[1].Player := 'Fritz';
ScoreRecord[1].Score := 6;
ScoreRecord[2].Player := 'Lieschen';
ScoreRecord[2].Score := 4;
// abspeichern
fs := TFileStream.Create('d:\HighScore.hs', fmCreate);
try
try
// Array in Datei schreiben
fs.WriteBuffer(ScoreRecord, sizeof(ScoreRecord));
except
// Schreibfehler aufgetreten
on E: EWriteError do
ShowMessage(E.Message);
end;
finally
// fs wieder freigeben
FreeAndNil(fs);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
fs: TFileStream;
i: Integer;
begin
fs := TFileStream.Create('d:\HighScore.hs', fmOpenRead);
try
try
// erstmal wieder leeren
for i := 0 to length(ScoreRecord) - 1 do
begin
ScoreRecord[i].Player := '';
ScoreRecord[i].Score := 0;
end;
// aus Datei einlesen
fs.ReadBuffer(ScoreRecord, sizeof(ScoreRecord));
// und kucken was drinne steht
for i := 0 to length(ScoreRecord) - 1 do
begin
ShowMessage(ScoreRecord[i].Player+#13#10+IntToStr(ScoreRecord[i].Score));
end;
except
// Lesefehler aufgetreten
on E: EReadError do
ShowMessage(E.Message);
end;
finally
// fs wieder freigeben
FreeAndNil(fs);
end;
end;
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|