问题标签 [qbytearray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7058 浏览

c++ - Qt quint32 Little-Endianness with QDataStream

I'm using QDatastream to populate a quint32 array from a QByteArray on an Little-Endian ARM machine like below:

The problem is with byte order. I need to grab the last 4 bits of the 32bit field in headerBuffer[113], so I tried to AND that entry in headerBuffer with 0xf. The expected value to check against this field is "3". However, this AND operation gives me "a", as shown below. If I swap the bytes so that the entry is "0x1a13 & 0x000f", then I get "3". You can see below a few other examples of the values that are expected, versus what I am seeing. So, I am setting the ByteOrder of the QDataStream to LittleEndian, but still not getting the desired results. What am I doing wrong? How can I get 0x1a13 instead of 0x131a? Thanks!

0 投票
1 回答
2215 浏览

c++ - 最佳实践:如何解释/处理 QDataStream?

我需要处理由另一个非 Qt 程序创建的定义结构的流式二进制数据 (QDataStream)。我想知道解释这些数据的最佳做法是什么。假设数据在电报中是结构化的(提供了结构定义),如下所示,不能由我自己更改:

4字节头| 2字节序号| 1 字节校验和 | 10字节数据

我看到以下在“电报”类中处理数据的可能性:

  1. Telegram 类有一个私有的 QByteArray 成员变量。使用 readRawData 方法一次从流中读取所有数据(17 个字节)并将其存储在其中。变量是用公共方法访问和解释的,比如return (array.at(4)<<8) + array.at(5)序列号,不是很优雅。
  2. Telegram 类有一个与结构联合的公共 char[17] 成员变量。使用 readRawData 从流中读取所有数据并存储在其中。之后访问变量时,这仅在结构上完成,就像telegramstruct.squenceNumber我看到这种方法的潜在问题一样,如字节序和填充。
  3. Telegram 类对于每个电报字段都有私有成员变量,例如QString strHeader. 从流中读取电报时,数据直接存储在这些变量中。对于基本类型,使用 readRawData 或 operator>> 完成读取。

代码应该尽可能快,因为要处理大量数据。我在带有 MinGW 的 Windows 上使用 Qt 5.0.1。

我的问题:

  • 上述解决方案中哪一个是最佳实践和快速,还是有更好的方法?
  • 像在 1 中一样一次读取是否比在 3 中读取 4 字节、2 字节、1 字节……更快?
  • 使用 1 和 3,我不能使用提供的具有已定义结构的头文件,这是不好的做法吗?
  • 是否有可能与 QByteArray 和结构建立某种“联合”?
  • 如何使用解决方案 3 轻松计算校验和?

非常感谢您的意见和提示。

克里斯

0 投票
1 回答
351 浏览

qt - QBitArray 大小在尝试用流运算符填充后保持为零

为什么 QBitArray 的大小保持为零?我正在使用 Qt 5.0.2。

0 投票
1 回答
602 浏览

qt - 序列化 QFileInfo

我有一个文件列表,我想序列化每个文件的文件信息并通过套接字发送。

我看到可以像这样进行序列化,例如:

但我找不到对QFileInfo. 是否可以序列化这种Qt数据类型?有什么方法可以轻松实现这种类型的完整序列化,或者我只需要将数据分解为原始单元?

0 投票
1 回答
3095 浏览

c++ - QT5 C++ QByteArray XML 解析器

我得到以下xml

通过一个将其保存在名为 Data 的 QByteArray 中的套接字。

我想从 xml 中提取每个值并将其保存到不同的变量中(有些是整数,有些是 QString)。

我的主要问题是我不知道如何区分 xml 字符串,比如<D>125</D>标签之间的值和 xml 字符串,比如<Te T210="10.00" T29="9... />标签字符串本身的值。

到目前为止,我的代码如下所示:

0 投票
1 回答
1621 浏览

c++ - QByteArray 删除前 4 行

我有 QByteArray 并且需要删除前 4 行。例如,我可以使用正则表达式来做到这一点,但这是更简单的方法吗?

UPD:我的 QByteArray 中的第一行(超过 4 行)是文本,最后是 '\n'。

0 投票
2 回答
1541 浏览

qt - Qt:在文件中的某个位置插入 QByteArray

是否可以QByteArray在文件中的某个位置插入a?例如,如果我有一个已经有 100KB 数据的文件,是否可以QByteArray在位置 20 处插入一个示例?之后要构建的文件是从 0KB 到 20KB 的数据序列,然后是QByteArray,然后是从 20KB 到 100KB 的数据序列。

0 投票
2 回答
1097 浏览

c++ - QByteArray 作为 blob 数据部分插入 sqlite3 (c++)

我正在尝试插入我下载的图像数据QNetworkAccessManageras QByteArray。我正在尝试将其插入QByteArray为 BLOB。我的表创建查询是

我像这样创建了插入查询,

但是当我打印它显示的查询时,

看到 BLOB 数据只有 4 长。并且有一些奇怪的值。包含的屏幕截图*imageData是, 在此处输入图像描述

图片长256*256*4。它是一个 jpeg 图像。

编辑:我遵循 CL 的代码,现在 IMAGE_DATA 列有一些钻石形状的字符。图片如下。 在此处输入图像描述

0 投票
2 回答
496 浏览

c++ - 5 字节 QByteArray 的内存占用。5 字节的 quint64 或 QByteArray 存储效率更高吗?

检查 QByteArray 的大小总是返回 4 个字节,我假设由于 Qt 中隐式共享数据:

总是打印 4

如何估计 QByteArray 的实际内存占用?这个问题的动机是有效地存储大量 5 字节标识符 - 它们可以分别存储为 quint64 (每个使用 8 个字节,因此浪费了 3 个字节),或者每个作为 QByteArray - 但我不知道如何在后一种情况下估计开销....

我想使用这些标识符作为 QMap 的键,所以它们都应该有自己的结构——一个长的 QByteArray 不起作用......

0 投票
1 回答
1263 浏览

qt - QByteArray 与 unsigned char* 速度

我想知道 QByteArray 和 unsigned char* 在速度上有什么区别吗?我的程序中有很多字节数组和复制操作,所以知道是否有任何区别对我来说很重要。谢谢