在QT中编辑文件

时间:2015-10-27 14:41:50

标签: qt file text-files

我正在尝试在QT中编辑.txt文件。我在test.txt文件中写入数据,每当我写入新数据时它会删除以前的数据。我正在寻找的是:

检查文件是否存在。
如果是,则通过将新数据插入带有时间戳的文件中来更新文件 如果没有,则创建新文件并插入数据。

void writefile(QString Filename)
{
    QFile mFile(Filename);

     if(!mFile.open(QFile::WriteOnly | QFile::Text))
    {
        qDebug() << "Not open file";
        return;
    }

    // we can use stream instead of OUT FOR OUTPUT
     QTextStream out(&mFile);
    out << PCAN_DEVICE_NUMBER << ", " << PCAN_HARDWARE_NAME ;

   // mFile.flush();
    mFile.close();

2 个答案:

答案 0 :(得分:2)

您必须将文件打开命令属性更改为(QFile::Append|QFile::Text), 因为QFile::WriteOnly意味着QFile::Truncate

mFile.open(QFile::Append | QFile::Text)

您可以查看QIODevice的文档: http://doc.qt.io/qt-5/qiodevice.html#OpenModeFlag-enum

答案 1 :(得分:0)

使用append标志打开文件

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