Datei anlegen mit Open/SaveDialog?
-
Hallo.
Ich muss für ein Programm einige Daten in ne Textfile loggen.
Per Open Dialog hol ich mir den Dateinamen und arbeite dann mit fstream.
Funktioniert für bestehende Dateien. Leider legt mir der Dialog keine neuen Dateien an!?!
In den Eigenschaften hab ich CreatePrompt auf true gesetzt, er fragt auch schön danach, ob die Datei angelegt werden soll, aber diese existiert niemals.
Was ist hierbei noch zu beachten?
fstream LogFile;
if(OpenDialog->Execute)
{
FullPath = OpenDialog->Filename;
LogFile.open(FullPath.c_str());
...
}tia
-
Hallo,
Du willst also in eine Datei speichern !?
Dann
1. verwende lieber TSaveDialog
2. verwende statt fstream lieber ofstream (da wird die Datei automatisch zu schreiben angelegt bzw. erzeugt.)
Ansonsten informiere dich mal in der Hilfe nach den Parametern zu fstream.open()Ciao
-
Eigentlich brauch ich den Dialog nur, um ne neue Datei anzulegen.
Ok, ich kuck mal nach ofstream.
-
Naja, der Dialog legt keine Datei an. Er bietet dir nur eine komfortable Möglichkeit den Pfad und den Dateinamen in deinem System festzulegen. Für das Einlesen oder Anlegen von Dateien bist du schon selbst verantwortlich.
-
Ok danke, mit ofstream, legt er die Datei an!
Komisch, das man bei Save bzw Open Dialog die Option CreatePrompt hat.
Er fragt ob er die Datei anlegen soll, man klickt OK und trotzdem tut sich nix.Danke nochma @Braunstein, jetzt kann ich weiter machen.
-
Passwortvergessser schrieb:
Er fragt ob er die Datei anlegen soll, man klickt OK und trotzdem tut sich nix.
Lies doch einfach mal in der Hilfe zu ofCreatePrompt nach!
Es wird lediglich ein entsprechender Hinweis ausgegeben (den du somit nicht mehr selbst programmiren musst), für das eigentliche Anlegen der Datei ist weiterhin dein Programm bzw. bist du verantwortlich.Wenn die Option gesetzt ist musst du also immer prüfen, ob eine entsprechende Datei existiert und sie ggf. anlegen. Wenn die Option nicht gesetzt ist kannst du hingegen sicher sein, dass die vom Dialog zurückgegebene Datei existiert.
-
Naja, der genaue Text in der Hilfe (Builder5) lautet:
ofCreatePrompt Wenn der Benutzer eine nicht existierende Datei angibt, wird er in einer Meldung gefragt, ob eine neue Datei mit dem angegebenen Namen erzeugt werden soll.
Ich schätze das kann man schon mal falsch verstehen, zumal wenn die eigentliche Funktion des OpenDialoges missverstanden wurde.
Ciao
-
Spätestens nach dem ersten (Fehl)Versuch und beim zweiten Lesen sollte eigentlich klar werden, dass da nix vom eigentlichen Anlegen der Datei steht.