Ввод/вывод записей при работе с файлами с использованием MFC (Лабораторная работа № 19 по VisualC++ 2005)

Страницы работы

Содержание работы

Лабораторная работа №19 по VisualC++ 2005

"Ввод/вывод записей при работе с файлами с использованием MFC"

Составил доц. Авраменко В.В.

1 Постановка задачи

          Необходимо создать две диалоговые программы для обработки записей. В первой из них предусмотреть инициализацию четырех строк длиной не более 80 символов. В диалоговом окне разместить помимо OK и Cancel две кнопки: «Занесення в файл» и «Виведення із файлу». Кроме того, разместить одно текстовое окно и один список. При нажатии первой кнопки в текстовом окне должно появиться сообщение «Занесення відбулося». Нажатие второй кнопки должно привести к появлению в окне списка четырех строк после их прочтения из файла.

          Во второй программе вместо инициализации предусмотреть  сначала занесение отдельной строки символов в текстовое окно, а затем её запись в файл путем нажатия кнопки «Занесення в файл». Количество записываемых  строк предварительно заносить в специально предназначенное для этого текстовое окно. При записи в файл предусмотреть вывод в другое текстовое окно номера записи.

          При нажатии кнопки «Виведення із файлу» все записи должны быть выведены в окно списка.

2 Последовательность действий при создании первой программы

1)  Start Page. Create:Project.
Выбрать тип проекта (Project Types) MFC, шаблон- MFC Application,
Name-rabfile1.

2)   В окне Application Type выбрать Dialog based. Снять флажок Use Unicode Libraries. Щёлкнуть на Finish.

3)  Выбрать вкладку Resource View (Просмотр ресурсов). Раскрыть папку Dialog . Дважды щелкнуть на IDD_RABFILE1_DIALOG. Появится диалоговое окно. Вытереть в нем текст TODO…….

4)  Для вывода только одного сообщения достаточно использовать  текстовое окно. Однако для вывода четырех строк требуется уже окно списка. Поэтому в диалоговом окне из Toolbox следует разместить управляющие элементы: текстовое окно (ab| Edit Control), окно списка (List Box ) и две кнопки («Занесення в файл» и «Виведення із файлу»).

5)  В класс Crabfile1Dlg добавить элементы данных, соответствующие списку и текстовому окну. Как обычно, надо в диалоговом окне выделить окно списка, вызвать контекстное меню, выбрать в нем Add Variable. В появившемся окне установить доступ private, тип по умолчанию- CListBox, имя дать m_list1. Для текстового окна ввести private  CEdit m_edit1.

6)  Кроме указанных в класс Crabfile1Dlg нужно ещё добавить элементы данных:

char OutString[4][80] (строки, заносимые в файл) и char InString[80] (строка, в которую будет последовательно осуществляться считывание из файла). Эти массивы не являются управляющими элементами. Поэтому их добавление осуществляется как обычно: во вкладке ClassView выделяется Crabfile1Dlg, вызывается контекстное меню, а в нем- Add/ Add Variable. Размерность массивов задавать в окошке Variable type, например, char[4][80]. Доступ к этим массивам- private.

7) Инициализация данных диалогового окна выполняется в методе OnInitDialog() класса Crabfile1Dlg. После занесения  в массив OutString четырех произвольных символьных строк фрагмент этого метода имеет вид

BOOL Crabfile1Dlg::OnInitDialog()

{

    CDialog::OnInitDialog();

    strcpy_s(OutString[0],"Тихо було за столом.");

    strcpy_s(OutString[1],"Гості марно намагалися проковтнути все і відразу. ");

    strcpy_s(OutString[2],"Інколи чути було якесь булькотіння.");

    strcpy_s(OutString[3],"У вікна заглядали знервовані коти.");

    // Add "About..." menu item to system menu.

…………………………………………………………………………………………………………………………………………..

……………………………………………………………………………………………………………………………

    // IDM_ABOUTBOX must be in the system command range

}

    return TRUE;  // return TRUE  unless you set the focus to a control

}

    Следует обратить внимание, что для копирования строк символов используется более современная функция strcpy_s()хотя допускается применение и strcpy().

    А ещё нужно вспомнить о том, что строки списка по умолчанию сортируются в алфавитном порядке.Чтобы выводимые из файла записи размещались в окне списка в той же последовательности, в какой заносились, сортировку следует отключить. Для этого надо выделить окно списка,вызвать контекстное меню, выбрать команду properties, перейти на вкладку Sort и в открывшемся окне вместо true установить false.

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
73 Kb
Скачали:
0