Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Файловая обработка объектов класса 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().

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





Дата публикования: 2014-11-26; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...