在工程项目开发中,遇到这么个问题:手工计入文件中的数据,每行有三个,前两个是数字,最后一个是标识,现在把这3个数据提取出来。

一提取就出现问题了:由于手工导入,数据间使用空白间隔,有可能是一个空格,有可能多个空格,怎么成功提取了?看Qt文档,终于找到这么个好用的函数。直接给干货吧!

  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. QTextStream txtInput(&file);
  14. while(!txtInput.atEnd())
  15. {
  16. QString lineStr;
  17. lineStr = txtInput.readLine();
  18. QStringList str_list = lineStr<span style="color:#ff0000;">.simplified()</span>.split(" ");
  19. bool ok;
  20. double a = str_list.at(0).toDouble(&ok);
  21. double b = str_list.at(1).toDouble(&ok);
  22. QString c = str_list.at(2);
  23. title.append(a);//title、number、myStr是QVector类型,由于后面要用,是在.h文件内声明的
  24. number.append(b);
  25. myStr.append(c);
  26. }
  27. QFileInfo infomation = QFileInfo(fileName);
  28. QString name = QString(tr("选取文件是:")) + infomation.fileName();
  29. ui->fileLabel->setText(name);
  30. emit sigDataInit();
  31. file.close();
  32. }

这里要讲讲simplified()功能,这个函数把一个字符串首尾的空格全部清除,不管首尾是几个空格哦。字符串中间的空格(包括单个空格、多个空格、\t、\n)都统一转化成一个空格,这样就方便提取了,我们再使用split()函数就能很好拆分了。

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

最新文章

  1. Spinner
  2. HDU1134/HDU1133 递推 大数 java
  3. SQL Server常用语句
  4. Django学习(二)
  5. sqlserver 中的NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
  6. unix
  7. lstm-思想2
  8. BZOJ2296: 【POJ Challenge】随机种子
  9. 【转】Objective-C中的instancetype和id关键字
  10. python中的generator, iterator, iterabel
  11. 解决CENTOS7虚拟机更改静态IP无法启动
  12. Java基础学习笔记1
  13. Repeater
  14. POJ 3458 Colour Sequence
  15. 给大家安利一个学习angular2的视频网站
  16. ceph简单用户管理
  17. 简单标签SimpleTag
  18. memcache bug
  19. #include&lt;stdio.h&gt; #include &quot;stdio.h&quot;
  20. DevExpress ASP.NET Bootstrap Controls v18.2新功能详解(二)

热门文章

  1. 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道
  2. ANT下载与安装--windows
  3. AbsoluteLayout绝对布局
  4. Javascript中的类实现
  5. 机器学习: t-Stochastic Neighbor Embedding 降维算法 (二)
  6. CMake生成OpenCV解决方案&&编译OpenCV源码
  7. XenServer重置存储管理SR至Ext3
  8. Hibernate_12_HQL句子
  9. AntDesign Form表单字段校验的三种方式
  10. 初步STL该容器适配器