Dateiname modifizieren
-
Hallo!
Ich möchte mit SaveDialog zwei Dateien mit verschiedenen Extensions erzeugen,
also z.B. Name.ex1 und Name.ex2.
Mein Code kreiert aber diese Dateien: Name.ex1 und Name.ex1.ex2
Ich stehe mit den Strings/Pointern auf dem Schlauch und bitte um Hilfe!
Danke!if( SaveDialog1->Execute() ) { char * string1; char * string2; char * extension1 = ".ex1"; char * extension2 = ".ex2"; string1 = SaveDialog1->FileName.c_str(); string2 = SaveDialog1->FileName.c_str(); strcat(string1, extension1); strcat(string2, extension2); ofstream Outfile1; Outfile1.open(string1); /* */ Outfile1.close(); ofstream Outfile1; Outfile1.open(string1); /* */ Outfile1.close(); }
-
Hallo
Vergiß die char-Pointer, und arbeite mit VCL-Strings. Und wenn du dann noch die Funktion ChangeFileExt benutzt, brauchst du fast gar nichts selber zu programmieren.
bis bald
akari
-
Stimmt, mit strings gehts problemlos, danke!!!
AnsiString string1, string2; string1 = SaveDialog1->FileName.c_str(); string2 = SaveDialog1->FileName.c_str(); strcat(string1, ".ext1"); strcat(string2, ".ext2"); ofstream Outfile; Outfile.open(string1.c_str()); ... Outfile.close(); Outfile.open(string2.c_str()); ... Outfile.close();
-
Hallo
Bitte nicht strcat auf einen VCL-String anwenden! Ich wundere mich, das du schreibst das würde funktionieren
Geht doch auch viel einfacher :AnsiString string1 = SaveDialog1->FileName + ".ext1";
Natürlich solltest du dir auch mal überlegen, was passiert, wenn in SaveDialog1->FileName bereits eine Dateierweiterung enthalten ist?
bis bald
akari