Последние 52 строки не записываются в файл csv с помощью 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/Liya Dev/Downloads/Patient22.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();
}
пожалуйста помоги.
это вывод консоли.
это вывод файла csv.
1 ответ
Пожалуйста, закройте файл перед
return a.exec();
этой строки и после цикла while. добавьте эту строку ниже строки.
write.close();