Напишите новый текст без потери предыдущего значения. В Qt

Как я могу написать новый текст без потери предыдущего значения

    QString mFilename2 = "bin/bin_2.txt";
File_main_Editor.stWrite(mFilename2,okline_Edit);

void stWrite(QString Filename,QString stringtext){
QFile mFile(Filename);

if(!mFile.open(QIODevice::WriteOnly | QIODevice::Text))
{
    QMessageBox message_file_Write;
    message_file_Write.warning(0,"Open Error"
           ,"could not to open file for Writing");
    return;
}
QTextStream out(&mFile);
out << stringtext;
out.setCodec("UTF-8");

mFile.flush();
mFile.close();
}

Каждый раз, когда okline_Edit инициализируется, функция stWrite, вызывающая новое значение в файле, заливается.txt предыдущее значение теряется.

Или другими словами

2 ответа

Решение

Вам нужно установить QIODevice::Append когда ты open() файл.

mFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)

Кроме того, если вы хотите, чтобы каждое добавление находилось в новой строке, вам нужно будет вставить \n также.

Вы открываете файл с QIODevice::WriteOnly что бы начать писать... ну с самого начала, вам нужно открыть его с QIODevice::Append

Другие вопросы по тегам