000
18.06.2004, 11:28 Uhr
t10ottoo
|
Hi,
hab da nen kleines Problem, hab auch hier im Forum schon danach gesucht, aber nix genaueres darüber gefunden.
Also erstmal zum Quellcode. Hier ist meine Speicherfunktion:
C++: |
void CDateiDlg::OnSave() { UpdateData(TRUE);
string produkt_s; // Variable für Dateien ofstream datei; // Datei anlegen datei.open("Haushalt.txt",ios::app); produkt_s = m_produkt; // Produkt und Menge in die Datei schreiben datei << produkt_s << endl << m_menge << endl << endl; // Datei schließen datei.close();
UpdateData(FALSE); }
|
produkt_s ist nur ne Hilfdatei, da ich keine CStrings in die Datei schreiben kann. m_produkt und m_menge übernimmt er von zwei Editfelder. Also das Programm soll Produkt und die dazugehörige Menge speicher, das klappt auch wunderbar, die Datei sieht dann so aus:
Code: |
Puderzucker 1
Mehl 2
Butter 4
|
So, das auslesen klappt auch wunderbar:
C++: |
void CDateiDlg::OnButter() { string produkt; ifstream datei; datei.open("Haushalt.txt",ios::in);
while(!datei.eof()) { // while datei >> produkt; produkt = produkt.c_str();; if (produkt == "Butter") { // if2 m_produkt = produkt.c_str(); datei >> m_menge; UpdateData(FALSE); } // if2 else { // else2 } // else2 } // while }
|
So, das klappt auch wunderbar, also wenn ich auf den Button "Butter" klicke, dann durchsucht er die ganze Datei bis zum Ende nach dem Wort "Butter".
Nun möcht ich aber, wenn das Produkt "Butter" geladen wurde und auch die Menge in dem Eingabefeld steht, dass ich die Menge ändern kann. Wenn ich jetzt einfach die Menge änder und auf Speichern klicke, dann hängt er das als neues Produkt unten an, so wird die Datei aber immer größer, würde zwar auch gehen ist aber ne sehr unsaubere Lösung
Daher bitte ich um einen kleinen Denkanstoß, weil leider net, wie ich einzelne Daten in der Datei ändern kann...
Vielen Dank schonmal Thomas Dieser Post wurde am 18.06.2004 um 11:29 Uhr von t10ottoo editiert. |