精华内容
下载资源
问答
  • Qt读取二进制文件

    千次阅读 2019-05-09 11:40:22
    Qt读取二进制文件 文件开头添加 #include <QFile> 在构造函数添加: QFile file("D:\\DATA\\123.DAT"); file.open(QIODevice::ReadOnly); qint16 t; int data[2000]; for(int i=0;i<2000;i++) //读取...

    Qt读取二进制文件

    1. 文件开头添加
    #include <QFile>
    
    1. 在构造函数添加:
    QFile file("D:\\DATA\\123.DAT");
    file.open(QIODevice::ReadOnly);
    qint16 t;
    int data[2000];
    for(int i=0;i<2000;i++)  //读取2000个数据
    {
    file.read((char *)&t, sizeof(t));
    data[i]=t;
    }
    
    展开全文
  • QT读写二进制文件

    2021-06-25 10:28:42
    1.定义结构体 #pragma pack(1) //字节对齐 struct ALARM_FILE { char STATUS_DATA[9]; char STATUS_TIME[7]; int AlarmNo;... int MONITOR_ALARM_FLAG;...2.写二进制文件 ALARM_FILE alarmFile; //

    1.定义结构体

        #pragma pack(1) //字节对齐
        struct ALARM_FILE
        {
            char	STATUS_DATA[9];
            char	STATUS_TIME[7];	
            int		AlarmNo;
            int		MONITOR_ALARM_FLAG;
        };
        ALARM_FILE alarmFile;

    2.写二进制文件

        ALARM_FILE alarmFile;
        //时间和日期
        QDateTime currentDataTime=QDateTime::currentDateTime();
        QString data=currentDataTime.toString("yyyyMMdd");
        QString time=currentDataTime.toString("hhmmss");
        //日期
        char *pChar=data.toLatin1().data();
        strcpy(alarmFile.STATUS_DATA,pChar);
        //时间
        pChar=time.toLatin1().data();
        strcpy(alarmFile.STATUS_TIME,pChar);
        //报警号,报警标志
        alarmFile.AlarmNo=123;
        alarmFile.MONITOR_ALARM_FLAG=4556;
        // 检查报警文件路径,不存在则新建
        QString path=QApplication::applicationDirPath()+"/AlarmFile";
        QDir dir(path);
        if(!dir.exists()){
            dir.mkdir(path);
        }
        //站点号m_strSiteCode
        //时间    "yyyy-MM-dd:hh:mm:ss"
        QDateTime::currentDateTime();
        QString timeCur=currentDataTime.toString("yyyyMMdd-hh-mm-ss");
        QString fileFullPath=QString(path+"/"+"RadarAlarm_%1.dat").arg(timeCur);
        QFile writeFile(fileFullPath);
        if(!writeFile.exists()){
            writeFile.open(QIODevice::ReadWrite);
            writeFile.close();
        }
        writeFile.open(QIODevice::Append);
        writeFile.write((char*)&alarmFile,sizeof (alarmFile));
        writeFile.close();
    
    
        QDataStream out(&writeFile);
        //小端字节对齐
        out.setByteOrder(QDataStream::LittleEndian);
        out.writeRawData(reinterpret_cast<char *>(&alarmFile),sizeof (alarmFile));
        writeFile.close();

    3.读取二进制文件

     ALARM_FILE alarmFile;   
     //读取二进制文件
           QString path=QApplication::applicationDirPath()+"/AlarmFile";
           QString fileFullPath=QString(path+"/"+"RadarAlarm_20210625-10-23-18.dat");
           QFile aFile(fileFullPath);
           if(!aFile.exists()){
               qDebug()<<"二进制文件不存在"<<endl;
           }
           if(aFile.open(QIODevice::ReadOnly)){
               while (!aFile.atEnd()) {
                   aFile.read((char*)&alarmFile,sizeof (alarmFile));
                   qDebug()<<"打印输出结果:"<<endl;
                   qDebug()<<"日期:"<<alarmFile.STATUS_DATA<<endl;
                   qDebug()<<"时间:"<<alarmFile.STATUS_TIME<<endl;
                   qDebug()<<"alarmNo:"<<alarmFile.AlarmNo<<endl;
                   qDebug()<<"FLAG:"<<alarmFile.MONITOR_ALARM_FLAG<<endl;
                   qDebug()<<"------------------------------------>"<<endl;
               }
           }

    展开全文
  • Qt读写二进制文件

    万次阅读 2014-03-26 17:07:27
    下面是简单的二进制读写示例 #include #include #include #include using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QFile file("test.dat"); file.open...

    下面是简单的二进制读写示例

    #include <QtCore/QCoreApplication>
    #include <QFile>
    #include <QByteArray>
    #include <iostream>
    using namespace std;
    int main(int argc, char *argv[])
    {
    	QCoreApplication a(argc, argv);
    	QFile file("test.dat");
    	file.open(QIODevice::WriteOnly);
    	double _a = 13.95;
    	int b = 189;
    	file.write((char*)&_a, sizeof(_a));
    	file.write((char*)&b, sizeof(b));
    	file.close();
    
    	QFile tmpfile("test.dat");
    	tmpfile.open(QIODevice::ReadOnly);
    	double c = 0;
    	int d = 0;
    	tmpfile.read((char*)&c, sizeof(c));
    	tmpfile.read((char*)&d, sizeof(d));
    	cout<<c<<' '<<d<<endl;
    	//QByteArray bytes = tmpfile.readAll();
    	//c = *((double*)bytes.data());
    	//d = *((int*)(bytes.data() + sizeof(c)));
    	//cout<<c<<' '<<d<<endl;
    	tmpfile.close();
    
    	return a.exec();
    }


    展开全文
  • QDateStream程序效果展示写入后自动生成的.dat文件qDebug输出读出的二进制数据 程序 #include "mainwindow.h" #include <QDebug> #include <QFile> #include <QDataStream> #include <QDate>...

    程序

    #include "mainwindow.h"
    #include <QDebug>
    #include <QFile>
    #include <QDataStream>
    #include <QDate>
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        fileFun();
    }
    
    MainWindow::~MainWindow()
    {
    
    }
    
    void MainWindow::fileFun()
    {
        /*将二进制数据写进数据流*/
        QFile file("binary.dat");
        file.open(QIODevice::WriteOnly|QIODevice::Truncate);
        QDataStream out(&file);
        out<<QString(tr("周贺军:"));
        out<<QDate::fromString("1996/09/25","yyyy/MM/dd");
        out<<(qint32)23;
        file.close();
        /*从文件中读取数据*/
        file.setFileName("binary.dat");
        if(!file.open(QIODevice::ReadOnly))
        {
            qDebug()<<"error!";
            return;
        }
        QDataStream in(&file);
        QString name;
        QDate birthday;
        qint32 age;
        in>>name>>birthday>>age;
        qDebug()<<name<<birthday<<age;
        file.close();
    
    }
    
    

    效果展示

    写入后自动生成的.dat文件

    在这里插入图片描述

    qDebug输出读出的二进制数据

    在这里插入图片描述

    展开全文
  • QT读取二进制文件

    千次阅读 2017-05-23 23:07:52
    void MainWindow::ReadPicture() { QByteArray m_data; QFile file("H:/BaiduYunDownload/Cache/test.jpg"); if(file.open(QIODevice::ReadOnly)) { m_data = file.readAll(); cout
  • QT 读取二进制文件的几种方式

    千次阅读 2020-05-27 15:33:40
    1、方法一 ———— fread FILE *fp=fopen(filename.toStdString().c_str(), "rb"); fseek(fp,0,SEEK_END); unsigned int fileLen = ftell(fp); ... fseek(fp,0,SEEK_SET);... //结构体文件 ...
  • 一个二进制文件,我用matlab读取的结果如下: 代码: >> fileName='1.dat' ; >> fid=fopen(fileName,'rb'); >> HEADER = fread(fid,1,'ulong'); 结果 HEADER = 13; matlab读取的结果是...
  • Qt开发二进制文件读取与操作学习汇总导言需求分析Qt API:QFile问题分析输出结果:进行二次处理:输出结果如图:分析:Qt API:QDataStream问题分析:输出结果:C原生API:FILE(fopen,fread,fseek,fwrite)分析;...
  • QDataStream提供了基于QIODevice的二进制数据的序列化。数据流是一种二进制流,这种流完全不依赖于底层操作系统、...由于数据流就是二进制流,因此我们也可以直接读写没有编码的二进制数据,例如图像、视频、音频等...
  • QDataStream提供了基于QIODevice的二进制数据的序列化。数据流是一种二进制流,这种流’完全不依赖于底层操作系统、...由于数据流就是二进制流,因此我们也可以直接读写没有编码的二进制数据,例如图像、视频、音频...
  • 二进制文件存储方式比较方便,文本小,保密效果好 定义一个数据结构并实现相关操作 使用QDataStream进行读写操做 数据结构 #include struct AccountInfo { // 数据 QString Account; QString LogPasswd; // 初始...
  • //待发送文件大小 auto sendCnt = (int)ceil(fileLen / (PACKET_SIZE*1.0));//发送次数 auto lastLen = fileLen % PACKET_SIZE;//最后一次发送的大小 if(0 == lastLen){//恰巧是PACKET_SIZE的整数倍 lastLen = ...
  • Qt 二进制文件读写

    千次阅读 2021-02-25 21:39:28
    Qt 使用 QFile 和 QDataStream 进行二进制数据文件读写: QFile 负责文件的 IO 设备接口,即与文件的物理交互; QDataStream 以数据流的方式读取文件内容或写入文件内容。 QDataStream 保存文件时使用的数据编码...
  • 在linux系统下用qt二进制文件时,使用QDataStream类进行存储文件。结果查看到每次写入都会在头部多出四个字节的长度。如下图所示: 问题分析 写入二进制文件代码如下: QFile file(m_File); if (!file.open...
  • Qt-二进制文件读写-QDataStream

    千次阅读 2018-03-01 10:54:41
    转自:http://blog.51cto.com/devbean/293892今天开始进入 Qt 的另一个部分:文件读写,也就是 IO。文件读写在很多应用程序中都是需要的。Qt 通过 QIODevice 提供了IO的抽象,这种设备(device)具有读写字节块的能力...
  • QFile file("D:\\Tcpview.exe"); if (file.exists()) { if ( file.size() > 2097152 ) { QMessageBox::information(this, tr("up file fail"), tr("Failed to up file, file size need <...
  • Qt--读写二进制文件

    2021-09-24 00:43:44
    二进制文件写入/读取数据流 //将二进制文件写入数据流 QFile file("binary.dat"); file.open(QIODevice::WriteOnly | QIODevice::Truncate); QDataStream out(&file);//将数据序列化 out<<QString...
  • 自己写的第一个qt界面程序,有很多不足。希望能给需要的人一些小思路

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,794
精华内容 3,517
关键字:

qt读取二进制文件显示