工作記錄:處理閃燈資料檔案,需要將10進位制轉為3位十六進位制
阿新 • • 發佈:2018-12-13
Vixen生成的.csv檔案,需要把裡面的資料轉為3位的16進位制。自己寫了一個程式來處理,在此記錄一下。
平臺:Qt Creator
/*********************** * Name : main.cpp * Author : Lon * Date : 2018-11-27 ************************/ #include <iostream> #include <QFile> #include <QByteArray> #include <QString> #include <QDebug> using namespace std; QString getsrc(int a); QString DEC2HEX(int a); int main() { QFile file("E:/Arya/program/workplace/qt/lon/1.csv"); QFile out("E:/Arya/program/workplace/qt/lon/1.dat"); if(file.open(QIODevice::ReadOnly | QIODevice::Text)){ if(out.open(QIODevice::WriteOnly | QIODevice::Text)){ while(!file.atEnd()){ QByteArray line=file.readLine(); QString str(line); int one=str.section(",",0,0).trimmed().toInt(); int two=str.section(",",1,1).trimmed().toInt(); int thr=str.section(",",2,2).trimmed().toInt(); int fou=str.section(",",3,3).trimmed().toInt(); int fiv=str.section(",",4,4).trimmed().toInt(); QString strin; strin.append(DEC2HEX(one)).append(",").append(DEC2HEX(two)).append(",").append(DEC2HEX(thr)).append(",").append(DEC2HEX(fou)).append(",").append(DEC2HEX(fiv)).append("\n"); out.write(strin.toUtf8()); } } out.close(); file.close(); }else{ qDebug()<<"open fail"; } return 0; } /**十進位制轉16進位制*/ QString getsrc(int a){ QString str; switch(a){ case 0:str="0";break; case 1:str="1";break; case 2:str="2";break; case 3:str="3";break; case 4:str="4";break; case 5:str="5";break; case 6:str="6";break; case 7:str="7";break; case 8:str="8";break; case 9:str="9";break; case 10:str="A";break; case 11:str="B";break; case 12:str="C";break; case 13:str="D";break; case 14:str="E";break; case 15:str="F";break; } return str; } QString DEC2HEX(int a){ QString src; if(a<=15){ src="00"; src.append(getsrc(a)); }else if(a<=255){ src="0"; src.append(getsrc(a/16)); src.append(getsrc(a%16)); }else{ src.append(getsrc(a/256)); src.append(getsrc((a-256)/16)); src.append(getsrc((a-256)%16)); } return src; } /************************** * Name :lon.pro * Aruthor : Lon **************************/ TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG += qt SOURCES += \ main.cpp