In eine Datei viele Wertepaare schreiben und wieder lesen
-
Hallo,
ich habe eine Datei, in diese sollen Wertepaare (Name, eMail-Adresse) eingetragen bzw. wieder gelesen werden. Wie mach ich dass am besten dass man leicht wieder welche löschen, neu erstellen und lesen kann?
Danke im Voraus!
-
Zwischendrin löschen geht nicht.
Bye, TGGC (Der Held lebt!)
-
man kann doch die datei nach jeder lösch-operation neu erstellen und die daten in ner datenbank verwalten.
oder man dupliziert die datei, löscht die betreffenden einträge im duplikat und erstellt daraus dann eine neue datei. änderungen lassen sich ja recht einfach umsetzen, indem man die datei nach dem betreffenden eintrag durchsucht, und den geänderten eintrag in die gleich zeile schreibt
-
mmh wie jetzt - wie schreib ich am besten die Daten in die Datei dass er Name und eMail voneinander unterscheiden kann aber weiß, welche email zu welchem namen gehört?
-
hm, wir sind im MFC-Forum?
Header-Datei:
#pragma once #include <afx.h> class CWertePaar : public CObject { DECLARE_SERIAL(CWertePaar); public: CWertePaar() {} CWertePaar(CString strName, CString strEMail) : m_strName(strName), m_strEMail(strEMail) {} virtual ~CWertePaar() {} public: /* andere Memberfunktionen */ public: void Serialize(CArchive& ar); protected: CString m_strName; CString m_strEMail; };
Cpp-Datei:
#include "stdafx.h" #include "WertePaar.h" IMPLEMENT_SERIAL(CWertePaar, CObject, 0); void CWertePaar::Serialize(CArchive& ar) { if (ar.IsLoading()) { ar >> m_strName >> m_strEMail; } else { ar << m_strName << m_strEMail; } }
Dann speicherst du deine WertePaare in einem CObArray oder CObList und Serialisiert diese.
z.B. erstellen einer Neuen Datei und speichern des arrays (obArray)
CFile file("Test.txt", CFile::modeCreate | CFile::modeWrite); CArchive ar(&file, CArchive::store); obArray.Serialize(ar); ar.Close(); file.Close();
Die Hauptarbeit übernimmt das Framework.
MfG
DDR-RAMP.S.:
Bitte nicht alles kopieren, sondern verstehen.
Am besten du guckst dir mal die Hilfe zu CArchive, CObArray und CObject an ^^