Сохранение и восстановление документа на диске
Сохранение и восстановление документа на диске
Построенное вами приложение можно использовать для рисования и печати документов, но оно не позволяет сохранять и загружать документ из файла на диске. Вы можете выбрать строку Save As (сохранить под именем) из меню File. На экране появится диалоговая панель Save As. В этой панели вы можете ввести имя файла, в котором надо сохранить документ. Однако несмотря на то, что файл создается, документ в него не записывается – файл остается пустым.
Вы можете попытаться его открыть, выбрав из меню File строку Open. Однако единственным результатом будет изменение заголовка окна. Чтобы приложение обрело возможность сохранения документов в файле и последующего чтения, надо изменить метод Serialize класса документа CSingleDoc.
Метод Serialize вызывается всякий раз когда надо сохранить документ в файле на диске или загрузить его из существующего файла. В частности, метод Serialize вызывается, когда пользователь выбирает из меню File строки Save, Save As и Open. Основные принципы работы метода Serialize были рассмотрены нами в разделе “Запись и восстановление объектов”.
MFC AppWizard подготавливает шаблон метода Serialize для класса CSingleDoc, представляющего документ приложения.
//////////////////////////////////////////////////////////////
// Метод Serialize класса CSingleDoc отвечает за сохранение и
// последующее восстановление документов приложения
void CSingleDoc::Serialize(CArchive& ar) {
if (ar.IsStoring()) {
// TODO: Здесь выполняется сохранение документа
} else {
// TODO: Здесь выполняется загрузка документа
}
}
Вы должны определить в методе Serialize, как он должен сохранять и восстанавливать документы приложения. Так как документ, с которым работает наше приложение представлен классом CSingleDoc, то все что должен делать метод Serialize – это сохранять все элементы массива arrayFig.
//////////////////////////////////////////////////////////////
// Метод Serialize класса CSingleDoc
void CSingleDoc::Serialize(CArchive& ar) {
int i; // временная переменная
int num; // количество фигур в документе
// Сохранение документа
if (ar.IsStoring()) {
// Определяем количество элементов массива arrayFig
num = arrayFig.GetSize();
// Записываем полученное число в файл
ar << num;
// Записываем в файл координаты и тип фигур
for (i=0; i<num; i++) {
// Сохраняем координаты центра фигуры
ar << arrayFig[i].xyFigCenter;
// Сохраняем тип фигуры
ar << arrayFig[i].cType;
}
}
// Загрузка документа
else {
// Считываем количество элементов, составляющих документ
ar >> num;
// Восстанавливаем документ
for (i=0; i<num; i++) {
CFigure OneFigure; // описание одной фигуры
// Считываем координаты центра фигуры
ar >> OneFigure.xyFigCenter;
// Считываем тип фигуры
ar >> OneFigure.cType;
// Добавляем описание очередной фигуры в документ
arrayFig.Add(OneFigure);
}
}
}
Метод Serialize имеет единственный параметр ar, представляющий ссылку на объект класса CArchive. Этот объект, называемый архивом, представляет файл документа, расположенный на диске. Кроме того, архив несет в себе информацию о том, что делать с документом – записать его в файл или загрузить из файла.
После вызова, метод Serialize определяет, какую операцию надо выполнить – сохранить документ в файле или загрузить его из файла. Для этого используется метод IsStoring, определенный в классе CArchive. Если метод IsStoring возвращает ненулевое значение для объекта ar, переданного методу Serialize, значит надо сохранить документ в файле.
Чтобы сохранить все элементы массива, мы определяем количество элементов в нем с помощью метода GetSize. Этот метод определен в шаблоне CArray и возвращает количество элементов массива.
Мы сохраняем количество элементов массива в файле, представленном архивом ar. Это значение поможет нам при восстановлении документа с файла на диске. Затем в цикле в файл записываются все элементы массива arrayFig.
Загрузка документа из файла выполняется в том же порядке. Сначала из файла документа, представленного архивом ar считывается значение, определяющее количество фигур в документе. Потом из файла считываются по очереди все элементы документа. При этом они сразу заносятся в массив arrayFig, представляющий документ. Для этого используется метод Add шаблона CArray.
После того, как вы внесете изменения в метод Serialize, постройте проект. Запустите полученное приложение. Теперь вы сможете записать документ в файл на диске, а затем загрузить его снова.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Сохранение веб-документа
Сохранение веб-документа По мере работы над документом рекомендуется периодически сохранять вносимые в него изменения. Это позволит избежать потери данных при возникновении нештатной ситуации (программный или аппаратный сбой, внезапное отключение электроэнергии, и
Сохранение веб-страниц на диске
Сохранение веб-страниц на диске Как и любые другие файлы, веб-страницы можно сохранять на жестком диске, чтобы при необходимости обращаться к ним, не подключаясь к Сети. Для сохранения веб-документа нажмите кнопку Страница и выполните команду Сохранить как. В открывшемся
Сохранение и восстановление настроек
Сохранение и восстановление настроек Изучив все описанное выше, вы теперь можете изменять интерфейс и параметры системы, удобно подстраивая их под свои потребности или специфические задачи. Однако очень часто возникают различные неприятные ситуации, связанные с
Сохранение веб-страниц на диске
Сохранение веб-страниц на диске Как и любые другие файлы, веб-страницы можно сохранять на жестком диске, чтобы обращаться к ним, не подключаясь к Сети. Для сохранения веб-документа нажмите кнопку Страница и выберите команду Сохранить как. В открывшемся окне укажите папку,
Сохранение документа
Сохранение документа Первая и главнейшая операция при работе с документом – это его сохранение. Читатели, имеющие значительный опыт работы с компьютерами, знают, как неприятно потерять полчаса или час работы из-за сбоя питания компьютера или «зависания» программы.К
Сохранение документа
Сохранение документа При работе в Word очень важно постоянно сохранять документы. Набрать и отредактировать текст – это полдела, главное – сохранить вашу работу. Пока документ не сохранен, вся информация, которую вы видите на экране, находится в памяти компьютера и
Сохранение документа
Сохранение документа Во время работы с документом нам необходимо будет сохранять его. Сделать это можно несколькими способами. В меню File (Файл) существует четыре команды сохранения документа:• Save (Сохранить) – текущий документ сохраняется в том же формате и под тем же
Сохранение текущего документа
Сохранение текущего документа Для сохранения текущего документа в состав меню Кнопки «Office» включены команды Сохранить, которая активизируется также нажатием Shift+F12, и Сохранить как.Команду Сохранить применяют, как правило, для сохранения изменений в текущем документе
Сохранение документа
Сохранение документа После работы с документом его следует сохранить на жестком диске или ином носителе.Чтобы сохранить документ, нужно нажать Кнопку «Office» и в появившемся меню выполнить команду Сохранить как. В открывшемся диалоговом окне Сохранение документа (рис. 1.17)
Сохранение и восстановление состояния объекта
Сохранение и восстановление состояния объекта В классе CObject определены метод IsSerializable и виртуальный метод Serialize, которые используются для сохранения и восстановления состояния объектов в файлах на диске. Чтобы объекты класса можно было сохранять в файлах на диске с
Открытие, сохранение документа
Открытие, сохранение документа Сохранение документа происходит на панели инструментов интерактивного режима:1. Выбрать инструмент Меню InterWrite (см. табл. П3.2), пункт меню Файл, подпункт Сохранить.2. В появившемся окне выбрать диск, папку, указать имя файла.3. Подтвердить все
Открытие, сохранение документа
Открытие, сохранение документа Сохранение документа происходит на Основной панели инструментов:1. Выбрать инструмент Главное меню (см. табл. П4.3), пункт меню Флипчарт, подпункт Сохранить в, указать папку (Мои флипчарты…; Общие флипчарты… или другую папку).2. В появившемся
Сохранение и восстановление файлов реестра
Сохранение и восстановление файлов реестра Никогда не забывайте о том, что от состояния реестра зависит работоспособность операционной системы. Очень часто работоспособность реестра ставится под угрозу разнообразными программами, написанными без соблюдения
Сохранение документа
Сохранение документа После того как текст набран и отредактирован, его нужно сохранить в виде файла на жестком диске. Для этого нажмите Кнопку «Office» и выполните команду Сохранить илищелкните на кнопке Сохранить, которая расположена на панели быстрого доступа. Если
Сохранение документа
Сохранение документа Чтобы потом было понятно, что это за документик лежит в нашей папке, давайте напишем прямо на пустом поле текст, например «Мой первый документ», и сразу же сохраним документ, чтобы в случае непредвиденных обстоятельств не искать, где его сохранил сам