.h文件如下:

#pragma once
class CMyData : public CObject
{
public:
CPoint pt;
int m_iData;
char buff[10];
public:
DECLARE_SERIAL(CMyData)//必須聲明此宏
CMyData(){}
CMyData(int nData, CPoint pt1)
{
m_iData = nData;
pt = pt1;
}
virtual void Serialize(CArchive& ar);
};.cpp文件內(nèi)容如下:
#include "stdafx.h"
#include "mytest.h"
IMPLEMENT_SERIAL(CMyData, CObject, 1)//必須包含此宏
void CMyData::Serialize(CArchive& ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
{
ar << pt << m_iData;
ar.Write(buff[i],10);
}
else
{
ar >> pt >> m_iData;
ar.Read(buff[i],10);
}
}在調(diào)用ar.WriteString后,需再用此方法寫入:ar.WriteString(_T("\n"));
調(diào)用方法如下:
//寫入內(nèi)容
CMyData d(12,CPoint(1,8));
CFile file(_T("1.txt"), CFile::modeCreate | CFile::modeWrite);
//串行化,存儲
CArchive ar(&file, CArchive::store);
ar.WriteCount(1); //寫入對象個數(shù)
ar.WriteObject(&d);//寫入對象
ar.Close();
file.Close();
//讀取內(nèi)容
CFile mFile;
if (mFile.Open(_T("1.txt"), CFile::modeRead) == 0)
return 0;
char buf[512];
CArchive ar(&mFile, CArchive::load);
unsigned long length = ar.ReadCount();//按寫入順序,讀取存儲的數(shù)據(jù)單元個數(shù)
CMyData * pData;
for (int i = 0; i < length; i++)
{
//讀取一個類信息,同時指針移動到下一個類信息開始
pData = (CMyData *)ar.ReadObject(RUNTIME_CLASS(CMyData));
cout << pData->m_iData << endl;
cout <<"x="<< pData->pt.x << " y=" << pData->pt.y << endl;
}
ar.Close();
mFile.Close();另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:在MFC中將類串行化存儲-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://chinadenli.net/article40/pioeo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、品牌網(wǎng)站設計、App開發(fā)、電子商務、動態(tài)網(wǎng)站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容