Umgehen des Serialisierungsmechanismus
Wie Sie gesehen haben, bietet das Framework eine Standardeinstellung zum Lesen und Schreiben von Daten in und aus Dateien. Serialisieren durch ein Archivobjekt entspricht den Anforderungen einer großen Anzahl von Anwendungen. Eine solche Anwendung liest eine Datei vollständig in den Arbeitsspeicher, ermöglicht es dem Benutzer, die Datei zu aktualisieren, und schreibt dann die aktualisierte Version erneut auf den Datenträger.
Einige Anwendungen funktionieren jedoch sehr unterschiedlich, und für diese Anwendungen ist die Serialisierung über ein Archiv nicht geeignet. Beispiele sind Datenbankprogramme, Programme, die nur Teile großer Dateien bearbeiten, Programme, die Nur-Text-Dateien schreiben, und Programme, die Datendateien freigeben.
In diesen Fällen können Sie die Serialisierungsfunktion auf eine andere Weise außer Kraft setzen, um Dateiaktionen über ein CFile-Objekt anstelle eines CArchive-Objekts zu vermitteln.
Sie können die Open
Klassenfunktionen , Read
, Write
, Close
und Seek
Memberfunktionen der Klasse CFile
verwenden, um eine Datei zu öffnen, den Dateizeiger (Suchen) auf einen bestimmten Punkt in der Datei zu verschieben, einen Datensatz (eine angegebene Anzahl von Bytes) zu diesem Zeitpunkt zu lesen, dem Benutzer das Aktualisieren des Datensatzes ermöglichen und dann denselben Punkt erneut suchen und den Datensatz wieder in die Datei schreiben. Das Framework öffnet die Datei für Sie, und Sie können die GetFile
Memberfunktion der Klasse CArchive
verwenden, um einen Zeiger auf das CFile
Objekt abzurufen. Für noch anspruchsvollere und flexiblere Verwendung können Sie die OnOpenDocument- und OnSaveDocument-Memberfunktionen der Klasse CWinApp
überschreiben. Weitere Informationen finden Sie unter "Class CFile " in der MFC-Referenz.
In diesem Szenario führt Ihre Serialize
Außerkraftsetzung nichts aus, es sei denn, Sie möchten sie lesen und schreiben, um sie auf dem neuesten Stand zu halten, wenn das Dokument geschlossen wird.