Лекция: Файловая обработка объектов класса MFC

Сериализация – это процесс сохранения и загрузки данных с диска. В VC++ имеются встроенные средства управления файлами, обеспечивающие автоматизацию сериализации собственных типов данных. Созданное с помощью AppWizard приложения имеют встроенное меню File с командами New, Open, Save as.

Функции-обработчики команд меню File сначала открывают файл, а затем вызывают элемент-функцию Serialize() класса документа приложения. Эта функция и выполняет чтение и запись данных. Пример:

void Clab4_1Doc::Serialize (CArchive& ar)

{

if (ar.IsStoring()) // cохранение (запись на диск)

{// добавить код сохранения

ar<< DataObject;

}

else

{// добавить код загрузки

ar>> DataObject;

}

}

Функция принимает ссылку на объект класса CArchive. Класс CArchive осуществляет передачу документов в архив и обратно.

Функции базового ввода-вывода класса CArchive:

— UINT Read(void* lpBuf, UINT nMax); //чтение с диска

— void Write(const void* lpBuf, UINT nMax); //запись на диск

— операторы <<,>>. //операторы записи и чтения;

— Bool ReadString(CString& pString); //чтение строки

— Bool WriteString(CString& pString); //запись строки

— GetFile(); //статус

— IsLoading(); //проверка загрузки: не 0 — хорошо; 0 — плохо

— IsStoring(); //проверка сохранения: не 0 — хорошо; 0 — плохо

Элемент-функция IsStoring () класса CArchive возвращает true, если файл открыт на запись, и false, если файл открыт на чтение.

Функция Serialize () может записывать и читать с помощью операций вставки << и извлечения >> данные, имеющие базовые типы данных: int, float, double, BYTE, WORD, LONG, DWORD.

Итак, для сериализации объектов классов MFC необходимо выполнить следующие операции:

— Создание элементов-данных класса документа.

— Инициализация этих элементов-данных в функциях класса документа OnNewDocument () и в конструкторе.

— Организация отображения документа в функции OnDraw.

— Включение элементов-функций класса представления, обеспечивающих редактирование документа.

— Добавление кода функции Serialize ().

Цель работы — чтение и запись с диска стандартных объектов MFC; работа команд меню File (лаб. работа lab4_1 – [7, c.41]).

Для создания приложения необходимо выполнить следующие операции:

— добавление элементов-данных класса документа, которые будут записываться и читаться с диска;

— инициализация этих элементов-данных в функции OnNewDocument() класса документа и в конструкторе документа;

— ввод данных с клавиатуры, если это необходимо, например, в функции OnChar() для ввода символов строки;

— организация вывода документа (функция OnDraw());

— включение в класс вида функций редактирования;

— модернизация функции Serialize() т.е. включение операторов, обеспечивающих сохранение (Save) и загрузку (Open) данных, которые представляют собой содержание документа.

Для создания приложения lab4_1 выполнить этапы:

— создание проекта lab4_1 (SDI-приложение),

— добавление элемента — данного класса документа,

— инициализация элемента-данного в конструкторе

класса и в OnNewDocument(),

— ввод данных с клавиатуры,

— вывод текущего состояния документа,

— сообщение приложению об изменении данных,

— модификация функции Serialize().

Скомпилировать, запустить и протестировать приложение.

 

еще рефераты
Еще работы по информатике