Sdílet prostřednictvím


Obcházení mechanismu serializace

Jak jste viděli, architektura poskytuje výchozí způsob čtení a zápisu dat do a ze souborů. Serializace prostřednictvím archivního objektu vyhovuje potřebám velkého množství aplikací. Taková aplikace načte soubor zcela do paměti, umožní uživateli aktualizovat soubor a pak znovu zapíše aktualizovanou verzi na disk.

Některé aplikace však pracují s daty velmi odlišně a pro tyto aplikace serializace prostřednictvím archivu není vhodné. Mezi příklady patří databázové programy, programy, které upravují jenom části velkých souborů, programy, které zapisuje pouze textové soubory, a programy, které sdílejí datové soubory.

V těchto případech můžete funkci Serializace přepsat jiným způsobem, jak mediatizovat akce souboru prostřednictvím objektu CFile místo CArchive objektu.

K otevření souboru můžete použít Openfunkce , , Read, WriteClosea Seek členské funkce třídyCFile, přesunout ukazatel souboru (hledat) do konkrétního bodu v souboru, přečíst záznam (zadaný počet bajtů) v tomto okamžiku, nechat uživatele aktualizovat záznam, pak znovu vyhledat stejný bod a zapsat záznam zpět do souboru. Architektura otevře soubor za vás a můžete použít GetFile členovou funkci třídy CArchive k získání ukazatele na CFile objekt. Pro ještě sofistikovanější a flexibilnější použití můžete přepsat OnOpenDocument a OnSaveDocument členské funkce třídy CWinApp. Další informace naleznete v CFile třídy v mfc reference.

V tomto scénáři přepsání Serialize nic nedělá, pokud ho například nechcete číst a zapisovat hlavičku souboru, aby byla při zavření dokumentu aktuální.

Viz také

Použití dokumentů