方法一:
#include "QtGuiApplication3.h"
#include"qDebug"
#include"QMessageBox"
#include"string.h"
#include<map>
#include<QTime>
#include <vector>
#include<qdir.h>
#include<memory>
using namespace std;
// 将数据保存到csv文件方法;
void QtGuiApplication3::save_file()
{
QDateTime current_date_time = QDateTime::currentDateTime();
QString file_name = current_date_time.toString("yyyy-MM-dd") + ".csv";
QString strDirName = "Cal_file";
QDir dir(strDirName);
if (dir.exists())
{
}
else
{
dir.mkpath(strDirName);
}
file_name = strDirName + "/" + file_name; // 选择不同目录下保存
vector<double> m_t_x;
vector<double> m_t_y;
vector<double> m_t_z;
for (int i = 0; i < 10; i++)
{
m_t_x.push_back(i);
m_t_y.push_back(i*10);
m_t_z.push_back(i * 100);
}
//迭代器
vector <double>::iterator ibegin,iend;
ibegin = m_t_x.begin();
iend = m_t_x.end();
for (; ibegin != iend; ibegin++)
{
QString tlog;
tlog = QString("%1,%2,%3").arg(m_t_x[*ibegin]).arg(m_t_y[*ibegin]).arg(m_t_z[*ibegin]);
QFile file(file_name);//文件命名
if (!file.open(QFile::ReadWrite | QFile::Text | QFile::Append)) //检测文件是否打开
{
return;
}
QTextStream out(&file);
out << tlog << endl; // 将数值写如文件
qDebug()<< tlog << endl;
file.close();
}
}
方法二:
//*************************************************************//
// 文件保存
void File_Save_Open::saveDataToFileEx(const QString &filename, QStringList *sRecv)
{
QStringList head;
QString filenameEX;
QString fileName = QCoreApplication::applicationDirPath();
filenameEX = "Result";
//////////////////////////////////////
// 将文件保存在相同文件下的 Log 文件中,保存文件名为:filenameEX + "_" + QDate::currentDate().toString("yyyy-MM-dd") + ".csv"
fileName = fileName + "/Log/" + filenameEX + "_" + QDate::currentDate().toString("yyyy") + ".csv"; //yyyy-MM-dd
QFile csvFile(fileName);
// 若文件Log中没有相同名的文件,创建并写入表头,,若有,直接将内容添加到后面
if (!csvFile.exists()) //文件不存在,创建并写入表头
{
//head << "DateTime"; //按这个顺序保存数据
if (csvFile.open(QIODevice::WriteOnly | QIODevice::Append))
{
QString strTmp;
//***********************
head << "名称"; // 此处是添加保存数据对应的名称(只需在后面添加即可)
//********************
strTmp = head.join(',');
strTmp.append('\r');
csvFile.write(strTmp.toUtf8());
csvFile.close();
}
}
QString str;
// 保存当下日期
/* *sRecv << str.append(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
str = (*sRecv).join(',');*/
readCSVdata_RowCloum("test.csv", readData, &Row, &Column); // Row行Column列
// 索引到所有文件
for (int j = 0; j < Column; j++) //此处表示读取数据的列数
{
for (int i = 0; i < Row; i++) //数据的行数
{
*sRecv << readData[j][i];
str = (*sRecv).join(',');
qDebug() << *sRecv << endl;
}
}
str.append('\r'); // 换行
// 关闭文件
if (csvFile.open(QIODevice::WriteOnly | QIODevice::Append))
{
csvFile.write(str.toUtf8());
csvFile.close();
}
(*sRecv).clear(); //清空
}