字型序列化儲存讀寫
在實際開發中,程式中經常需要用到儲存視窗大小、視窗位置、字型設定功能,以便程式在下次執行後,自動恢復上次的使用者的使用設定(比如視窗的大小、位置、字型等等),這樣做會給使用者帶來良好的軟體操作體驗,提高使用者的使用滿意度。
軟體配置的讀取,可以採用多種方法實現:資料庫、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...