t для восстановления или записи
После использования методов
CArchive::ReadObject и
CArchive::WriteObjec t для восстановления или записи объектов, необходимо закрыть используемый для этого объект класса
CArchive. Для этого нужно вызвать метод
CArchive::Close.
После вызова этого метода нужно закрыть файл, cвязанный с объектом
CArchive, вызвав метод
CFile::Close, и удалить сам объект класса
CFile.
Запись в архивный файл
Когда приложение желает сохранить состояние объекта в файле, оно вызывает для него метод
Serialize. В качестве параметра этому методу передается указатель на объект класса
CArhive, связанный с файлом, открытым на запись.
Для того, чтобы определить, предназначен ли объект-архив для записи или для чтения, можно вызвать методы
CArchive::IsLoading или
CArchive::IsStoring.
Метод
IsStoring возвращает ненулевое значение, если данный объект предназначен для записи в файл, и нуль в противном случае. Метод
IsLoading является прямой противоположностью метода
IsStoring. Можно использовать любой метод для определения режима работы с объектом-архивом.
В случае записи в архивный файл реализация метода должна сохранить в файле все элементы данных, которые потом потребуется восстановить. Для этого необходимо воспользоваться оператором
<< или методами
WriteString и
Write, определенными в классе
CArchive.
Оператор << можно использовать, для записи в архивный файл переменных простых типов, например, long, int, char и объектов других классов, наследованных от класса
CObject.
Для записи в архивный файл массивов удобнее использовать метод
Write класса
CArchive. Он позволяет записать в файл определенное количество байт из указанного буфера памяти.
Если требуется сохранить строку символов, закрытую нулем, то гораздо удобнее вместо метода
Write использовать метод
WriteString. Метод
WriteString записывает в архивный файл строку, ограниченную нулевым символом.
Чтение из архивного файла
Опишем теперь, как восстановить записанное ранее состояние объекта из архивного файла.
Содержание Назад Вперед