Qt txt文本中獲取字符串的問題


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


免責聲明!

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



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