Qt修改文件內容


在用Qt進行嵌入式開發的時候,有時需要通過界面永久的改變ip地址等網卡信息。此時只能修改系統中包含網卡信息的文件,下圖紅框中所示就是文件中的網卡信息。

那么如何修改這四行呢,我的做法是先打開該文本文件,然后讀出全部文本內容,根據換行符“\n”將文本內容分割為字符串列表,當列表中的某個字符串內容是“iface eth0 inet static”的時候,就可以開始處理接下來讀到的四行內容了,這里的關鍵是如何替換這四行內容,其實通過QString的replace方法就能輕松的進行替換。代碼如下所示。

 

[cpp]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  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.   
  27.              if(strList.at(i).contains("iface eth0 inet static"))  
  28.              {  
  29.                  QString tempStr=strList.at(i+1);  
  30.                  tempStr.replace(0,tempStr.length(),"        address 192.168.1.111");  
  31.                  stream<<tempStr<<'\n';  
  32.                  tempStr=strList.at(i+2);  
  33.                  tempStr.replace(0,tempStr.length(),"        netmask 255.255.255.0");  
  34.                  stream<<tempStr<<'\n';  
  35.                  tempStr=strList.at(i+3);  
  36.                  tempStr.replace(0,tempStr.length(),"        network 192.168.1.0");  
  37.                  stream<<tempStr<<'\n';  
  38.                  tempStr=strList.at(i+4);  
  39.                  tempStr.replace(0,tempStr.length(),"        geteway 192.168.1.1");  
  40.                  stream<<tempStr<<'\n';  
  41.                  i+=4;  
  42.              }  
  43.          }  
  44.  }  
  45.  writeFile.close();  

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

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM