Dobrý den
Mám problém s uložením objektu do souboru (C++/CLI). Už jsem cetl spoustu 'článků', ale pořád se nemůžu ponout z místa.
public class Databaze { public:
Databaze(void);
protected:
~Databaze()
{
}
public:
struct kolo
{
string nazev;
int ucinnost;
};
vector<kolo> typyKol;
vector<string> necoDalsiho;
bool load(string filename);
void save(string filename);}
metoda pro uložení
void Databaze::save(string filename)
{
// otervu a nactu
ofstream ofs(filename.c_str(), ios::binary);
ofs.write((char *)(this), sizeof(Databaze));
ofs.close();
}
a metoda pro načtení
bool Databaze::load(string filename)
{
bool ok = true;
Databaze* db = new Databaze();
ifstream ifs(filename.c_str(), ios::binary);
ifs.read((char *)(db), sizeof(Databaze));
if(!ifs.good()){
// osetreni chyby.....
ok = false;
}
ifs.close();
// pouze pokud je to OK
if(ok){
this->typyKol = db->typyKol;
this->necoDalsiho= db->necoDalsiho;
}
// vratim jestli jsem uspel
return ok;
}
pro načtení to používám nějak takhle
....
Databaze *databaze;
databaze = new Databaze();
databaze->load("jmeno.db");
....
Už nevím v čem je problém. Ukládaná velikost? nebo ten řetězec?
Napadá Vás něco co dělám vyloženě špatně?
Dík