Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабор_работа №8 файлы.doc
Скачиваний:
7
Добавлен:
21.04.2015
Размер:
981.5 Кб
Скачать

2.2. Класс cStdioFile

Класс CStdioFile наследован от класса CFile. Для чтения и записи в текстовый файл класс CStdioFile включает два новых метода: ReadString() и WriteString().

Синтаксис записи этих операторов следующий:

LPTSTR ReadString(LPTSTR str); 

void WriteString(LPCTSTR str);

Первый метод позволяет прочитать из файла строку символов str, а второй метод – записать строку символов str в файл. Методы должны быть вызваны у объекта класса CStdioFile, с которым с помощью функции Open() должен быть связан конкретный физический файл.

Пример записи в файл.

CString Text = "string\nstring\nstring";

CStdioFile File("data.txt",CFile::modeCreate|CFile::modeWrite);

File.WriteString(Text);

File.Close();

Пример чтения из файла.

CStdioFile File(DlgOpen.GetPathName(),CFile::modeRead);

if (File!=NULL)

{CString s;

for (int i=0;i<5;i++)

{File.ReadString(s);

m_str+=s;

m_str+=CString("\r\n");

}

UpdateData(0); //вывод данных из переменной m_str в EditBox

}

else

AfxMessageBox("Ошибка открытия файла");

2.3. Класс cFileDialog для выбора файла.

Этот класс позволяет осуществлять выбор файла с помощью специальных диалогов, широко используемых в большинстве программных продуктов и для отображения файловой структуры каталогов дисковых накопителей информации.

Описание параметров, задаваемых при объявлении объекта класса CFileDialog:

CFileDialog (BOOL Dlg, LPCTSTR DefExt=NULL, LPCTSTR FileName = NULL, DWORD Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR Filter = NULL);

Параметры:

DlgTRUE, для создания диалога открытия файла с заголовком «Открыть», илиFALSEдля конструирования диалога сохранения файлов с заголовком «Сохранить как»;

DefExt– расширение файла по умолчанию. Если этот параметр принимает значениеNULL, то расширение к введенному пользователем имени файла не будет добавлено автоматически;

FileName– имя файла по умолчанию, которое будет помещено в поле набора имени файла. Если этот параметр имеет значениеNULL, то поле для ввода имени файла будет пустым при загрузке окна выбора файла;

Flags– комбинация одного или более флагов, которые позволяют изменить содержание конструируемого диалога открытия или сохранения файлов:

OFN_HIDEREADONLY– запрещает отображение файлов с атрибутом «только для чтения»;

OFN_OVERWRITEPROMPT– обеспечивает появление подсказки с вопросом о необходимости перезаписи файла, если файл с указанным пользователем именем уже существует в выбранной директории;

Filter– серия из пар строк, которая определяет фильтры для выбора разных типов файлов, отображаемых в диалоге.

Пример использования объекта класса CFileDialog.

char Filter []= "TextFile (*.txt),(*.doc) | *.txt; *.doc | All (*.*) | *.*||";

//определили фильтр для открытия файлов

CFileDialog fd(TRUE, ".txt", "ReadMe", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, Filter);

// объявление объекта класса CFileDialog для открытия файла

fd.DoModal();

// инициализация вызова диалога открытия файла

CFile f (fd.GetPathName(), CFile::modeWrite | CFile::modeCreate );

// открытие файла, выбранного пользователем, на запись

UpdateData(1);

// обмен данными между элементами EditBox и связанными с ними переменными

f.Write(m_1,m_1.GetLength() );// запись в файл

f.Close();// закрытие файла