Hallo,
wie mein folgender Code zeigt möchte ich mir eine C Datei erstellen die bestimmte Daten aus einem Bitmapfile enthält.
Da fstream C++ standart ist möchte ich diese Klasse verwenden.
In meinem Code habe ich folgendes Problem:
Die Datei wird nach der ausgeführten if (!fout.good()){Anweisung siehe code}; automatisch geschlossen.
Warum dies?
Wenn ich nach der ausgeführten Anweisung if (!fout.good()){Anweisung}; die Datei wieder öffne
wird trotz offner Datei nichts in die Datei geschrieben.
Wenn die Datei vorhanden ist sprich die if(!fout.good()){Anweisung}; nicht ausgeführt wird wird geschrieben.
Vielen Dank für hilfe.
wie mein folgender Code zeigt möchte ich mir eine C Datei erstellen die bestimmte Daten aus einem Bitmapfile enthält.
Da fstream C++ standart ist möchte ich diese Klasse verwenden.
In meinem Code habe ich folgendes Problem:
Die Datei wird nach der ausgeführten if (!fout.good()){Anweisung siehe code}; automatisch geschlossen.
Warum dies?
Wenn ich nach der ausgeführten Anweisung if (!fout.good()){Anweisung}; die Datei wieder öffne
wird trotz offner Datei nichts in die Datei geschrieben.
Wenn die Datei vorhanden ist sprich die if(!fout.good()){Anweisung}; nicht ausgeführt wird wird geschrieben.
Vielen Dank für hilfe.
Code:
void __fastcall TForm1::ffnen1Click(TObject *Sender) { ifstream fsource; fstream fout; BITMAPFILEHEADER bmpFH; BITMAPINFOHEADER bmpIH; if (OpenPictureDialog1->Execute()){ // Einlesen der Datei binär fsource.open(OpenPictureDialog1->FileName.c_str(),ios::binary); if (!fsource.good()){ ShowMessage("Fehler beim Öffnen"); return; } fsource.read((char*)&bmpFH,sizeof(BITMAPFILEHEADER)); fsource.read((char*)&bmpIH,sizeof(BITMAPINFOHEADER)); // Einlesen der Datei text fout.open("bitmaps.c",ios::in|ios::out); if (!fout.good()){ ShowMessage("Keine Datei bitmaps.c im Verzeichniss, Datei wird erzeugt"); // Datei erzeugen ofstream fout("bitmaps.c"); // Info in Datei schreiben fout <<"//===========================================" << endl; fout <<"// Datei bitmaps.c " << endl; fout <<"//===========================================" << endl; } //fout.close(); //fout.open("bitmaps.c",ios::in|ios::out|ios::app); if(fout.is_open())ShowMessage("offen"); else ShowMessage("geschlossen"); // Dateizeiger auf Dateiende setzen fout.seekp( 0L,ios::end); fout << endl; fout <<"#define XXXHidh "<<bmpIH.biWidth<< endl; fout <<"#define XXXWidh "<<bmpIH.biHeight<< endl; fout << endl; fout <<"extern const unsigned char[]= {"<< endl; fout << endl; fsource.get(); fout <<"0x"<< uppercase << hex << bmpIH.biWidth <<","<< endl; fout <<"};"<< endl; } }
Comment