VC数据保存之使用CArchive写文件


CString strTemp;
    m_Tmp++;
    strTemp.Format("%d",m_Tmp);
    CTime time;    
    time = CTime::GetCurrentTime();
    CString date = time.Format("%Y-%m-%d %H:%M:%S %W-%A");
    CFile mFile;
    if(!mFile.Open("Test.txt",CFile::modeWrite))
    {
        mFile.Open("Test.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite | CFile::shareDenyNone);
        MessageBox("文件不存在,将创建!");
    }
    
    mFile.SeekToEnd();        
    CArchive ar(&mFile,CArchive::store);             
    ar.WriteString(strTemp);
    ar.WriteString("    ");
    ar.WriteString(date);
    ar.WriteString("\r\n");
    ar.Close();
    mFile.Close();

定义一个全局静态变量m_Tmp,并将初值赋为0.
static int m_Tmp=0;

原文出处:http://123304258.blog.163.com/blog/static/1235470201222595940811/


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CArchive是MFC(Microsoft Foundation Classes)中的一个类,用于在C++中进行序列化和反序列化操作。它提供了一种方便的方式来将对象的数据保存文件或者从文件中读取数据使用CArchive进行序列化和反序列化的步骤如下: 1. 创建一个CArchive对象,并指定要进行操作的文件和打开模式(读或)。 2. 使用CArchive对象的成员函数来读取或数据。可以使用<<和>>操作符来序列化和反序列化基本数据类型,也可以使用WriteObject和ReadObject函数来序列化和反序列化自定义的对象。 3. 关闭CArchive对象。 下面是一个简单的示例代码,演示了如何使用CArchive进行序列化和反序列化: ```cpp #include <afx.h> // 包含MFC头文件 class MyData { public: int value1; float value2; CString value3; // 序列化函数 void Serialize(CArchive& ar) { if (ar.IsStoring()) { ar << value1 << value2 << value3; } else { ar >> value1 >> value2 >> value3; } } }; int main() { // 创建一个CArchive对象,并指定要进行操作的文件和打开模式 CFile file(_T("data.dat"), CFile::modeCreate | CFile::modeReadWrite); CArchive ar(&file, CArchive::store); // 创建一个自定义对象 MyData data; data.value1 = 10; data.value2 = 3.14f; data.value3 = _T("Hello, CArchive!"); // 序列化对象到文件 data.Serialize(ar); // 关闭CArchive对象 ar.Close(); file.Close(); // 重新打开文件进行反序列化 file.Open(_T("data.dat"), CFile::modeRead); ar.SetFile(&file, CArchive::load); // 反序列化对象 MyData newData; newData.Serialize(ar); // 关闭CArchive对象 ar.Close(); file.Close(); // 输出反序列化后的数据 printf("value1: %d\n", newData.value1); printf("value2: %f\n", newData.value2); printf("value3: %s\n", newData.value3); return 0; } ``` 以上代码中,首先创建了一个CArchive对象ar,并指定了要进行操作的文件和打开模式。然后,创建了一个自定义的对象data,并调用其Serialize函数将数据序列化到CArchive对象中。接着,关闭CArchive对象和文件。然后,重新打开文件进行反序列化,创建一个新的对象newData,并调用其Serialize函数从CArchive对象中反序列化数据。最后,关闭CArchive对象和文件,并输出反序列化后的数据。 需要注意的是,CArchive类是MFC中的一个类,因此在使用CArchive之前,需要先包含MFC的头文件。另外,CArchive类的使用需要在MFC环境中进行,不能在纯C++环境中使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值