- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!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 以降で使用できます。