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

 

posted @ 2017-02-09 00:13  findumars  Views(2350)  Comments(0Edit  收藏  举报