Lineare Liste in Datei speichern



  • Hallo Zusammen,

    Ich habe in einem c++ Program eine lineare Liste erstellt.
    Also verschiedene Objekte eines Structs, welche unter Anderem einen Zeiger auf das nächste Element enthalten.

    Nun möchte ich beim Beenden des Programms die Liste abspeichern und beim erneuten öffnen des Programms die Liste wider benützen.

    Mit den Dateioptionen, welche ich bisher kenne, scheint mir dies zwar möglich, aber extrem aufwendig und kompliziert. Ich bin doch bestimmt nicht der erste, der dies machen will. Gibt es da keine einfache Lösung?

    Ich Arbeite mit vc++ 2010



  • Warum postest Du dies unter C++/CLI?
    Falls Du dies verwenden solltest so rate ich Dir dazu den XmlSerializer zu verwenden...



  • Guten Abend,
    Vielen Dank für die Antwort.
    Ja, ich habe am falschen Ort gepostet. Ob man das ändern kann?

    Nun habe ich den Serializer angeschaut. Dies ist bestimmt ein Weg dazu, aber bis dies funktioniert...

    Offensichtlich verwendet der Profiprogrammierer andere Methoden um mein Problem zu lösen.

    Im wesentlichen will ich einfach mit einer Tablle arbeiten, die n-Spalten und
    m-Zeilen hat. Die Spalten haben jedoch unterschiedliche Datentypen.
    Dies funktioniert bestens mit einem struct (oder Klasse) Zeile, welcher in der (n+1)ten spalte einen Zeiger auf die nächste Zeile enthält. Nur beim Abspeichern stehe ich an.

    Wie realisiert ein Profiprogrammierer solch eine Tabelle?



  • Kommt drauf an was genau gemacht werden soll. Und ja natürlich funktioniert das, aber das jeder "Profiprogrammierer" anders machen. Warum genau geht ein Serializer nicht ? Das wäre das einfachste.

    Ansonsten kannst du einfach durch die Liste laufen und jedes Objekt deiner struct selber in einen Binärstream schreiben. Primitive Datentypen direkt, strings in dem du z.B. die Länge als int hineinschreibst und danach den inhalt des strings, Objekte in dem du alle Membervariablen wie gerade beschrieben speicherst, usw.

    Das wäre dann allerdings auch eine (manuelle) Seralisierung 😃


Anmelden zum Antworten