Datei zum wiederbeschreiben öffnen
-
Hallo, ich hab folgenden Code
bool TForm6::WriteData(TEdit *Edit) { AnsiString StrFile; StrFile=Edit->Text; char *File = new char[StrFile.Length()+1]; strcpy(File,StrFile.c_str()); Form6->WriteHead(File); Form6->WriteFeet(File); delete [] File; } bool TForm6::WriteHead(const char *File) { bool back=false; FileOut.open(File, ios_base::out); if(FileOut.is_open()){ FileOut << "bla bla"; FileOut.close(); back=true; } return back; } bool TForm6::WriteFeet(const char *File) { bool back=false; FileOut.open(File, ios_base::out||ios_base::app); if(FileOut.is_open()){ FileOut << "bla bla"; FileOut.close(); back=true; } return back; }So, soweit so schlecht, das Problem ist, dass bei der 2. Methode (WriteFeet()) die Datei nicht geöffnet wird und mir den 2. Teil nicht anhängt.
Ich hab schon auprobiert mit der 2. Methode eine andere Datei zu erstellen, und das ging ohne Probleme,
Kann mir einer Helfen, warum hängt er mir den 2.Teil nicht an??Wenn ich noch was relevantes vergessen hab dann sagt mir bescheid, dann poste ich es noch.
Danke
-
Eventuell solltest du das logische Oder || durch ein bitweises Oder | ersetzen, dann werden die Modus-Flags auch korrekt zusammengebaut.
(übrigens ist es nicht nötig, für die Namensübergabe extra ein char-Array anzufordern und wieder freizugeben)
-
Danke, hat geklappt.
Wie macht man sowas dann? Ich brauch doch ein char Array um es fstream zu übergeben. oder? Hab das mal erfahren und da es funktioniert nichts mehr dazu gesucht.
Danke nochmal.
-
Nein, der fstream kommt mit einem beliebigen const char* aus - also auch mit dem, den du von AnsiString bekommst:
void WriteHead(const AnsiString& name) { FileOut.open(name.c_str(),ios::out); ... }
-
OK, das geht auch.
recht herzlichen Dank