Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#16

Re: Dateien erstellen, schreiben, Lesen (E/A-Fehler 32 &

  Alt 8. Mai 2008, 11:58
Ihr wollt das wirklich so oft deklarieren ? Tja, dann macht eben. Wenn IOResult benutzt werden soll, dann mus aber auch hier noch was deklariert werden :

Zitat von Luckie:
Delphi-Quellcode:
procedure Foo;
var
  tf: TextFile;
begin
  Assign(tf, '...');
{$I-}  // automatische Fehlerbehandlung ausschalten, machen wir selber
  Rewrite(tf);
{$I+}
  if IOResult = 0 then // auf Fehler prüfen
...
Man stelle sich mal so was vor :

Delphi-Quellcode:
procedure Foo;
{$I-}  // automatische Fehlerbehandlung ausschalten, machen wir selber
  Rewrite(tf);
{$I+}
  writeln (IOresult);
  if IOResult = 0 then // auf Fehler prüfen
...
Da will jetzt einer wissen, was IOResult eigentlich anzeigt und zerschießt sich das ganze IOResult, weil das writeln auch eine I/O-Operation ist. Das Programm wird dann nicht laufen, wie gewünscht. Das weist man sofort einer Variablen zu und verwendet die ! Also so :

Delphi-Quellcode:
procedure Foo;
var
  tf: TextFile;
  io : integer;
begin
  Assign(tf, '...');
{$I-}  // automatische Fehlerbehandlung ausschalten, machen wir selber
  Rewrite(tf);
{$I+}
  io := IOResult;
writeln (io);
  if io = 0 then // auf Fehler prüfen
...
Sieht relativ unwichtig aus, sollte man aber schon so machen.
Gruß
Hansa
  Mit Zitat antworten Zitat