| Autor |
Beitrag |
Loki
      
Beiträge: 34
Win XP Home
|
Verfasst: Sa 27.11.04 22:24
Hi
Also ich hab da mal ne Frage:
Folgendes in meinem Programm wird am Start geguckt ob eine Ini - Datei existiert und wenn nicht dann mit FileCreate erzeugt. Wenn ich jetz aber wenn das Programm beendet wird drauf zugreifen will krieg ich denn Fehler das er sagt er kann nicht drauf zugreifen. Wenn ich das Programm dann neustarte läuft alles normal. Woher kommt das, dass er nach dem erstellen der Datei nicht sofort drauf zugreifen kann ????
MFG
Loki
|
|
greg
      
Beiträge: 119
Windows2000, WindowsXP
D5 Prof
|
Verfasst: Sa 27.11.04 22:32
Hallo Loki,
wie erzeugst Du denn die Datei? Es gibt da eine ganze Menge Möglichkeiten.
Gibt es vielleicht irgendeinen Handle, den Du vergessen hast wieder freizugeben? Versuch doch mal die Datei nach dem erzeugen zu schließen und dann mit Deiner Lesroutine drauf zuzugreifen.
Gruß
Gregor
|
|
Loki 
      
Beiträge: 34
Win XP Home
|
Verfasst: Sa 27.11.04 22:41
Danke das hat mich auf die richtige Fährte gebracht und jetzt klappt es
Damit Frage beantwortet
P.S. : Hier mal die Lösung falls jemand anderes das Problem auch haben sollte
Lösung:
Delphi-Quelltext 1: 2: 3: 4:
| var hFile : Integer
hFile := FileCreate(Filename); FileClose(hFile); |
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 27.11.04 22:42
Rufst du nach dem FileCreate() auch schön brav ein FileClose() auf den Rückgabewert auf? Wenn nicht, bitte machen
Ansonsten: Warum erzeugst du die Datei nicht einfach mit der T(Mem)IniFile-Klasse? Wenn die Datei nicht existiert, müsste sie eigentlich neu angelegt werden...
Edit: Zu spät... ich Schnarchnase...
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Loki 
      
Beiträge: 34
Win XP Home
|
Verfasst: Sa 27.11.04 22:44
Also entweder ich hatte an der Stell einen Fehler oder der erzeigt keine neue Datei wenn sie nicht existiert 
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 27.11.04 22:46
| Loki hat folgendes geschrieben: | Also entweder ich hatte an der Stell einen Fehler oder der erzeigt keine neue Datei wenn sie nicht existiert  |
Ich bin mir nicht sicher, ob TIniFile die Datei erzeugt, ich meine aber, es wäre so. Gut, wenn's nicht so ist, dann muss jedenfalls vorher die Datei wieder geschlossen werden
Und wenn du dir das Dateihandle sparen willst, geht's kürzer so: FileClose(FileCreate(Filename));
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Loki 
      
Beiträge: 34
Win XP Home
|
Verfasst: Sa 27.11.04 22:53
Das ist eine gute Idee das mach ich dann mal so. 
|
|
Syngel Kid
      
Beiträge: 61
Win XP
Delphi 2005
|
Verfasst: So 28.11.04 14:11
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: So 28.11.04 14:18
Das hatte ich auch schon vorgeschlagen, aber Loki meinte, die Datei wird nicht neu erzeugt 
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Loser
Hält's aus hier
Beiträge: 8
|
Verfasst: So 28.11.04 14:32
 tommie-lie,
| tommie-lie hat folgendes geschrieben: | Und wenn du dir das Dateihandle sparen willst, geht's kürzer so:
Delphi-Quelltext 1:
| FileClose(FileCreate(Filename)); | |
Nichts für ungut, aber das halte ich jetzt nicht für eine gute Idee, denn wenn FileCreate, aus welchen Gründen auch immer, fehlschlägt, wird FileClose mit INVALID_HANDLE_VALUE aufgerufen.
Es passiert zwar nichts, aber ich finde es unsauber.
_________________ Ciao
|
|
Loki 
      
Beiträge: 34
Win XP Home
|
Verfasst: So 28.11.04 20:55
Hab das jetzt nochmal getestet. es wird doch eine Datei erzeugt. Also war es doch mein Fehler 
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: So 28.11.04 21:00
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Syngel Kid
      
Beiträge: 61
Win XP
Delphi 2005
|
Verfasst: So 28.11.04 21:45
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: So 28.11.04 21:49
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|