Hallo Community!
Ich habe eine Frage bezüglich eines fstream-Objektes. Undzwar habe ich zwei Funktionen:
1.) Funktion, die aus einer Datei alle Datensätze ausliest, und in einem Vector speichert
2.) Funktion, mit der ich Einträge an diese Datei anfügen kann.
Das Anfügen ansich funktioniert auch einwandfrei. Das Öffnen und Auslesen für sich allein funktioniert auch wunderbar. Nur wenn ich jetzt am Anfang des Programms die 1.) Funktion aufrufe (Open(vector<ENTRY>&) und dann im weiteren Verlauf versuche Datensätze mit der 2.) Funktion (Store(TCHAR*,TCHAR*,TCHAR*)) abzuspeichern funktioniert dies nicht, d.h. ich bekomme bei der Anfrage Datei.good() FALSE zurückgeliefert. Hier erstmal die Funktionsdefinitionen:
C++:
BOOL STOREMANAGER::Store(const TCHAR* name,const TCHAR* money,const TCHAR* date)
{
ENTRY entr;
if(!entr.Set(name,money,date))
return FALSE;
Datei.open(File,std::ios::binary|std::ios::app|std::ios::out);
if(!Datei.good())
{
Datei.close();
return FALSE;
}
Datei.write((char*)&entr,sizeof(entr));
Datei.close();
return TRUE;
}
BOOL STOREMANAGER::Open(std::vector<ENTRY>& EntrVec)
{
ENTRY entr;
Datei.open(File,std::ios::in|std::ios::binary);
if(!Datei.good())
{
Datei.close();
return FALSE;
}
while(!Datei.eof())
{
Datei.read((char*)&entr,sizeof(entr));
if(!Datei.eof())
{
EntrVec.push_back(entr);
vEntry.push_back(entr);
}
}
Datei.close();
/*Datei.seekg(std::ios::beg);
Datei.seekp(std::ios::beg);*/
return TRUE;
}
Ich raufe mir hier nun schon seit Stunden die Haare aus und sehe einfach kein Problem.
Ich hoffe, dass mir hier jemand helfen kann, denn ich komme absolut nicht weiter.
Greetz,
RaDazoNG
Zuletzt bearbeitet von einem Moderator: