Библиотека MFC предоставляет собственную версию обработки файлов. Это делается с помощью класса CStdioFile. Класс CStdioFile является производным от CFile. Он может обрабатывать чтение и запись текстовых файлов Unicode, а также обычных многобайтовых текстовых файлов.
Вот список конструкторов, которые могут инициализировать объект CStdioFile —
CStdioFile(); CStdioFile(CAtlTransactionManager* pTM); CStdioFile(FILE* pOpenStream); CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags); CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM);
Вот список методов в CStdioFile —
Sr.No. | Имя и описание |
---|---|
1 |
открыто Перегруженные. Open предназначен для использования с конструктором CStdioFile по умолчанию (переопределяет CFile :: Open). |
2 |
ReadString Читает одну строку текста. |
3 |
Искать Позиционирует текущий указатель файла. |
4 |
WriteString Пишет одну строку текста. |
открыто
Перегруженные. Open предназначен для использования с конструктором CStdioFile по умолчанию (переопределяет CFile :: Open).
ReadString
Читает одну строку текста.
Искать
Позиционирует текущий указатель файла.
WriteString
Пишет одну строку текста.
Давайте снова рассмотрим простой пример, создав новое диалоговое приложение MFC.
Шаг 1 — Перетащите один элемент управления для редактирования и две кнопки, как показано на следующем снимке.
Шаг 2 — Добавьте значение переменной m_strEditCtrl для элемента управления редактирования.
Шаг 3 — Добавьте обработчик события нажатия для кнопок Открыть и Сохранить.
Шаг 4 — Вот реализация обработчиков событий.
void CMFCStandardIODlg::OnBnClickedButtonOpen() { // TODO: Add your control notification handler code here UpdateData(TRUE); CStdioFile file; file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeRead | CFile::typeText); file.ReadString(m_strEditCtrl); file.Close(); UpdateData(FALSE); } void CMFCStandardIODlg::OnBnClickedButtonSave() { // TODO: Add your control notification handler code here UpdateData(TRUE); CStdioFile file; if (m_strEditCtrl.GetLength() == 0) { AfxMessageBox(L"You must specify the text."); return; } file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText); file.WriteString(m_strEditCtrl); file.Close(); }
Шаг 5 — Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий вывод.
Шаг 6 — Напишите что-нибудь и нажмите Сохранить. Это сохранит данные в файл * .txt.
Шаг 7 — Если вы посмотрите на местоположение файла, вы увидите, что он содержит файл test.txt.
Шаг 8 — Теперь закройте приложение. Запустите одно и то же приложение. Когда вы нажимаете Открыть, тот же текст загружается снова.
Шаг 9 — Он начинается с открытия файла, чтения файла с последующим обновлением элемента управления редактирования.