파일에 변수의 내용을 직렬화 해서 저장,읽어들이는 예제
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;
}
레퍼런스 : http://six605.tistory.com/187
■ CFileDialog 파일 열기/저장 대화상자
※ 공통 대화상자 클래스 존재의 이유
- 자주 사용되는 대화상자 UI를 MFC 에서 제공
※ 공통 대화상자의 종류
- CFileDialog
- CFontDialog
- CColorDialog
- CPageSeupDialog
- CPrintDialog
- CFineReplaceDialog
- COleDialog
1. CFileDialog
- 파일 열기/저장 대화상자
2. 생성자 함수 원형
CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL );
bOpenFileDialog |
TRUE:열기, FALSE: 다른 이름으로저장 |
|
lpszDefExt |
기본 확장자. |
|
lpszFileName |
대화상자가 처음 출력되었을 때 "파일 이름" Edit 컨트롤에 출력될 파일명 지정 |
|
dwFlags |
OFN_EXPLOPER |
윈도우 탐색기 스타일로 출력 |
OFN_ARROWMULTISELECT |
파일을 한번에 여러개 선택 가능 |
|
OFN_CREATEPROMPT |
존재하지 않는 파일명을 입력했을 경우 새로 생성하겠냐는 메시지 박스 출력 |
|
OFN_FILEMUSTEXIST |
존재하지 않는 파일명을 입력할 수 없도록 함 |
|
OFN_HIDEREADONLY |
읽기전용 파일은 출력하지 않음 |
|
OFN_LONGNAMES |
긴 파일 이름 포맷 지원 |
|
OFN_OVERWRITEPROMPT |
존재하는 파일명을 입력했을 경우 덮어쓰겠냐는 메시지 박스 출력 |
|
OFN_PATHMUSTEXIST |
이미 존재하는 디렉터리명만을 입력 |
|
lpszFilter |
대화상자에 출력될 파일들을 확장자에 의해서 걸러지도록 하기 위한 필터 지정 |
|
pParentWnd |
대화상자의 부모 윈도우 지정 |
※ lpszFilter 예) "EXE Files(*.exe)|*.exe|ALL FIles(*.*)|*.*||"
3. 멤버 함수
- CString GetPathName() 선택된 파일의 절대 경로
- CString GetFileName() 선택된 파일의 이름과 확장자
- CString GetFileExt() 선택된 파일의 확장자
- CString GetFileTitle() 선택된 파일의 파일명
- BOOL GetReadOnlyPref() 읽기 전용 여부
- POSITION GetStartPosition() 다중 선택에서 사용
- CString GetNextPathName() 다중 선택에서 사용
4. 사용 예
- 한개의 파일 선택
"Image (*.BMP, *.GIF, *.JPG) | *.BMP;*.GIF;*.JPG | All Files(*.*)|*.*||";
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
if(IDOK == dlg.DoModal())
{
CString strPathName = dlg.GetPathName();
}
'# IT, Computer Science > MFC, API' 카테고리의 다른 글
[MFC] 파일탐색 (0) | 2012.02.08 |
---|---|
MFC 다이얼로그 배경색 지정, 투명하게 만들기 (0) | 2011.04.30 |
MFC 에서 구조체 전역 변수로 사용하기 (0) | 2011.04.29 |
MFC 사용자 정의 메시지를 이용한 통신 (0) | 2011.04.10 |
[MFC] 인터넷 HTML 소스 다운로드 (0) | 2011.02.13 |