程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 利用序列化進行文件讀寫

利用序列化進行文件讀寫

編輯:關於C語言

 

在很多應用中我們需要對數據進行保存,或是從介質上讀取數據,這就涉及到文件的操作。我們可以利用各種文件存取方法完成這些工作,但MFC中也提供了一種讀寫文件的簡單方法——“序列化”。序列化機制通過更高層次的接口功能向開發者提供了更利於使用和透明於字節流的文件操縱方法,舉一個例來講你可以將一個字串寫入文件而不需要理會具體長度,讀出時也是一樣。你甚至可以對字符串數組進行操作。在MFC提供的可自動分配內存的類的支持下你可以更輕松的讀/寫數據。你也可以根據需要編寫你自己的具有序列化功能的類。

序列化在最低的層次上應該被需要序列化的類支持,也就是說如果你需要對一個類進行序列化,那麼這個類必須支持序列化。當通過序列化進行文件讀寫時你只需要該類的序列化函數就可以了。

怎樣使類具有序列化功能呢?你需要以下的工作:

  • 該類從CObject派生。
  • 在類聲明中包括DECLARE_SERIAL宏定義。
  • 提供一個缺省的構造函數。
  • 在類中實現Serialze函數
  • 使用IMPLEMENT_SERIAL指明類名和版本號

下面的代碼建立了一個簡單身份證記錄的類,同時也能夠支持序列化。

in H
struct strPID
{
         char szName[10];
         char szID[16];
         struct strPID* pNext;
};
class CAllPID : public CObject
{
public:
         DECLARE_SERIAL(CAllPID)
         CAllPID();
         ~CAllPID();
         
public:// 序列化相關      
         struct strPID* pHead;
         //其他的成員函數
         void Serialize(CArchive& ar);
};
 
in CPP

							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved