从qbytearray中提取部分数据解决办法
发布时间:2010-05-30 21:35:35 文章来源:www.iduyao.cn 采编人员:星星草
从qbytearray中提取部分数据
第一次在csdn论坛上发帖,还请各位大牛多多指教。
实在是卡在这里好几天了,也没弄出来,恳求各位大侠请点一下小弟,谢谢了。
问题描述如下:
从外部已经读取数据进来了: QByteArray temp = myCom->readAll(); 读取进来的数据都放在了temp中,但是,我只想要其中的一部分数据,比如全部读取进来的数据是11111111111111111111100100010111111111111111111111,我只要其中的从0开始那几位,其他的都不要,我曾经试过把temp改成数组形式的temp[1000],然后查找第一个0出现的位置number,,之后,用temp.mid(number,8)的方式来提取这几位数据,但是,不成功。
现在,就卡在这里好几天了,上网找了很多资料,由于小弟愚笨,都没能解决,所以,恳请大侠出手相救,谢谢了。
------解决方案--------------------
查了下QByteArray,其功能是相当丰富的,所以不需要改成数组
首先在给temp赋值后可以 if (!temp.isEmpty ()) 判断数组是否赋值成功
然后可以在条件中使用循环 for (int i = 0; i != temp.length (), ++i)后,逐个用temp[i]与'0'比较(STL的vector可以直接使用vector[i],QByteArray应该也可以,如果不行肯定有类似)
if (temp[i] = '0') { //unicode不这么写
temp.remove (0, i); //移除temp第0到i之间的数据,这里可以添加一个判断:如果i=0则不处理
break; //跳出循环
}
其实也可以用其它很多方法:例如用startsWith (const char * str)判断第一元素是不是你所要的,如果是则返回temp,如果不是就remove掉第一个元素
------解决方案--------------------
------解决方案--------------------
哦,我没看你之前的回复,判断的话不是一样得读出来判断,没意义。不过还是比较麻烦点的做法,你可以开两个线程来做,一个负责读,另外一个负责处理这样就不阻塞了,具体见QThread,还必须有个资源共享区,并且有资源锁
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Qt Creator 2.1 Beta 2 和Qt 4.7.1 发布
转载:http://www.cmdn.net/news/1148
诺基亚发布了Qt框架的跨平台开发环境(IDE) –Qt Cre...
-
Qt菜单的显示问题
我的是在ubuntu11.10虚拟机上运行的qt creator4,现在刚入门,按照http://www.yafeilinux.com/?p=30的例子添加菜单...
-
'make' 不是内部或外部命令,也不是可运行的程序或批处理文件?
根据HTML code
http://v.youku.com/v_show/id_XMTA1NDEzODUy.html
的...
-
visual studio 2010编译qt的demo无法运行,求教。
安装的qt-win-opensource-4.8.0-vs2010.exe和qt-vs-addin-1.1.10.exe
然后想运行...
-
QT,'HANDLE'没有命名的一个类型
网上说QT是,一处编写,处处编译,可是我在windows下写好了串口通讯程序,在linux下编译时,却提示'HANDLE'...
-
关于QT的授权
一直都没搞懂QT的商业授权是怎么回事,请问如果我用QT在电视机机顶盒上开发一款基于QT的播放器,如果我没有获得商业授...
-
有关QTable制作表格保存问题
我使用的是QT2,需要制作一个表格,然后输入数据后保存。我源码在以下网址,set.zip压缩包中http://www.qt...
-
Qt怎样禁止用户最大化窗口
用Qt写一个窗口,如果继承QDialog,那窗口就只有关闭按钮,如果继承QWidget,那么就有关闭,最大化,最小化三个按...
-
QT4.4.3版本窗体透明后界面失去焦点无法响应键盘事件
用的是Qt4.4.3版本,窗体透明的方法如下:
C/C++ code
QPalette pal = pale...
-
QT4下载到开发板的问题
友善的2440开发板,按照一些教程装好了QT4在Linux下的开发环境。
用NFS启动开发板,把arm版编译出来的应用程...