[MFC] 에디트박스의 내용을 파일로 저장하려고 하는데요...
void CTermDlg::OnFileopen() // 파일을 불러올때
{
CFile file("test.txt",CFile::modeReadWrite);
CArchive ar(&file,CArchive::load);
Serialize(ar);
ar.Close();
file.Close();
SetDlgItemText(IDC_E_Code,filedata); //IDC_E_Code : 에디트박스
}
void CTermDlg::OnBFsave() //파일을 저장할때
{
CFile file("test.txt",CFile::modeWrite|CFile::modeCreate);
CArchive ar(&file,CArchive::store);
GetDlgItemText(IDC_E_Code,filedata);
Serialize(ar);
ar.Close();
file.Close();
}
대충 코드는 이런식으로 짯구요 Serialize함수도 따로 만들었습니다.
실행해 보니 세이브랑 로드랑 둘다 잘 되긴 하는데...
저장 된 test.txt파일을 메모장으로 열어보면 항상 제일 첫번째 문자가 이상한 특수문자가 들어가 있네요;
(제가 짠 프로그램에서 파일을 열었을때는 그 특수문자가 안보입니다 -_-)
첫번째 특수문자를 지우고 파일을 저장한다음 그파일을 위의 프로그램으로 열려고 하면
"이름없는 파일의 끝을 지나서 엑세스 하려고하였습니다." 라는 오류메세지가 뜨면서 열리지가 않네요...
http://www.devipa.com 검색
http://www.devipa.com
검색하면 나옵니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
Serialize 함수를 봐야 알겠지만...
보통 시지얼라이즈 함수에서...
ar }} CString, ar {{ CString을 하셨다면
CString 쓰기전에 몇 바이트를 더 넣어놓습니다.
그래야 이게 어떤 Object가 Serialize되는지 알수 있기때문입니다.
그래서 보통 Text Buffer를 다룰때는...
ar.Read, ar.Write 이런 함수를 사용합니다.
댓글 달기