티스토리 뷰
CStdioFile
텍스트 파일을 읽고 쓸 수 있도록 CStdioFile::ReadString(), CStdioWriteString() 제공
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
void CMFCApplication4View::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CStdioFile file1;
CFileException e;
if (!file1.Open(L"test1.txt", CFile::modeRead, &e)) {
e.ReportError();
return;
}
CStdioFile file2;
if (!file2.Open(L"test2.txt", CFile::modeWrite | CFile::modeCreate, &e)) {
e.ReportError();
return;
}
CString str;
while (file1.ReadString(str)) {
str.MakeUpper(); // 대문자로 만든다
file2.WriteString(str + L"\n");
}
CView::OnLButtonDblClk(nFlags, point);
} |
cs |
test1.txt 파일을 프로젝트 소스파일이 있는곳이나 실행 파일이 있는곳에 있어야 한다.
기존 파일내용 끝에 추가하려면 CStdioFile::modeNoTruncate, SeekToEnd() 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
CStdioFile StdFile;
CFileException e;
CString str파일명 = TEXT("d:\\LogData\\DataLog오류.txt");
if (!StdFile.Open(str파일명, CStdioFile::modeWrite | CStdioFile::modeNoTruncate))
{
GetDlgItem(IDC_STATIC_REALMSG)->SetWindowTextA(TEXT("MSG : DataLog 파일을 만들지 못했습니다."));
e.ReportError();
}
try
{
StdFile.SeekToEnd(); // 파일 포인터를 파일 끝으로 이동시키므로 다음행에 내용을 추가한다.
StdFile.WriteString(strLine); // ReadString
}
catch (CInvalidArgException* e)
{
e->ReportError();
e->Delete();
}
catch (LPCTSTR msg)
{
AfxMessageBox(msg);
}
StdFile.Close(); |
cs |