• 4955阅读
  • 8回复

[提问]如何在进程结束后,再次写入文件时不覆盖上次进程执行时写入的内容? [复制链接]

上一主题 下一主题
离线米妮
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-26
请教各位高手一个问题,我现在打算将文本框中的显示的内容写入本地文件,一次进程结束后,使用clear()函数清空文本框,第二次调用进程后,想将文本框中的内容接着上一次的内容写入到本地文件。但是现在,本地文本文件中只能写入文本框第二次显示的内容,请问,如何让两次内容都写入本地文件呢?
下面是我的代码部分
    QByteArray newData = process.readAllStandardError();    QString text=ui->resultTextEdit->toPlainText()+QString::fromLocal8Bit(newData);    ui->resultTextEdit->setPlainText(text);    QFile result("/etc/idmap/result.txt");    result.open(QFile::WriteOnly|QFile::Truncate);    QTextStream resultout(&result);    resultout<<text;    result.close();
离线roywillow

只看该作者 1楼 发表于: 2011-12-26
QFile打开的时候我记得有Append这个flag
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 2楼 发表于: 2011-12-26
回 楼主(米妮) 的帖子
写入之前先read文件,关闭文件,重新open,写入read的内容,再写入新内容,关闭文件。
不管有没有append都能行。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线米妮
只看该作者 3楼 发表于: 2011-12-26
回 1楼(roywillow) 的帖子
这个append我试过了,程序会自动终止,好像是不可以。。。。
离线米妮
只看该作者 4楼 发表于: 2011-12-26
回 2楼(jdwx) 的帖子
好的,我就试试您这个法子~
离线米妮
只看该作者 5楼 发表于: 2011-12-26
回 4楼(米妮) 的帖子
按照您说的那个方法试了,可以了,灰常感谢!!!!
离线cahwxy

只看该作者 6楼 发表于: 2011-12-26
最简单的方法是把QFile  和 QTextStream 定义成全局的就可以了
离线abcdlcq

只看该作者 7楼 发表于: 2011-12-27
result.open(QFile::WriteOnly|QFile::Append);
离线米妮
只看该作者 8楼 发表于: 2011-12-27
回 6楼(cahwxy) 的帖子
也可以实现,谢谢
快速回复
限100 字节
 
上一个 下一个