2008. 12. 20. 01:56

CFileDialog 파일을 읽거나 저장할때 파일창 띄우기

파일에 변수의 내용을 직렬화 해서 저장,읽어들이는  예제

CFileDialog dlg(
  TRUE(읽기)/FALSE(저장),
  기본확장자,
  기본파일명,
  열기모드->MSDN 참고,
  파일창 아래쪽에 나오는 필터링
)


파일을 열어 변수에 읽어들일때
 char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
 CFileDialog dlg(TRUE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
 if(IDOK == dlg.DoModal())
 {
  CString strPathName = dlg.GetPathName();
  CFile fp;
  CFileException e;
  if(!fp.Open(strPathName, CFile::modeRead, &e)) {
   e.ReportError();
   return;
  }

 CString str;
 CArchive ar(&fp, CArchive::load);
 ar >> str;
}

파일을 선택해서 저장할때
char szFilter[] = "PCMON (*.CFG) | All Files(*.*)|*.*||";
 CFileDialog dlg(FALSE, "cfg", "pcmon", OFN_HIDEREADONLY, szFilter);
 if(IDOK == dlg.DoModal())
 {
  CString strPathName = dlg.GetPathName();

  CFile fp;
  CFileException e;
  if(!fp.Open(strPathName,CFile::modeWrite|CFile::modeCreate, &e)) {
   e.ReportError();
   return;
  }

  CString str = _T("문자열");
  CArchive ar(&fp, CArchive::store);
  ar << str;
 }