QString之simplified()用於讀取數據、規范數據,非常方便


在工程項目開發中,遇到這么個問題:手工計入文件中的數據,每行有三個,前兩個是數字,最后一個是標識,現在把這3個數據提取出來。

一提取就出現問題了:由於手工導入,數據間使用空白間隔,有可能是一個空格,有可能多個空格,怎么成功提取了?看Qt文檔,終於找到這么個好用的函數。直接給干貨吧!

 

[cpp]  view plain  copy
 
 print?
  1. QString fileName = QFileDialog::getOpenFileName(this,  
  2.                                                 tr("打開文件"),  
  3.                                                 /*openPath*/".",  
  4.                                                 tr("ini文件 (*.ini)"));  
  5. if(!fileName.isEmpty())  
  6. {  
  7.     QFile file(fileName);  
  8.     if(!file.open(QIODevice::ReadOnly))  
  9.     {  
  10.         qDebug()<<"open error!";  
  11.         return;  
  12.     }  
  13.   
  14.     QTextStream txtInput(&file);  
  15.     while(!txtInput.atEnd())  
  16.     {  
  17.         QString lineStr;  
  18.         lineStr = txtInput.readLine();  
  19.         QStringList str_list = lineStr<span style="color:#ff0000;">.simplified()</span>.split(" ");  
  20.         bool ok;  
  21.         double a = str_list.at(0).toDouble(&ok);  
  22.         double b = str_list.at(1).toDouble(&ok);  
  23.         QString c = str_list.at(2);  
  24.         title.append(a);//title、number、myStr是QVector類型,由於后面要用,是在.h文件內聲明的  
  25.         number.append(b);  
  26.         myStr.append(c);  
  27.     }  
  28.     QFileInfo infomation = QFileInfo(fileName);  
  29.     QString name = QString(tr("選取文件是:")) + infomation.fileName();  
  30.     ui->fileLabel->setText(name);  
  31.     emit sigDataInit();  
  32.     file.close();  
  33. }  

這里要講講simplified()功能,這個函數把一個字符串首尾的空格全部清除,不管首尾是幾個空格哦。字符串中間的空格(包括單個空格、多個空格、\t、\n)都統一轉化成一個空格,這樣就方便提取了,我們再使用split()函數就能很好拆分了。

 

http://blog.csdn.net/u010111033/article/details/53892959

 


免責聲明!

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



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