找回密码
 立即注册
收起左侧

QStringList split后出现多余空行与莫名报错

2
回复
9813
查看
[复制链接]
累计签到:12 天
连续签到:1 天
来源: 2017-5-11 13:30:27 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 edg233 于 2017-5-13 20:01 编辑

找了很久没找到该怎么办  ,请求帮忙 感谢  我很想好好排版 能给帮忙解决问题的人省点气力,论坛的编辑器我用的真的好累。。问题有两个分别是问题一
我的QStringList在split后分离数据以后 数据的最后还多了一项空数据行

qDebug() << list << list.length(); //这是打印代码 后面有全部代码
打印结果:
("apple1", "阿斯顿") 2
("apple2", "阿斯顿") 2
("") 1 //就是这一行 没有东西 多出来的一行
[size=13.3333px]
问题二[size=13.3333px]QstringList 赋值运行以后出现异常报错
list = line.split(",");
qDebug() << list << list.length();
QString Worddata = list.at(0); ------这是赋值1
//这边有bug ,当把list.at(1)赋值给Meaningdata以后,运行时就会报错,如果只进行赋值1或2注释掉另一个时,程序不报错,赋值1、2都写的话就会报错
QString Meaningdata = list.at(1);----这是赋值2

这边是报错的图片




以下是关键部分的全部代码
/打开文件
if(!EngWordFile.open(QIODevice::ReadWrite ))  
    {        qDebug("open file failed");      
exit(1);      }  
  //判断文件大小,查看打开正常否  
  int size = EngWordFile.size();  
  qDebug("full file size is %d",size);  
  //读文件     QTextStream in(&EngWordFile);   
  in.setCodec("utf-8");   
  QString line = in.readLine();   
QStringList list;   
//读取文件内容   
  while(!line.isNull()){
         line = in.readLine();      
    list = line.split(",");      
   qDebug() << list << list.length();   
     QString Worddata = list.at(0); ------这是赋值1     
    //这边有bug ,当把list.at(1)赋值给Meaningdata以后,运行时就会报错,如果只进行赋值1或2注释掉另一个时,程序不报错,赋值1、2都写的话就会报错
        QString Meaningdata = list.at(1);----这是赋值2
    }









附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

1、用QString::split() 最后多一行数据,有可能原因是QString内容是"a,,b,c",这样就会变成list1: [ "a", "", "b", "c" ] 解决方法就是用 2、初步判断不是QStringList的使用问题,怀疑是不是文件本身的问题,比如用记事本默认的非UTF8编码格式写的, 然后你用UTF8格式解析,导致文件内容乱码
回复

使用道具 举报

累计签到:597 天
连续签到:1 天
2017-5-11 13:30:28 显示全部楼层
1、用QString::split() 最后多一行数据,有可能原因是QString内容是"a,,b,c",这样就会变成list1: [ "a", "", "b", "c" ]
解决方法就是用
  1. QStringList list1 = str.split(',', QString::SkipEmptyParts);
复制代码


2、初步判断不是QStringList的使用问题,怀疑是不是文件本身的问题,比如用记事本默认的非UTF8编码格式写的,
然后你用UTF8格式解析,导致文件内容乱码
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2017-5-14 10:16:17 显示全部楼层
没人吗- -  诶 我也不知道该怎么办了                  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了