Romi-知行合一

轻轻的风轻轻的梦,轻轻的晨晨昏昏, 淡淡的云淡淡的泪,淡淡的年年岁岁。
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Qt txt文本中获取字符串的问题

Posted on 2013-09-18 20:08  romi  阅读(3665)  评论(1编辑  收藏  举报

QT对txt文本进行读写一般是采用QFile和QTextStream结合使用,在此不细说,主要说一下读取txt文本的注意事项。因为txt文本中有中文也有英文还有数字,要准确获得需要的字串可就要多一个心眼了。因为在使用QString对文本读取时,使用的是Unicode编码,这时,一个汉字占2个字节,一个字母占一个字节,一个数字占一个字节。

 以以下代码作为示例:

QString str("我的csdn博客");
str.size();   //返回值8
str.left(3);  //返回值   “我的c”
str.mid(2,3); //返回值   “csd”

从以上可以看出,QString中的成员函数计算的是字符的个数

 当使用QByteArray时,

QString str("我的csdn博客");
QbyteArray ba=str.toAscii();
str.size();   //返回值12
str.left(4);  //返回值   “我的”
str.mid(2,4); //返回值   “的cs”

 可以看出,QByteArray中的成员函数计算的是字节的个数

 所以,在需要准确获得txt中的字符时,要注意txt的格式,根据txt的格式使用相应的方法获取需要的字符串。

 结束语:其中的缘由本人也还未搞清楚,可能与qt中的编码有深厚的关系,有时间再来分析,可参见如下链接:

 http://zhidao.baidu.com/question/352325355.html

 http://blog.csdn.net/brave_heart_lxl/article/details/7186631