qt数据转换代码

数据转换

下面展示一些 代码

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QFileDialog>
#include <QFile>
#include <QMessageBox>
#include <QTextCodec>
#include <math.h>
#include <QDateTime>
#include <QDesktopServices>

void MainWindow::on_inputButton_clicked(){
    QString filename = QFileDialog::getOpenFileName(this,"文件选择","./","text(*.txt)");
    ui->inputEdit->setText(filename);
}
void MainWindow::on_outputButton_clicked(){
    QString filename = QFileDialog::getExistingDirectory(this,"文件夹选择","./");
    ui->outputEdit->setText(filename);
}
void MainWindow::on_openButton_clicked(){
    if(outfilename==""){
        QMessageBox::warning(this,"警告","还未转换文件!");
    }else{
        QDesktopServices::openUrl(QUrl::fromLocalFile(outfilename));
    }
}
void MainWindow::on_startButton_clicked(){
    if(ui->inputEdit->text()==""){
        QMessageBox::warning(this,"警告","请选择文件!");
    }
    else if(ui->outputEdit->text()==""){
        QMessageBox::warning(this,"警告","请选择输出文件夹!");
    }
    else{
        QFile file(ui->inputEdit->text());
        bool isok=file.open(QIODevice::ReadOnly);
        QString content;
        if(isok){
            while(!file.atEnd()){
                QByteArray t=file.readLine();
                QString temp=QString(t);
                temp.remove(QRegExp("\\s"));
                QString count=temp.mid(0,5);
                QString verify=temp.mid(5,2);
                QString kind=temp.mid(7,2);
                QString data=temp.mid(9,4);
                QString time=temp.mid(13);
                QString high;
                QString result;
                //qDebug()<<temp;

                int nverify=verify.toInt(NULL,16);
                verify=verify.setNum(nverify,2);
                verify = QString("%1").arg(verify.toInt(), 8, 10, QLatin1Char('0'));


                int ndata=data.toInt(NULL,16);
                if(kind=="74"){
                    high=QString::number(((float)ndata/8*0.3048)-fmod(((float)ndata/8*0.3048),0.5)+0.5);
                }else if(kind=="75"){
                    high=QString::number((float)ndata/2);
                }

                result=count+"      "+time+"      "+verify+"      "+high+"m"+'\n';
                ui->textEdit->append(result);
                content+=result;
                QApplication::processEvents();
            }
        }
        file.close();
        QDateTime dateTime= QDateTime::currentDateTime();
        outfilename=ui->outputEdit->text()+"/"+dateTime.toString("yyyy-MM-dd-hh-mm-ss")+"_DATA.txt";
        QFile outfile(outfilename);
        outfile.open(QIODevice::ReadWrite | QIODevice::Text);
        outfile.write(content.toUtf8());
        outfile.close();
        //ui->textEdit->append(content);
    }
}

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle("429记录仪数据转换软件");
    setWindowIcon(QIcon(":/img/title.ico"));
    setFixedSize(609,559);
}

MainWindow::~MainWindow()
{
    delete ui;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值