Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Append(TextdateiVariable) wirft "E/A-Fehler 32" (https://www.delphipraxis.net/95948-append-textdateivariable-wirft-e-fehler-32-a.html)

little-x 16. Jul 2007 14:23


Append(TextdateiVariable) wirft "E/A-Fehler 32"
 
Hallo,

folgender Code:

Delphi-Quellcode:
Procedure datei_schreiben;
        var    dat: TextFile;
                pfad: string;
begin
       pfad:= 'c:\tmp\meinedatei.txt';
       if not FileExists(pfad) then FileCreate(pfad);
       AssignFile(dat, pfad);
       
       Append(dat); //Hier kommt der Fehler!

       writeln(dat, 'mein Text');
       CloseFile(dat);
end;
Die Datei wird erstellt (wie ich sehen kann). Auch das Assign ruft keinen Fehler hervor.

Seltsamerweise kommt der Fehler nicht immer. Wenn er kommt, mache ich immer dasselbe:

-> Delphi schließen
-> Datei löschen
-> Delphi öffnen
-> erneut starten.

Beim 4. oder 5. Versuch klappt es dann. Kennt jemand das Phänomen?

Viele Grüße!

marabu 16. Jul 2007 14:28

Re: Append(TextdateiVariable) wirft "E/A-Fehler 32"
 
Hallo,

mit FileCreate() öffnest du die Datei auch gleichzeitig - und sperrst sie für nachfolgende Benutzung. Mache es besser so:

Delphi-Quellcode:
var
  tf: TextFile;
  fn: TFileName;
begin
  // ...
  AssignFile(tf, fn);
  if FileExists(fn)
    then Append(tf)
    else Rewrite(tf);
  // ...
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.

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