Thema: Delphi I/O-Fehler-998

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: I/O-Fehler-998

  Alt 16. Mär 2007, 20: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.
$2B or not $2B
  Mit Zitat antworten Zitat