• MFC学习笔记6 CArchive使用和文档类Serialize函数


    一。CArchive

    新建两个菜单项,创建write和read消息处理函数

     1 //写文件
     2 void CMainFrame::OnCarchiveWrite()
     3 {
      
     4     // TODO: 在此添加命令处理程序代码
     5     CFile file;
     6     bool is_ok=file.Open(TEXT("./demo.txt"), CFile::modeCreate | CFile::modeWrite);
     7     if(!is_ok)
     8     {
     9         return;
    10     }
    11     //和CArchive管理
    12     //CArchive对象是数据流,文件和CArchive绑定在一起。
    13     //store 存储,写
    14     CArchive ar(&file, CArchive::store);
    15     //和cout一样
    16     int a = 10;
    17     CString str = TEXT("abc");
    18     TCHAR ch = 't';
    19     //数据流向ar,ar指向文件
    20     ar << a << str << ch;
    21     ar.Close();//断开数据流与文件关联
    22     file.Close();//关闭文件
    23 }
    24 
    25 //读文件
    26 void CMainFrame::OnCarchiveRead()
    27 {
    28     // TODO: 在此添加命令处理程序代码
    29     CFile file;
    30     bool is_ok = file.Open(TEXT("./demo.txt"), CFile::modeRead);
    31     if (!is_ok)
    32     {
    33         return;
    34     }
    35     //和CArchive管理
    36     //CArchive对象是数据流,文件和CArchive绑定在一起。
    37     //load加载,读
    38     CArchive ar(&file, CArchive::load);
    39     int a ;
    40     CString str;
    41     TCHAR ch;
    42     //数据流向变量
    43     ar >> a >> str >> ch;
    44     ar.Close();//断开数据流与文件关联
    45     file.Close();//关闭文件
    46 }

    二。文档类Serialize函数

    void CMFCApplication6Doc::Serialize(CArchive& ar)

    在点击保存和打开时会调取此处的代码

     1 void CMFCApplication6Doc::Serialize(CArchive& ar)
     2 {
     3     if (ar.IsStoring())
     4     {
     5         // TODO:  在此添加存储代码
     6         CString str = TEXT("1111");
     7         int a = 250;
     8         ar << str << a;
     9     }
    10     else
    11     {
    12         // TODO:  在此添加加载代码
    13         CString str;
    14         int a;
    15         ar >> str >> a;
    16         CString buf;
    17         buf.Format(TEXT("%s,%d"), str, a);
    18         AfxMessageBox(buf);
    19     }
    20 }
  • 相关阅读:
    邻项交换排序
    [POJ 2559]Largest Rectangle in a Histogram 单调栈
    最大子序和 单调队列
    单调栈 总结
    计算中缀表达式
    [HYSBZ 2457] 双端队列
    数组的宽度 单调栈
    SVM从入门到精通
    CVPR2018_RotationNet: Joint Object Categorization and Pose Estimation Using Multiviews from Unsupervised Viewpoints
    比特币以及区块链入门
  • 原文地址:https://www.cnblogs.com/sclu/p/11573406.html
Copyright © 2020-2023  润新知