Thema: Delphi I/O-Fehler-998

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#15

Re: I/O-Fehler-998

  Alt 16. Mär 2007, 19:47
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat