字型序列化儲存讀寫

2021-06-19 09:17:00 字數 1419 閱讀 4098

字型序列化儲存讀寫

在實際開發中,程式中經常需要用到儲存視窗大小、視窗位置、字型設定功能,以便程式在下次執行後,自動恢復上次的使用者的使用設定(比如視窗的大小、位置、字型等等),這樣做會給使用者帶來良好的軟體操作體驗,提高使用者的使用滿意度。

軟體配置的讀取,可以採用多種方法實現:資料庫、ini檔案、登錄檔等都可以實現。不過,在vc開發中,使用mfc的序列化機制大概是所有方法中最方便、最好用的配置儲存方法了。因為使用序列化(serialize)後,你會有沒寫什麼**,程式開啟關閉後,配置自動讀取和儲存的感覺。

要使用儲存字型功能,首先從cobject繼承寫乙個字型讀寫類(cobfont),原始碼如下:

#ifndef mynotepad_obfont_h_

#define mynotepad_obfont_h_

#include class cobfont : public cobject

;#endif //mynotepad_obfont_h_

#include "cobfont.h"

cobfont::cobfont()

void cobfont::serialize(carchive &archive)

logfont cobfont::getlogfont() const

bool cobfont::setlogfont(cfont *pfont)

return true;

}#ifdef _debug

void cobfont::dump( cdumpcontext& dumpsite ) const

void cobfont::assertvalid() const

#endif //_debug

implement_serial(cobfont, cobject, 0)

好了,字型讀寫類的**不到100行。完成了自動建立預設字型、讀寫字型、序列化讀寫到磁碟等功能。

//讀取

cobfont *myobfont;

cfile file;

if (file.open("mynotepad.dat", cfile::moderead))   

else

logfont lf;

lf=myobfont->getlogfont();  //得到字型

//儲存到磁碟

cfont *pfont;

cobfont *myobfont;

pfont=***obj.getfont();

myobfont->setlogfont(pfont);

cfile file;

if (file.open("mynotepad.dat", cfile::modecreate | cfile::modewrite))

protobuf序列化儲存

之前做的乙個專案,為了提速,用到了序列化儲存。下面是乙個protobuf的使用示例。include person.pb.h include iostream include fstream include time.h pragma comment lib,libprotobuf.lib pragm...

python pickle序列化儲存

序列化儲存 序列化物件可以在磁碟上儲存物件,並在需要的時候讀取出來。任何物件都可以執行序列化操作,字典物件也不例外。def storetree inputtree,filename import pickle fw open filename,w pickle.dump inputtree,fw f...

python pickle序列化儲存

在程式執行過程中所有的變數都是存在記憶體中,一旦程式關閉或者電腦關機,記憶體中的所有資料都會丟失。為了能夠繼續使用,我們需要將資料存放在硬碟裡。我們把變數從記憶體中變成可儲存或傳輸的過程稱之為序列化,在python中叫pickling,在其他語言中也被稱之為serialization,marshal...