91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++/Qt 序列化操作

發布時間:2020-06-10 23:49:41 來源:網絡 閱讀:2739 作者:844133395 欄目:開發技術

    序列化操作的含義顧名思義,即按一定的次序將數據保存到存儲設備中,或者從存儲設備中讀取一定次序的數據,且數據類型要保持一致(即讀出的數據是我知道的類型)。過程知道了,那怎么做呢?

我是借助Qt框架實現的一個簡單的程序。(當然框架把復雜的部分給實現了。如果在你封裝的數據中,意思是非Qt標準的數據類型,那么有必要實現"<<" 和 ">>" 運算子來實現自定義類型的序列化操作)。

具體的實現過程如下:

//order.h

#include <QDataStream>

#include <QDateTime>

#include <QFile>


typedef struct __MY_STRCT

{

    QString _name;

    unsigned int _id;

}SMY_STRCT;


QDataStream & operator << (QDataStream& out, const SMY_STRCT &data);

QDataStream &operator >> (QDataStream& in, SMY_STRCT &data);


class OrderClsTest

{

public:

    OrderClsTest();

    void store();

    void load();


private:

    QDateTime _lastTime;

};


//order.cpp

#include "orderclstest.h"

#include <QDebug>


OrderClsTest::OrderClsTest()

{

    store();

}


void OrderClsTest::load()

{

    QFile file("./data.dat");

    if(!file.open(QIODevice::ReadOnly)) return ;


    SMY_STRCT _my_strct;

    QDataStream in(&file);

    in >> _lastTime >> _my_strct;

    file.close();

}


void OrderClsTest::store()

{

    QFile file("./data.dat");

    if(!file.open(QIODevice::WriteOnly)){ return ;}


    _lastTime = QDateTime::currentDateTime();

    QDataStream out(&file);

    SMY_STRCT _my_strct;

    _my_strct._id = 123;

    _my_strct._name = "hello";


    out << _lastTime << _my_strct;


    file.close();

}


QDataStream& operator << (QDataStream &out, const SMY_STRCT &data)

{

    out << data._id << data._name;

    return out;

}


QDataStream& operator >> (QDataStream &in, SMY_STRCT &data)

{

    in >> data._id  >> data._name;

    return in;

}

int main(int argc, char *argv[])

{

    OrderClsTest test;

    test.load();

}


是不是很簡單?從事框架開發指導這些就行了,如果你想實現正真意義上的序列化操作,可以參考MFC 的Persistence機制,也就是我的上一個博客。你會見識的很多。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲水县| 安平县| 广丰县| 锡林浩特市| 陇西县| 景德镇市| 蓬溪县| 右玉县| 鄄城县| 靖江市| 灵璧县| 如东县| 郑州市| 突泉县| 吉木乃县| 涟源市| 友谊县| 抚松县| 桐乡市| 泽库县| 全州县| 特克斯县| 含山县| 吴忠市| 江源县| 厦门市| 抚州市| 库车县| 河北区| 达拉特旗| 庆安县| 寿阳县| 盘山县| 永春县| 哈尔滨市| 衡阳市| 增城市| 朝阳市| 二手房| 临漳县| 汉阴县|