Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Сериализация – это процесс сохранения и загрузки данных с диска. В 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().
Скомпилировать, запустить и протестировать приложение.
Дата публикования: 2014-11-26; Прочитано: 253 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!