Speichern.....



  • Hmmmh, hab da ein sch... Problem. Ich habe eine Anwendung in MFC die Daten (CObArray...) abspeichert (mit Serialize). Jetzt sind aber neue parameter Hinzugekommen

    Seither:

    ar << P1 << P2

    jetzt;

    ar << P1 << P2 << P3.

    Wenn ich jetzt ein "altes" File lade, kommt unerwartetes Dateiformat. Wie kann ich den die Version abfragen. Mit dem VERSIONABLE_SCHEMA funktioniert das bei mir nicht, dass steht immer auf 1. Jibt es da bei .net nichts besseres????

    Danke für Eure Hilfe!



  • Der erste oder letzte Parameter einer Datei, sollte in der Regel
    die Version sein, wenn es verschiedene gibt.

    Devil



  • Ok, dann habe ich die Version.
    Ich habe aber einenen Fall in dem ich ein CObarray serialisiere. Ich habe also eine Klasse die eine Serialize-Funktionen besitzt und füge diese (Klasse) dem Array hinzu. Jetzt kommmt bei der Klasse ein weiterer Parameter hinzu...

    wenn ich jetzt meinen Array

    m_oaTest.Serialize

    speichere, kann ich ja die Version nicht mehr abfragen.



  • Der dritte Parameter des Makros IMPLEMENT_SERIALIZE

    Auszug aus VC++ in 21 Tagen
    Das Makro IMPLEMENT_SERIAL übernimmt drei Argumente. Das erste gibt wie beim Makro DECLARE_SERIAL den Klassennamen an. Das zweite Argument übergibt den Namen der Basisklasse, von der Ihre Klasse abgeleitet ist. Das dritte Argument bezeichnet eine Versionsnummer, aus der man bestimmen kann, ob eine in die Anwendung einzulesende Datei in der richtigen Version vorliegt. Die Versionsnummer muß positiv sein und sollte jedesmal inkrementiert werden, wenn Sie Änderungen an der Serialisierungsmethode der Klasse vornehmen und sich dabei die mit einer Datei auszutauschenden Datenformate ändern.

    [ Dieser Beitrag wurde am 07.08.2002 um 20:02 Uhr von CrazyOwl editiert. ]


Anmelden zum Antworten