C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 132 - Знакомимся CStdioFile / MFC шаг за шагом / Visual C++

Шаг 132 - Знакомимся CStdioFile

Еще один класс порожденный от CFile. Этот класс позволяет пользоваться стандартными стредствами C,C++ для ввода/вывода. При использовании этого класса важно понятие открытия и закрытия файла, как и при обычном открытии файла в C в отличии от расмотренного ранее CMemFile.

Давайте создадим приложение AppWizard на основе диалогового окна и поставим кнопку с кодом. Как делали в прошлые разы.

void CTestStdioDlg::OnButton1() 
{
 CStdioFile File("c:\\windows\\Wordpad.ini",CFile::modeRead);
 CString str;
 File.ReadString(str);
 AfxMessageBox(str);
 File.Close();  
}
Любой класс начинается с конструктора. Вот какие конструкторы у этого класса.
CStdioFile( );
CStdioFile( FILE* pOpenStream );
CStdioFile( LPCTSTR lpszFileName, UINT nOpenFlags );
throw( CFileException );
При укзании имени файла производится его открытие. Открытие может быть в текстовом и бинарном формате. Текстовый режим реализует стандартную обработку возврата коретки при чтении данных. Конец строки работает интересно. Вот так.
  Посылаем конец стоки 0хА в файл пишется 0хА 0хD
  Читаем из файла конец строки 0хА 0хD, читается из файла 0хA 
Как видно из конструктора при невозможности операции с файлом появится исключение. Сделайте вот так.
void CTestStdioDlg::OnButton1() 
{
 CStdioFile File("c:\\windows\\NotFile.not",CFile::modeRead);
 CString str;
 File.ReadString(str);
 AfxMessageBox(str);
 File.Close();  
}
И вы получите исключение такого вида.

132.gif (2611 b)

красивое сообщение, но его неполохо бы обработать хоть просто, вот например так хотя и не совсем корректно, потому что будут отлавливаться все типы исключений.

void CTestStdioDlg::OnButton1() 
{
	try
	{
		CStdioFile File("c:\\windows\\NotFile.not",CFile::modeRead);
		CString str;
		File.ReadString(str);
		AfxMessageBox(str);
		File.Close(); 
	}
	catch(...)
	{
		AfxMessageBox("Error Open");
	}
}

К классу CFile есть ряд дополнительных функций:

ReadString    читает строку текста
WriteString   записывает строку текста

И указатель на открытый файл:

m_pStream 

Загрузить проект | | |
Автор Каев Артем.
[AD]