Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Cuvanje asocijativnih sablona u fajl?

[es] :: C/C++ programiranje :: Cuvanje asocijativnih sablona u fajl?

[ Pregleda: 4038 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.201.EUnet.yu



Profil

icon Cuvanje asocijativnih sablona u fajl?21.06.2003. u 14:16 - pre 253 meseci
Napravio sam program za cuvanje spiska alata. Kada sam mu stavio da upisuje i cita iz fajla on nikako nije citao te podatke. Inace sam koristio asocijativni sablon map.
Da li ja mogu da upisujem u fajl (objekat map<string, Alat> PrvaPolica)sa komandama

if (!izbor1)
{
ofstream fout("PAlati", ios::binary);
fout.write((char*)& PrvaPolica, sizeof PrvaPolica);
fout.close();
}
i citam sa

ifstream fin("PAlati", ios::binary);
if (fin.good())
{
fin.seekg (0, ios::end);
duzina = fin.tellg();
fin.seekg (0, ios::beg);
fin.read((char*)& PrvaPolica, EOF);
fin.close();
}
else
fin.close();
Citav izvorni fajl sam vam ostavio ako zelite da ga vidite. Bez ucitavanja iz fajla sve lepo radi ali dzaba ako kada gasnem program mora sve iz pocetka.
P.S. Kako bih mogao da izbrisem prethodne poruke sa ekrana?
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
Prikačeni fajlovi
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: Cuvanje asocijativnih sablona u fajl?21.06.2003. u 16:47 - pre 253 meseci
Malo si pogrešno shvatio šta je C++ — on samo omogućava, a ne implementira sve.

Za ovaj posao tvoje „rešenje“ nikako ne valja, i kosi se sa osnovnim principima OOP-a.

Ono što ti treba da uradiš je sledeće:
— napraviš funkciju za upis podataka u fajl (možda iskoristiš i operator<< za ostream).
— napraviš funkciju za čitanje podataka iz fajla (možda iskoristiš i operator>> za istream).

I zatim podatke čitaš i pišeš pomoću „fout << PrvaPolica“, tj. „fin >> PrvaPolica“.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.119.EUnet.yu



Profil

icon Re: Cuvanje asocijativnih sablona u fajl?22.06.2003. u 17:25 - pre 253 meseci
Hvala ti sto si mi ukazao na moju gresku sto se tice OOP, ali ipak ne svatam kako da uradim upisivanje
u fajl sa operatorom >> ili sa nekom zasebnom funkcijom, ali ne znam sta bi u njoj zapisao.
Imam pitanje i u vezi iteratora jer ne svatam njihovu strukturu. Oni su objekti koji pokazuju na druge objekte. Da li oni pokazuju na instancu
(map <string, Alat>) sablonske klase ili na neki drugi objekat, jer ne znam kako bi mogao da napravim funkciju koja bi mi ispisivala sve alate koji se nalaze na spisku.
P.S. Napomenite mi ako nesto dobro nisam razumeo.

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.client.attbi.com



+18 Profil

icon Re: Cuvanje asocijativnih sablona u fajl?22.06.2003. u 19:41 - pre 253 meseci
To sto si sada opisao je problem serijalizacije:

PAlat sadrzi brojne pointere, sto na stringove, sto na Alate, znaci ne mozes da ga prosto dumpujes na disk. Moras da rucno prodjes kroz niz svih (string, Alat) parova i da ih snimis na odgovarajuci nacin. Verovatno i Alat sadrzi neke pointere koje ces morati da nekako snimis. Znaci pseudokod bi izgledao ovako:

foreach string Key in PAlat.Keys
{
Save(Key);
Save(PAlat[Key]);
}

 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.177.EUnet.yu



Profil

icon Re: Cuvanje asocijativnih sablona u fajl?22.06.2003. u 20:08 - pre 253 meseci
Svatio sam kako rade iteratori i funkciju za ispisivanje sam napravio veoma jednostavno
void PokaziSveAlate(const ZbirkaAlata& Polica)
{
for (ZbirkaAlata::const_iterator ci=Polica.begin(); ci != Polica.end();ci++)
cout << (*ci).second;
}
Naravno moram da napravim i
ostream& operator << (ostream& out, const Alat& Alat)
{
out <<"<"<< Alat.iIme() <<">\t\t\t\t\t\t\t<"<< Alat.iKolicina() <<">\t<"<< Alat.iCena() <<">"<<endl;
return cout;
}

Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
 
Odgovor na temu

stale85
Stanislav Antic
Student
Sremčica

Član broj: 6670
Poruke: 120
*.83.EUnet.yu



Profil

icon Re: Cuvanje asocijativnih sablona u fajl?30.06.2003. u 07:44 - pre 253 meseci
Uspeo sam da resim problem na lak nacin. Tako da cu ostaviti ovde ako neko bude imao slican problem.
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what’s wrong.”
Prikačeni fajlovi
 
Odgovor na temu

[es] :: C/C++ programiranje :: Cuvanje asocijativnih sablona u fajl?

[ Pregleda: 4038 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.