Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Speichern/Laden mit "assignfile, readln, writeln,..

  Alt 8. Sep 2008, 21:20
Hallo ErdNussLocke,

besser packed record verwenden, weil Delphi unter umständen leere Bytes einträgt um den Zugriff zu beschleunigen.

Delphi-Quellcode:
type
  TDatenBank = packed record .
        Name: String;
  End;
Beim Anlegen einer neuen Datei sollte man Fehler mit IOResult-Abfragen.
Die Comilerschalter {$-I} wird deaktiviert um einen Programmabsturz zu verhindern, wenn die Datei nicht angelegt werden kann, nach dem Anlegen wird er wieder eingestellt und mit IOResult ein vorhandener Fehler abgefragt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  assignfile(Datei, 'D:\Datenbank');
  {$I-}rewrite(Datei); {$I+}   
  if IOResult <> 0 then ShowMessage(‘Neue Datei nicht angelegt’);
  datensatz.vorname:= edit1.text;
  write(Datei, datensatz);
  closefile(Datei);
end;
Das gleiche muss auch beim Lesen gemacht werden.

Delphi-Quellcode:
assignfile(Datei,'D:\Datenbank');
   {I-}reset(Datei); {I+}
   if IOResult <> 0 then ShowMessage(‘Vorhande Datei konnte nicht geöffnet
                                      werden’);
  // readln(Datei, ???);
  readln(Datei, datensatz);
  closefile(Datei);
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat