Entwickler-Ecke

Dateizugriff - Fehler beim Speichern


flowstar - Sa 15.05.04 13:46
Titel: Fehler beim Speichern
Warum funktioniert dieser Code nicht?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
var
  F : File;
begin
  AssignFile(F,'C:\WINDOWS\Desktop\test.html');
  rewrite(f);
  writeln('hallo');
  closefile(f);
end;


Der Fehler kommt immer bei writeln


Delete - Sa 15.05.04 13:53

Versuch´s mal mit

Delphi-Quelltext
1:
  F : TextFile;                    


flowstar - Sa 15.05.04 13:54

nein das funktioniert auch nicht der Fehler tritt immernoch ein


Christian S. - Sa 15.05.04 13:59

Hallo!

Du verrätsst uuns zwar nicht, wie dieser Fehler heißt, aber Du musst ihm bei WriteLn noch sagen, dass er auch in die Datei schreiben soll:


Delphi-Quelltext
1:
WriteLn(f, 'hallo');                    


Du solltest aber wirklich "F:Textfile" verwenden, wenn Du nur Text speichern willst.

MfG
Peter


flowstar - Sa 15.05.04 14:02

ok danke jetzt funktioniert es


Delete - Sa 15.05.04 15:25


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject); 
var 
  F : TextFile; 
begin 
  AssignFile(F,'C:\WINDOWS\Desktop\test.html'); 
{$I-}
  rewrite(f); 
{$I+}
  if IOResult = 0 then
  begin
    writeln('hallo', f); 
    closefile(f); 
  end
  else
    ShowMessage(SysErrorMessage(GetLastError));
end;

So ist es korrekt, inklusive Fehlerbehandlung.


Delete - So 16.05.04 08:43

Na ja, noch besser wär´s so:

Delphi-Quelltext
1:
2:
3:
4:
5:
{$I-}
AssignFile(...);
{ ... }
CloseFile(...);
{$I+}

Falls bei "WriteLn" was schief geht, fängt man das damit auch ab und kann dann am Ende ja das Ergebnis von "IoResult" prüfen bzw. anzeigen.