0

以前の値を失うことなく新しいテキストを書くにはどうすればよいですか

    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 の以前の値が失われます。

または言い換えれば

ここに画像の説明を入力

4

2 に答える 2

0

でファイルを開くとQIODevice::WriteOnly、書き込みが開始されます...まあ、最初から、で開く必要がありますQIODevice::Append

于 2016-11-06T20:40:55.410 に答える
0

QIODevice::Appendファイルを作成するときに設定する必要がopen()あります。

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

さらに、各追加を新しい行に入れたい場合は、a も挿入する必要があり\nます。

于 2016-11-06T20:40:57.733 に答える