nunja funktionieren stelle ich mir anders vor
Also es funktioniert nur einmal. Bei einem erneuten ausführen der laden funktion stüzt delphi komplett ab
, wegen einer "Zugriffsverletzung".
Außerdem zeigt er mir nicht die Werte an, er zeigt nichts an im "showmessage":
Code sieht so aus:
Delphi-Quellcode:
type
zeiten= packed record
name: string;
bzeit: string;
versuch: integer;
end;
var testr : array[1..20] of zeiten;
procedure TForm1.SpeedButton3Click(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(testr) - 1 do
begin
testr[i].bzeit := '';
testr[i].name := '';
testr[i].versuch := 0;
end;
// aus Datei einlesen
fs.ReadBuffer(testr, sizeof(testr));
// und kucken was drinne steht
for i := 0 to length(testr) - 1 do
begin
ShowMessage('Bzeit:'+testr[i].bzeit+#13#10+'Verusch:'+IntToStr(testr[i].versuch)+#13#10+'name'+testr[i].name);
end;
except
// Lesefehler aufgetreten
on E: EReadError do
ShowMessage(E.Message);
end;
finally
// fs wieder freigeben
FreeAndNil(fs);
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
var outputfile : textfile;
i : word;
StrList: TStrings;
y: integer;
fs: TFileStream;
begin
testr[1].name := 'muh';
testr[2].name := 'jta';
fs := TFileStream.Create('d:\HighScore.hs', fmCreate);
try
try
// Array in Datei schreiben
fs.WriteBuffer(testr, sizeof(testr));
except
// Schreibfehler aufgetreten
on E: EWriteError do
ShowMessage(E.Message);
end;
finally
// fs wieder freigeben
FreeAndNil(fs);
end;
end;