BlockRead ehthält ja in der Demo die größe der Daten, welche vorher gelesen und demnach geschrieben werden sollen.
dui mußt da angeben wieviel geschieben werden soll, also =SizeOf(TAlles) ?
hier mal ein paar mögliche Codes:
Delphi-Quellcode:
var
FaDatei: file of TAlles;
Buf: TAlles;
if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Rewrite(FaDatei); { Ausgabedatei öffnen }
BlockWrite(FaDatei, Buf, SizeOf(Buf));
CloseFile(FaDatei);
end;
if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Reset(FaDatei); { Eingabedatei öffnen }
BlockRead(FaDatei, Buf, SizeOf(Buf));
CloseFile(FaDatei);
end;
Delphi-Quellcode:
var
FaDatei: file of TAlles;
Buf: Array of TAlles;
if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Rewrite(FaDatei); { Ausgabedatei öffnen }
for i := 0 to High(Buf) do
Write(FaDatei, Buf[i]);
CloseFile(FaDatei);
end;
if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Reset(FaDatei); { Eingabedatei öffnen }
Buf := nil;
while not Eof(FaDatei) do
begin
SetLength(Buf, Length(Buf) + 1);
Read(FaDatei, Buf[High(Buf]]);
end;
CloseFile(FaDatei);
end;
Delphi-Quellcode:
var
FaDatei: file of TAlles;
Buf: TAlles;
if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Rewrite(FaDatei); { Ausgabedatei öffnen }
Write(FaDatei, Buf);
CloseFile(FaDatei);
end;
if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Reset(FaDatei); { Eingabedatei öffnen }
Read(FaDatei, Buf);
CloseFile(FaDatei);
end;
Delphi-Quellcode:
var
FaDatei: file of TAlles;
Buf: Array of TAlles;
if SaveDialog1.Execute then { Dialog zum Speichern anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Rewrite(FaDatei); { Ausgabedatei öffnen }
for i := 0 to High(Buf) do
Write(FaDatei, Buf[i]);
CloseFile(FaDatei);
end;
if OpenDialog1.Execute then { Dialog zum Öffnen anzeigen }
begin
AssignFile(FaDatei, SaveDialog1.FileName);
Reset(FaDatei); { Eingabedatei öffnen }
Buf := nil;
while not Eof(FaDatei) do
begin
SetLength(Buf, Length(Buf) + 1);
Read(FaDatei, Buf[High(Buf]]);
end;
CloseFile(FaDatei);
end;
Aber es wäre schon praktisch zu wissen welche Daten du genau gespeichert/gelesen haben möchtst.
Falls es nur TAlles ist, dann wären die Funktionen ohne Schleife für dich verwendbar.