最后 52 行未使用 qt 写入 csv 文件
Last 52 lines are not written in csv file using qt
我有一个 csv 文件,其中有 3 列和 866300 行。我尝试将此数据写入其他 csv 文件。当我尝试写入时,它在文件中写入了 866248 行,之后剩余的 52 行未写入文件。我不明白这是什么问题。我尝试使用在控制台上打印该数据来调试此问题,然后它打印到控制台上的最后一行。只是将数据写入文件的问题。
#include <QCoreApplication>
#include <QFile>
#include <QStringList>
#include <QDebug>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("C:/Users/hello/Downloads/hello.csv");
QFile write("new_data.csv");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<file.errorString();
return 1;
}
if(!write.open(QIODevice::WriteOnly |QIODevice::Append))
{
qDebug()<<file.errorString();
return 1;
}
QTextStream out(&write);
QStringList data;
while (!file.atEnd())
{
QString line = file.readLine();
data = line.split(',');
if (data[0]=="v1")
{
out<<line;
continue;
}
else
{
int seq = (data[0].toInt())-1;
QString str = QString::number(seq)+","+data[1]+","+data[2].trimmed();
qDebug()<<str;
out<<str<<"\n";
}
}
return a.exec();
}
请帮忙。
请在 return a.exec();
此行之前和 while 循环之后关闭文件。将此行添加到行下方。
write.close();
我有一个 csv 文件,其中有 3 列和 866300 行。我尝试将此数据写入其他 csv 文件。当我尝试写入时,它在文件中写入了 866248 行,之后剩余的 52 行未写入文件。我不明白这是什么问题。我尝试使用在控制台上打印该数据来调试此问题,然后它打印到控制台上的最后一行。只是将数据写入文件的问题。
#include <QCoreApplication>
#include <QFile>
#include <QStringList>
#include <QDebug>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile file("C:/Users/hello/Downloads/hello.csv");
QFile write("new_data.csv");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug()<<file.errorString();
return 1;
}
if(!write.open(QIODevice::WriteOnly |QIODevice::Append))
{
qDebug()<<file.errorString();
return 1;
}
QTextStream out(&write);
QStringList data;
while (!file.atEnd())
{
QString line = file.readLine();
data = line.split(',');
if (data[0]=="v1")
{
out<<line;
continue;
}
else
{
int seq = (data[0].toInt())-1;
QString str = QString::number(seq)+","+data[1]+","+data[2].trimmed();
qDebug()<<str;
out<<str<<"\n";
}
}
return a.exec();
}
请帮忙。
请在 return a.exec();
此行之前和 while 循环之后关闭文件。将此行添加到行下方。
write.close();