【发布时间】:2016-12-23 09:05:55
【问题描述】:
我有一个程序可以在单个 QByteArray 中接收完整的块。该块被“分割”为“回车”,后跟“结束行”(\r\n)。在所有这些垃圾的中间,我有一个约会。尤其是在第三行(在第二行和第三行\r\n 之间)。
每次我尝试从 ByteArray 中提取这个日期时,我都会得到一些随机的垃圾。 QByteArray 如何更精确?
在不更改我的 ByteArray 的情况下提取此日期的最佳方法是什么?考虑到我不知道日期,甚至可能是错误的格式。
为了便于理解,这里是我的 ByteArray 的一个例子:
RandomName=name\r\nRandomID=ID\r\nRandomDate=日期\r\nRandomTime=time\r\nRandomWhatever=whatever(...)
编辑:
抱歉英语不好。
假设我收到了以下短信:
ProgName = 马库斯
程序 ID = 180
ProgDate = 15.01.16
ProgTime = 13:39
(更多信息)......
但是,这些信息对我没有任何用处……除了日期。一切都存储在一个 QByteArray 中(我们称它为“ba”)。所以这是我的 ba:
ProgName(空格)=(空格)Marcus\r\nProgID(空格)=(空格)180\r\nProgDate(空格)=(空格)15.01.16\r\nProgTime(空格)=(空格)13 :39\r\n(继续)
我的问题是:在 QString 中存储“15.01.16”(“ProgDate”)而不改变或破坏 ba。
【问题讨论】:
-
如何将字节转换回字符?似乎您需要做的就是扫描 QByteArray 以获取第二个“\r\n”的索引,获取 '=' 字符的索引,然后将每个字符复制到下一个“\r\n " 字符对...
-
您将所有内容描述为“随机垃圾”。你的输入是随机垃圾,你的输出是随机垃圾,中间的东西是随机垃圾。编辑您的问题以显示您尝试过的内容,显示您得到的结果,并显示您期望的结果。
-
@user2647513 是的,我尝试这样做,但最终得到了错误的 ByteArray 部分。很可能是我自己对函数的使用不当
-
@BarmakShemirani 对不起。我会在编辑时尝试更清楚一点
标签: c++ qt qbytearray