在用Qt进行嵌入式开发的时候,有时需要通过界面永久的改变ip地址等网卡信息。此时只能修改系统中包含网卡信息的文件,下图红框中所示就是文件中的网卡信息。

那么如何修改这四行呢,我的做法是先打开该文本文件,然后读出全部文本内容,根据换行符“\n”将文本内容分割为字符串列表,当列表中的某个字符串内容是“iface eth0 inet static”的时候,就可以开始处理接下来读到的四行内容了,这里的关键是如何替换这四行内容,其实通过QString的replace方法就能轻松的进行替换。代码如下所示。

  1. QString strAll;
  2. QStringList strList;
  3. QFile readFile("test.txt");
  4. if(readFile.open((QIODevice::ReadOnly|QIODevice::Text)))
  5. {
  6. QTextStream stream(&readFile);
  7. strAll=stream.readAll();
  8. }
  9. readFile.close();
  10. QFile writeFile("test.txt");
  11. if(writeFile.open(QIODevice::WriteOnly|QIODevice::Text))
  12. {
  13. QTextStream stream(&writeFile);
  14. strList=strAll.split("\n");
  15. for(int i=0;i<strList.count();i++)
  16. {
  17. if(i==strList.count()-1)
  18. {
  19. //最后一行不需要换行
  20. stream<<strList.at(i);
  21. }
  22. else
  23. {
  24. stream<<strList.at(i)<<'\n';
  25. }
  26. if(strList.at(i).contains("iface eth0 inet static"))
  27. {
  28. QString tempStr=strList.at(i+1);
  29. tempStr.replace(0,tempStr.length(),"        address 192.168.1.111");
  30. stream<<tempStr<<'\n';
  31. tempStr=strList.at(i+2);
  32. tempStr.replace(0,tempStr.length(),"        netmask 255.255.255.0");
  33. stream<<tempStr<<'\n';
  34. tempStr=strList.at(i+3);
  35. tempStr.replace(0,tempStr.length(),"        network 192.168.1.0");
  36. stream<<tempStr<<'\n';
  37. tempStr=strList.at(i+4);
  38. tempStr.replace(0,tempStr.length(),"        geteway 192.168.1.1");
  39. stream<<tempStr<<'\n';
  40. i+=4;
  41. }
  42. }
  43. }
  44. writeFile.close();

修改后的文件如下图所示。

http://blog.csdn.net/caoshangpa/article/details/51775147

Qt修改文件内容的更多相关文章

  1. Web 在线文件管理器学习笔记与总结(5)修改文件内容

    ① 读出要修改的文件的内容 ② 进行修改 ③ 将修改后的内容写进文件 index.php: <?php require 'dir.func.php'; require 'file.func.ph ...

  2. java修改文件内容

    文件的读和写,大家都不陌生,但是修改呢?按照普通的读写流去修改的话,只能全部读取出来,在内存中修改好后,全部写进去,这样对于文件内容过多的时,性能很低. 最近在遇到这个问题的时候,发现RandomAc ...

  3. python笔记(三)---文件读写、修改文件内容、处理json、函数

    文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...

  4. Java之修改文件内容:字符串逐行替换

    依赖包: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</a ...

  5. linux下C++修改文件内容

    C fwrite在任意位置写入文件,并可修改文件内容 想实现类似迅雷那样下载时可以从文件半中间写入的功能 #include<stdio.h> int main() { FILE *fp; ...

  6. python 修改文件内容

    python 修改文件内容 一.修改原文件方式 1 def alter(file,old_str,new_str): 2 """ 3 替换文件中的字符串 4 :param ...

  7. python 文件操作(二) 替换性修改文件内容

    正常情况我们想要仅对文件某一行的内容进行修改,而不改变其他内容,在原文件的基础上不能修改,因为当我们对原文件进行写操作时,如果原文件里面有内容,就会清空,在这种情况下,只能对文件进行替换性修改:即重新 ...

  8. Python修改文件内容

    工作中要写个脚本来修改文件的内容,然后就写了一个刷子: #coding:utf8 import os def modify_file(old_file, new_version, old_versio ...

  9. shell编程系列12--文本处理三剑客之sed利用sed修改文件内容

    shell编程系列12--文本处理三剑客之sed利用sed修改文件内容 修改命令对照表 编辑命令 1s/old/new/ 替换第1行内容old为new ,10s/old/new/ 替换第1行到10行的 ...

随机推荐

  1. 再论dynamic 关键字

    有关动态数据类型 ,大家估计在实际中用的比较多了,不是很陌生.有关自己在项目中 的实际钉子总结: 1  匿名对象中的字段,是只读的,不能赋值 2 动态类型 指向强类型实例,注意观察内部的属性可访问性 ...

  2. JVM基础和调优(二)

    主要讲述java虚拟机的内存体系结构 了解了JVM 的一些基础之后,我们来看看java虚拟机内存的体系结构,这个是理解JVM垃圾收集算法的前提,理解了内存结构我们才能够针对不同的部分根据我们的程序进行 ...

  3. sip演示

    发现了一个很好的演示sip的网页,现粘贴在下面: http://www.in2eps.com/fo-sip/tk-fo-sip-ex3261.html

  4. shell惊鸿

    显示当前用户uid

  5. 关于bootstrap--表格(tr的各种样式)

    只需要<tr class="active">就可以用active样式. 特别提示:除了”.active”之外,其他四个类名和”.table-hover”配合使用时,Bo ...

  6. VC++ 坐标问题总结,控件大小随窗口变化

    [出处:blog.csdn.net/lanmanck] 一般变控件位置和大小在OnSize()消息中处理,不外乎几个函数: GetClientRect(),GetClientRect(),Screen ...

  7. UVA 1558 - Number Game(博弈dp)

    UVA 1558 - Number Game 题目链接 题意:20之内的数字,每次能够选一个数字,然后它的倍数,还有其它已选数的倍数组合的数都不能再选,谁先不能选数谁就输了,问赢的方法 思路:利用dp ...

  8. 无语的index hint:手工分配哈希区,5小时不出结果,优化后20分钟

    同事说,有个语句5个小时不出结果,叫我帮忙看看,于是叫同事发过来.不看不知道,一看吓一跳,3个表关联,强制使用了2个index hint,当中一个表9g,一个表67g,另一个小表40Mb.开发者,总以 ...

  9. 内存测试工具memtester

    Memtester是用户态工具,用于测试内存子系统的故障.非常方便,支持32位 或64位Unix-like系统.对于硬件开发开发者来说,memtester可以定位到物理地址. 1. 安装 下载地址ht ...

  10. asp.net cookie和session的详细使用

    cookie使用代码: //设置Cookie HttpCookie setCookie = new HttpCookie("test"); setCookie.Values.Add ...