zoukankan      html  css  js  c++  java
  • 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<BUFF_LENGTH;i++) {
    27             ar<<dataBuf[i]; ------------------------------------------28         }
    29         ar.Close();
    30         fileSave.Close();
    31     }
    32   
    33     return TRUE;
    34 }

     

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

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

     

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

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

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

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

        ar.Close();

        fileSave.Close();

  • 相关阅读:
    13.App爬取相关库的安装(Charles,Mitmproxy,Appium)
    26.pymysql、pymongo、redis-py安装
    25.安装配置phantomjs
    2.博客随笔加密!!!
    17.scrapy-splash安装-2
    17.docker及scrapy-splash安装-1
    16.Mongodb安装
    scrapy--BeautifulSoup
    scrapy--selenium
    python--随笔一
  • 原文地址:https://www.cnblogs.com/quantumplan/p/3702061.html
Copyright © 2011-2022 走看看