日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt中将数据存入文档再读出------------ writeRawData 与readRawData成对使用

發布時間:2023/12/31 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt中将数据存入文档再读出------------ writeRawData 与readRawData成对使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先參考一段代碼:
來自 https://blog.csdn.net/amnes1a/article/details/64125120

#include "mainwindow.h" #include “QApplication” #include ”QDebug“ #include ”QDataStream“ #include ”QFile“ #include ”QVector“ #include ”QMap“ int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);//writeQFile file("test.dat");if (!file.open(QIODevice::ReadWrite)){qDebug() << "open file failed";return 0;}QDataStream ds(&file); const char *wstr = "hello-world"; quint32 wi = 1234; double wd = 1.1; float wf = 2.2f; QVector<int> wvector; wvector.push_back(1); wvector.push_back(2); wvector.push_back(3); QMap<int,int> wmap; wmap.insert(4, 4); wmap.insert(5, 5); wmap.insert(6, 6); ds << wstr; ds << wi; ds << wd; ds << wf; ds << wvector; ds << wmap; ds.writeBytes("file end ", qstrlen("file end ")); ds.writeRawData("really end", qstrlen("really end"));//read file.seek(0); char *rstr; quint32 ri; double rd; float rf; QVector<int> rvector; QMap<int, int> rmap; char *rbytes; uint len; char *rraw = new char[100]{0}; int rlen; ds >> rstr; ds >> ri; ds >> rd; ds >> rf; ds >> rvector; ds >> rmap; ds.readBytes(rbytes, len); ds.readRawData(rraw, rlen); qDebug() << rstr; qDebug() << ri; qDebug() << rd; qDebug() << rf; qDebug() << rvector; qDebug() << rmap; qDebug() << rbytes; qDebug() << rraw;return a.exec();

}

輸出:
hello-world
1234
1.1
2.2
QVector(1, 2, 3)
QMap((4, 4)(5, 5)(6, 6))
file end


上面的例子很清晰,我自己的函數是把設備上的數據通過485讀取,存在文件中,然后歷史數據可以調取,例如,波形數據可以再現波形等。
485數據上來后存在一個QByteArray 數組中,然后本地打開文件,后綴自己設置,
讀出的部分是把數據存到一個結構體中

具體可以根據自己的需要設置 寫數據的來源和讀出的數據放哪里

1、寫入部分:

QFile file(FileName);
省略文件打開等
QDataStream ds(&file);
ds.writeRawData(Read_tem.data(), sizeof(struct RRD));
省略文件關閉等

2、讀出部分:

省略文件打開等
QDataStream readDataStream(&file_name);
readDataStream.readRawData(pointor, sizeof(struct RRD)); //pointor是一個指向結構體的指針

省略文件關閉等

總結

以上是生活随笔為你收集整理的qt中将数据存入文档再读出------------ writeRawData 与readRawData成对使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。