有二进制文件 如下,
e225 093f cc04 003f 0000 0373 d9f4 028e 0246 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 00 00 00 00 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 00 22 22 22 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 e225 093f cc04 003f 0000 0373 d9f4 028e 0246 e225 093f cc04 003f 0000 0373 d9f4 028e 0246
均是以e2 25 作为一行数据的标识开始 后面跟的长度若干
现在我通过QFile 的readAll 将之都赋值到QByteArray 中,此时我想对这些二进制解析,首要要分割成若干个以e225开始的小的QByteArray,以0xe225开始到下一个0xe225前。请问应该如何处理?
在线等。谢谢
------解决思路----------------------
调用split方法试试。
------解决思路----------------------
参考:
QByteArray bytes;
QByteArray find("\xe2\x25", 2);
QList<QByteArray> list;
int idx = 0, from = find.length();
while((idx = bytes.indexOf(find, from)) != -1)
{
list << bytes.mid(from, idx);
from = idx + find.length();
}
------解决思路----------------------
个人觉得你还是先转成二进制的QByteArray然后处理更方便。
QByteArray hexbytes = readFromFile(.....);
QByteArray binData= QByteArray::fromHex(hexbytes);