Последние 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();
Другие вопросы по тегам