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 Datei erstellen (https://www.delphipraxis.net/28400-datei-erstellen.html)

orakel 24. Aug 2004 12:11


Datei erstellen
 
Hallo,
ich möchte bei folgender Prozedur überprüfen, ob eine Text-Datei existiert. Falls nicht, soll sie erstellt werden. Dann möchte ich diese Datei in eine Listbox laden.
Das mit dem erstellen funktioniert ohne Probleme, aber beim Laden kommt diese Fehlermeldung:

Code:
---------------------------
Debugger Exception Notification
---------------------------
Project Project2.exe raised exception class EFOpenError with message 'Cannot open file D: \Laden.txt'. Process stopped. Use Step or Run to continue.
Hier der Code:
Delphi-Quellcode:
if not FileExists(ExtractFilePath(application.ExeName)+'Laden.txt') then
  FileCreate(ExtractFilePath(application.ExeName)+'Laden.txt');
 ListBox1.Items.LoadFromFile(ExtractFilePath(application.ExeName)+'Laden.txt');
Vielen Dank fürt eure Hilfe!

Stevie 24. Aug 2004 12:19

Re: Datei erstellen
 
Mit FileCreate erzeugst du nicht nur eine Datei, sondern öffnest sie auch gleichzeitig!!
Also mach einfach ein FileClose drumherum, das schließt sie wieder.

mischerr 24. Aug 2004 12:24

Re: Datei erstellen
 
Ich denke es wäre sicherer zu prüfen, ob FileCreate überhaupt geklappt hat - dies ignoriertst du hier.
Ausserdem macht es IMHO keinen Sinn, die mit FileCreate erzeugte, leere, Datei überhaupt zu laden.

Grüsse!

orakel 24. Aug 2004 13:24

Re: Datei erstellen
 
Danke für den Tipp!
@mischerr: wenn die Datei aber schon besteht, soll sie ja geöffnet werden.

mischerr 24. Aug 2004 16:35

Re: Datei erstellen
 
Klar, dass sie geöffnet werden soll wenn sie existiert. Aber das läßt sich ja mittels FileExists in Erfahrung bringen. Irgendwann soll ja aber wohl auch mal was in die Datei geschrieben werden... Wieso also nicht die Datei erst beim Schreibvorgang erzeugen (die Daten darin werden wohl sowieso überschrieben) statt sie u.U. die ganze Laufzeit (u.U. leer) offen zu halten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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