以前、Fileを使った、ファイルの一気読み、一気書きをかいたけど、今度は、CFileを使った場合の、ファイルの一気読み、一気書き。
■一気読み
こんなかんじ。
CFile f; CString writeData=""; if ( f.Open("test.txt",CFile::modeRead) == TRUE) { unsigned int flen = (unsigned int)f.GetLength(); unsigned char *data = (unsigned char *)malloc(flen+1); if ( data != NULL ) { f.Read(data,flen); data[flen] = 0; writeData = data; free(data); f.Close(); } } |
(上記< > ¥は、本当は半角です)
前提条件として
・"test.txt"というファイルを読み込む
・結果はwriteDataにセット
・開発環境はVC++.net
■一気書き
こんなかんじ。
CFile f; CString writeData="abcdefg"; if ( f.Open("test.txt",CFile::modeCreate | CFile::modeWrite) == TRUE) { f.Write(writeData.GetBuffer(),writeData.GetLength()); f.Close(); } |
(上記< > ¥は、本当は半角です)
前提条件として
・"test.txt"というファイルに書き込む
・書き込み内容はwriteDataにセット
・開発環境はVC++.net
■VC++.netでない場合
VC++.netでない場合、CString::GetBuffer()に引数が必要になります。
(引数=バッファの長さ)