找回密码
 立即注册
收起左侧

qtextstream改写文本内容的问题

3
回复
5643
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2014-11-24 16:23:19 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用qtextstream改写文本内容。
代码如下
  1.     //open
  2.     if(! pfile->open(QIODevice::ReadWrite))
  3.         qDebug() << pfile->errorString();

  4.     QTextStream filestream(pfile);
  5.     QString line;

  6.     //read
  7.     while(!filestream.atEnd())
  8.     {
  9.         line = filestream.readLine();
  10.         if(line.contains(qsbefore))
  11.         {
  12.             line.replace(qsbefore,qsafter,Qt::CaseSensitive);
  13.             ???
  14.         }
  15.     }

  16.     //close file
  17.     pfile->close();
复制代码
在replace以后如何回写?我用<<好像就成了插入。
只能新建一个文件,写入,把老文件删掉,再把新文件改成老文件名字.
感觉很不应该是这样的

求指导              

回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-11-25 09:58:05 显示全部楼层
自己顶一下。自己顶一下。
回复 支持 反对

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-4-22 12:09:16 显示全部楼层
论坛就是人少了点 如果高手多一点在活跃一些就好了
回复 支持 反对

使用道具 举报

累计签到:344 天
连续签到:1 天
2015-4-23 16:38:19 显示全部楼层
本帖最后由 cai901022 于 2015-4-23 16:43 编辑

这个要分两步来。先读取里面的内容保存起来,然后修改。之后再写回去。以下是代码实例:
//读取文件内容
boolload_config_file(const QString &fileName){
    QString buf;    int ret = 0;    QFile file(fileName);    if(!file.open(QFile::ReadOnly | QIODevice::Text))    //以只读方式打开文件,如果打开失败则返回    {        return false;    }    QTextStream in(&file);                //新建流对象,指向选定的文件    cfg_str = in.readAll();               //文件内容保存在这里        file.close();
}
//修改文件内容
void save_config_file(const QString &fileName){
     //这里对你之前的那些文件内容操作,就是cfg_str
    ……
   
    //修改好之后保存文件    QFile file(fileName);    QString writeStr;    //这个是修改好之后替换过去的。比如writeStr.append(cfg_str );    if(!file.open(QFile::WriteOnly | QFile::Text))    //以只写方式打开文件,如果打开失败则弹出提示框并返回    {        QMessageBox::warning(this,tr("保存文件"),        tr("无法保存文件 %1:\n %2").arg(fileName).arg(file.errorString()));        return;    }    QTextStream writeInto(&file);               //新建流对象,指向选定的文件
    writeInto << writeStr;    file.close();}


以上有代码有文字,应该懂了吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了