天天看點

QT測試資料記錄(csv格式檔案儲存excel樣式的資料)

      最近在做的項目,因為要做測試資料記錄,以便使用miniTab軟體統計分析,那麼我們常見的資料記錄,可能有txt、excel、資料庫,但是txt記錄的資料不友善複制到minitab上,資料庫方式又有點大材小用的感覺,是以隻剩下excel表格方式了,但是有一點不好的就是需要重複打開微軟的office軟體,引入不穩定因素的同時,實測儲存的速度又比較慢。于是把這三種方式都給否定了,最後查資料得知可以使用.csv格式的檔案儲存資料,QT操作就跟操作txt文檔一樣簡單友善,隻要資料已逗号“,”分開,那麼用excel打開,排布就跟儲存excel的格式一模一樣,很友善的進行整行整列的複制、分析,下邊我們就來直接貼代碼:

#include <QtWidgets/QApplication>
#include <QDate>
#include <QTextStream>
#include <QFile>
#include <QString>

void SaveTestResultToCSVFile()
{
	//儲存資料的檔案路徑
	QString  csvFileName = QApplication::applicationDirPath() + "/TestData/" + \
						   QDateTime::currentDateTime().toString("yyyyMMdd") + ".csv";
	QFile file(csvFileName);
	if (!file.exists())		//檔案不存在的時候便建立,以當天日期為命名
	{
		file.open(QIODevice::WriteOnly);
		QTextStream txtOutPut(&file);
		txtOutPut << "Unit(mm)\n";
		txtOutPut << "Time,Data1,Data2,Data3,Data4\n";	//注意,每行資料結束後要加換行符
		file.close();
	}

	file.open(QIODevice::WriteOnly|QIODevice::Append);
	QTextStream txtOutPut(&file);

	QString msg = QDateTime::currentDateTime().toString("hh:mm:ss") + "," \
				+ "12.12" + ","\
				+ "13.25" + ","\
				+ "14.59" + ","\
				+ "45.32" + "\n";	//這裡隻是模拟資料,具體資料做相對改動即可

	txtOutPut << msg;
	file.flush();
	file.close();
}

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	//做個簡單的循環,模拟儲存幾組資料
	for (int i=0; i<5; i++)
	{
		SaveTestResultToCSVFile();
	}

	return a.exec();
}
           

編譯運作後,我們到TestData檔案夾下找到儲存的.csv檔案,使用excel表格打開,如下,是不是比直接操作excel要友善的多,而且寫的速度還很快,跟操作txt檔案是一樣一樣的。

QT測試資料記錄(csv格式檔案儲存excel樣式的資料)