csv文件的实质就是在每行的各项数据之间添加逗号分隔符 ,,所有我们直接使用 QFile 和 QTextStream 去实现读写。
代码如下所示:
/*********点表数据插入文件**********/
void PointsValue::insertPointDatabase()
{
std::lock_guard<:mutex> lk(lockMutex);
// qDebug()<
QMap ::iterator iter=totalInfoData.begin();
QDir dir(POINTDATAPATH);
if (dir.exists()==false) {
TRACE_IF("不存在\n");
QDir().mkdir(POINTDATAPATH);
}
QString timestr = QDate::currentDate().toString("yyyyMMdd");
QString pathstr = QString::fromStdString(POINTDATAPATH)+"elephant_"+timestr+".csv";
QFile data(pathstr);
if (data.open(QFile::WriteOnly | QIODevice::Append)) {
QTextStream out(&data);
out << QDateTime::currentDateTime().toString("yyyy年MM月dd日 hh时mm分ss秒");
out << "\n";
while(iter!=totalInfoData.end())
{
out << QString::fromUtf8(iter.value().infoname);
out <
out << iter.value().info_address;
out <
out << iter.value().info_rate;
out <
out << iter.value().info_value;
out <
out << iter.value().isactivepower;
out << "\n";
++iter;
}
}
data.close();
}
如上所示,按照每日的文件来创建,可以将数据全部存入