Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi E/A Fehler 103 (https://www.delphipraxis.net/115371-e-fehler-103-a.html)

Hannnes 11. Jun 2008 08:41


E/A Fehler 103
 
Hallo!

Ich möchte eigentlich nur eine Datei öffnen und ein paar Zeilen hineinschreiben wenn ich auf einen Button klicke.
Aber irgendwie klappt das nicht und ich habe keine Ahnung warum. :gruebel:

Delphi-Quellcode:

procedure TForm1.Button2Click(Sender: TObject);
begin
     AssignFile(Datei,'neu01.txt');
     Reset(Datei);
     if IOResult = 0 then
     begin
     writeln(Datei,'text1');
     writeln(Datei,'text2');
     CloseFile(Datei);
     end
end;
Könnt ihr mir weiterhelfen?

Grüße
Hannnes

tomsel 11. Jun 2008 08:44

Re: E/A Fehler 103
 
Mit reset öffnest du die Datei readonly. öffne sie mit rewrite oder append.

mkinzler 11. Jun 2008 08:44

Re: E/A Fehler 103
 
Zum Schreiben Rewrite statt Reset

Bernhard Geyer 11. Jun 2008 08:45

Re: E/A Fehler 103
 
Solange du keinen kompletten Pfad angiebst könnte die Datei *irgendwo* versucht werden erzeugt zu werden, je nachdem wie der aktuelle Pfad deiner Anwendung ist. U.u. hast du in dem aktuellen Pfad keine Schreibrechte.

Luckie 11. Jun 2008 08:48

Re: E/A Fehler 103
 
Guck in der Hilfe nach was E/A Fehler 103 ist. Wenn ich mich nicht irre ist das "Datei schon geöffnet" oder "Datei noch nicht geöffnet".

Das passiert dir dann, wenn du die dateivariable global deklarierst und die datei an einer anderen Stelle öffnest, aber nicht wieder schließt.

Eine Fehlerbehandlung wäre auch sinnvoll:
Delphi-Quellcode:
begin
AssignFile(Datei,'neu01.txt');
{$I-}
Reset(Datei);
{$i+}
if IOResult = 0 then
begin
  writeln(Datei,'text1');
  writeln(Datei,'text2');
  CloseFile(Datei);
end
else
  ShowMessage(SysErrorMessage(GetLastError));
Dann weißt du was los ist.

Warum wird eigentluich fast immer auf eine konsequente Fehlerbehandlung verzichtet? Damit kann man solche Threads von vorneherein vermeiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz