飞鸽传书 二进制文件 MFC CArchive 实现保存

来源:互联网 发布:使用淘宝用户调查 编辑:程序博客网 时间:2024/05/29 13:57


来源:飞鸽传书二进制文件 MFC CArchive 实现保存

飞鸽传书 一直在在不断发展不断更新,当然 MFC CArchive 实现保存到二进制文件是必不可少的。先看一下效果图

 


1 BOOL Save2File() 2 { 3     BOOL bOpenFileDialog = FALSE;  ---------------------------------- ① 4     BOOL bVistaStyle = FALSE;                   // no VistaStyle 5     TCHAR BASED_CODE szFilter[] =    -------------------------------- ② 6         _T("二进制文件(*.dat)|*.dat|") 7         _T("All Files (*.*)|*.*||"); 8     CString path_and_fileName; 9 10     CFileDialog fdlg(bOpenFileDialog, _T("dat"), _T("*.dat"), ------- ③11             OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, NULL, 0,12             bVistaStyle);13     if (IDOK == fdlg.DoModal()) {14         CFile fileSave;15         CFileException ex;16 17         path_and_fileName = fdlg.GetPathName();18         if (!fileSave.Open(path_and_fileName, CFile::modeCreate | 19                 CFile::modeWrite | CFile::typeBinary, &ex)) {    ------④20             TCHAR szError[1024];21             ex.GetErrorMessage(szError, 1024);22             MessageBox(NULL, szError, _T("提示"), MB_OK);23             return FALSE;24         }25         CArchive ar(&fileSave, CArchive::store); ---------------------⑤        26         for (int i=0;i<<databuf;="" ------------------------------------------⑥28="" }29="" ar.close();30="" filesave.close();31="" }32="" 33="" return="" true;34="" }[="" size][attachimg]18[="" attachimg]


①bOpenFileDialog为FALSE,弹出对话框为File save as,若为TRUE,弹出对话框为File Open;

②文件类型过滤字符串,这个仅仅是在保存的文件类型里面可选的内容,文件过滤要在第③项里面设置;

 

③_T("dat"), _T("*.dat")这两个字符串设置文件过滤类型跟默认文件名,这个过滤是在选择的时候只显示过滤的文件。

④CFile::typeBinary设置允许二进制方式打开文件;

⑤根据打开的文件创建串行化对象,将ar与fileSave关联,并设置CArchive::store

⑥直接写入ar就是二进制方式对文件的写入ar<<databuf,之后注意关闭:[ size][="" align]

" ar.close();[="" filesave.close();[="" align]

0 0
原创粉丝点击