「MFC ファイルを読む」の版間の差分
ナビゲーションに移動
検索に移動
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
| − | ==MFC ファイルを読む== | + | ==[[MFC ファイルを読む]]== |
| − | [[VC++]][[MFC ファイルを選択]] | + | [[VC++]] | [[MFC ファイルを選択]] | [[Category:MFC]] |
*[http://msdn.microsoft.com/ja-jp/library/a499td6y%28VS.80%29.aspx CStdioFile] | *[http://msdn.microsoft.com/ja-jp/library/a499td6y%28VS.80%29.aspx CStdioFile] | ||
===ファイルを1行単位で読み込む=== | ===ファイルを1行単位で読み込む=== | ||
| − | [[MFC ファイルを選択 | + | [[MFC ファイルを選択|こちら]]で作成したダイアログのOKボタンで、指定したファイルを行ごとに読み込みデバッグ出力を行う。 |
[[File:0777_mfc_file_05.jpg]] | [[File:0777_mfc_file_05.jpg]] | ||
| 19行目: | 19行目: | ||
CString line; | CString line; | ||
| − | if (file.Open(fileName, CFile:: | + | if (file.Open(fileName, CFile::mode[[R]]ead)) { |
| − | while(file. | + | while(file.[[R]]eadString(line)) { |
| − | + | T[[R]]ACE( line + _T("\n") ); | |
} | } | ||
| 29行目: | 29行目: | ||
} | } | ||
| − | ===CStdioFile | + | ===CStdioFile を利用して[[文字コード]]を指定してファイルを読む=== |
*Visual C++ 2005 以降で利用可能 | *Visual C++ 2005 以降で利用可能 | ||
====fopen==== | ====fopen==== | ||
C ランタイム関数 fopen の呼び出しで返すファイル ポインタを指定をCStdioFileに指定する | C ランタイム関数 fopen の呼び出しで返すファイル ポインタを指定をCStdioFileに指定する | ||
CStdioFile file(_tfopen(_T("C:\\test.txt"), _T("r, ccs=UTF-8"))); | CStdioFile file(_tfopen(_T("C:\\test.txt"), _T("r, ccs=UTF-8"))); | ||
| − | while (file. | + | while (file.[[R]]eadString(line)) { |
AfxMessageBox(line); | AfxMessageBox(line); | ||
} | } | ||
file.Close(); | file.Close(); | ||
=====ccs=ENCODING ===== | =====ccs=ENCODING ===== | ||
| − | ファイルに使用するコード化された文字セット (UTF-8、UTF-16LE、または UNICODE) を指定します。何も指定しない場合は、ANSI | + | ファイルに使用するコード化された文字セット (UTF-8、UTF-16LE、または UNICODE) を指定します。何も指定しない場合は、ANSI [[エンコーディング]]が使用されます。このオプションは Visual C++ 2005 以降で使用できます。 |
2020年2月16日 (日) 04:29時点における最新版
目次
MFC ファイルを読む
VC++ | MFC ファイルを選択 |
ファイルを1行単位で読み込む
こちらで作成したダイアログのOKボタンで、指定したファイルを行ごとに読み込みデバッグ出力を行う。
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(_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 以降で使用できます。
© 2006 矢木浩人
