Шаг 73 - Сохранение и восстановления данных.

Создание проекта

Работаем с проектом из прошлого шага.

Создаем код

У нас есть функция CPr1Doc::Serialize. Перепишем ее.

void CPr1Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_string; // сохранение
}
else
{
ar >> m_string; // восстановление
}
}

Описание

Эта функция будет всегда вызываться при открытии или сохранении файла. То есть, если Вы выбираете пункты меню File - > Open -> Save -> Save As... всегда вызывается эта функция.

73_1.gif (3813 b)

Для записи и чтения данных определены операторы << и >>. Эти операторы аналогичны потокам. Они определены как минимум для всех простых типов.

BYTE 
WORD
int
LONG
DWORD
float
double

Кроме того, многие классы поддерживают данные операторы. Например, CString. Но для каждого класса надо смотреть отдельно. Если Вы используете свои классы и хотите производить подобные операции за один заход, то Вам придется перегрузить данные операции для Вашего класса. Следует отметить, что Serialize позволяет иметь только последовательный доступ. Для более тонкой работы Вы можете использовать класс CFile. Но мы пока на этом остановимся.

Шпаргалка

Итак, класс документа обеспечивает Вас функцией Serialize, с помощью который Вы можете сохранять и восстанавливать данные. Для использования этой возможности Ваши данные должны поддерживать операции << и >>.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 01.01.2000 (обновлено 24.07.2001)