トップ 一覧 ping 検索 ヘルプ RSS ログイン

MFC ファイルを読むの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!MFC ファイルを読む
[VC++][MFC ファイルを選択]{{category MFC}}

*[CStdioFile|http://msdn.microsoft.com/ja-jp/library/a499td6y%28VS.80%29.aspx]
!!ファイルを1行単位で読み込む
[[こちら|MFC ファイルを選択]]で作成したダイアログのOKボタンで、指定したファイルを行ごとに読み込みデバッグ出力を行う。

{{ref_image mfc_file_05.jpg}}

 void CTextSearchSampleDlg::OnBnClickedOk()
 {
     // TODO: ここにコントロール通知ハンドラ コードを追加します。
     //OnOK();
     CString fileName;
     // テキストボックスの値を、CStringにコピー
     m_src_file.GetWindowTextW(fileName);
 
     CStdioFile file;
     CString line;
 
     if (file.Open(fileName, CFile::modeRead)) {
         while(file.ReadString(line)) {
             
             TRACE( line + _T("\n") );    
 
         }
         file.Close();
     }
 }

!!CStdioFile を利用して文字コードを指定してファイルを読む
*Visual C++ 2005 以降で利用可能
!fopen
C ランタイム関数 fopen の呼び出しで返すファイル ポインタを指定をCStdioFileに指定する
 CStdioFile file(_tfopen(lpszPathName, _T("r, ccs=UTF-8")));
 CStdioFile file(_tfopen(_T("C:\\test.txt"), _T("r, ccs=UTF-8")));
 while (file.ReadString(line)) {
     AfxMessageBox(line);
 }
 file.Close();
::ccs=ENCODING 
ファイルに使用するコード化された文字セット (UTF-8、UTF-16LE、または UNICODE) を指定します。何も指定しない場合は、ANSI エンコーディングが使用されます。このオプションは Visual C++ 2005 以降で使用できます。