QT序列化通過檔案訪問結構體資料

2021-10-08 07:58:10 字數 1592 閱讀 9016

結構體

struct data

;struct datalist

;// 序列化

inline qdatastream &

operator

<<

(qdatastream &o,

const datalist &d)

// 序列化

inline qdatastream &

operator

<<

(qdatastream &o,

const data &d)

// 反序列化

inline qdatastream &

operator

>>

(qdatastream &o,datalist &d)

// 反序列化

inline qdatastream &

operator

>>

(qdatastream &o,data &d)

將資料存入檔案

qfile *m_file =

newqfile

("./mydata.text");

void widget::

on_m_data2file_clicked

(bool

)else

qdebug()

<<

"open file error"

;}

從檔案取資料

void widget::

on_m_file2data_clicked

(bool

)else

qdebug()

<<

"open file error"

;}

輸出

「00001」 「test」 1 qdatetime(2020-07-20 19:28:05.080 中國標準時間 qt::timespec(localtime))

「00002」 「test2」 2 qdatetime(2020-02-02 20:20:20.000 中國標準時間 qt::timespec(localtime))

第二種寫法

void widget::

on_m_data2file_clicked

(bool

)else

qdebug()

<<

"open file error";}

void widget::

on_m_file2data_clicked

(bool

)for

(data d:list.groups)

qdebug()

<< d.a << d.b << d.c << d.d;

m_file-

>

close()

;}else

qdebug()

<<

"open file error";}

//這種方式會多出一組空的資料。。。待解決

qt序列化自定義物件 Qt序列化

class painting public painting painting const qstring title,const qstring artist,int year qstring title const private qstring mytitle qstring myartist...

通過類序列化至XML檔案

using system using system.collections.generic using system.linq using system.text using system.xml.serialization using system.io namespace hdmap.plugi...

檔案序列化

1 概念 將資料以二進位製流的方式依次寫入到檔案或者從檔案中讀取的過程 2 相關類 carchive類 完成具體的資料讀寫 可代替cfile類的read write函式 carchive cfile pfile,uint nmode,int nbufsize 4096,void lpbuf null...