数据转换
下面展示一些 代码
。
#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;
}