Поделиться через


Обход механизма сериализации

Так как вы видели, платформа предоставляет способ по умолчанию чтение и запись данных на диск и с него файлов. Сериализация через объект имеет большой архива соответствует требованиям многих приложений. Такое приложение считывает файл полностью в память, дает пользователю возможность обновления файла, а затем записывает обновленную версию на диск снова.

Однако некоторые приложения работают данные очень по-разному, и для этих приложений сериализация по архивным не эквивалентны. Примеры включают в себя программы базы данных программы, которые изменяют только части больших файлов, программы, которые создают только для текста и файлы программы, а файлы данных.

В таких случаях можно переопределить функцию Выполнять сериализацию по-другому, чтобы посредничать действия файла с помощью объекта CFile, а не объект CArchive.

Можно использовать Открыть, Чтение, запись, Закрыть и функции-члены Seek класса CFile для открытия файла, чтобы указатель файла (поиск) к определенному моменту в файле, чтение запись (указанное число байтов) в этой точке, дают пользователям возможность обновления записи, то строки в одной и той же точки снова и записывает записи обратно в файл. Платформа позволяет открыть файл автоматически, а с помощью функции-члена GetFile класса CArchive получить указатель на объект CFile. Даже для более изощренного и гибкого участка можно переопределить функции-члены OnOpenDocument и OnSaveDocument класса CWinApp. Класс CFile. Дополнительные сведения см. в справочнике по MFC.

В этом сценарии, переопределенный Serialize не будет ничего делать, если, например, нужно использовать его для чтения и записи заголовка файла, чтобы сохранить его последней при закрывает документ.

См. также

Ссылки

Использование документов