问题标签 [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 投票
3 回答
18652 浏览

qt - QbyteArray 数据拷贝

我有两个QByteArray和。sDatadData

我想将n字节从ie的位置复制xdDataie的&dData[x]位置ysData&sData[y]

在 C 中,数组复制由memcpy(&dData[x], &sData[y], n);

如何QByteArray在 Qt 中复制上述数据?

0 投票
2 回答
12771 浏览

c++ - QFile 到 QByteArray 保存文件名

我有一个QFile需要通过局域网发送的。为此,我通过以下方式将其转换QFileQByteArray

当我收到它时,我可以使用以下方法轻松转换它:

但是,我想知道文件名(例如Document.docx)或至少知道它的扩展名,以避免强迫用户确切知道他收到的文件类型。

理想情况下,当文件上传时,会提示接收方用户保存文件。例如:

  1. 发件人发送Document1.docx
  2. 接收者会收到提示,如果他/她想保存Document1.docx
  3. 根据接收者的决定,Document1.docx保存在接收者的工作站中。

所以,我的问题是:有什么方法可以知道 aQFile转换为 aQByteArray然后再次(在另一台计算机中)转换为 a 时的名称和扩展名QFile

0 投票
3 回答
12121 浏览

c++ - 将 QByteArray 附加到 QDataStream?

我必须QByteArray用不同的数据填充 a 。所以我正在使用QDataStream.

但是,我还想将 QByteArray 附加到buffer.

我错过了什么?

0 投票
2 回答
1472 浏览

c++ - 在 Qt Creator 中将字符数据转换为 QString

在此处输入图像描述我正在开发一个 QT 项目(Qt Creator 5.2.1),该项目具有接收 UDP 数据报中的设备 IP 地址的功能。我需要将其转换为 QString 才能正确输出到屏幕。数据报作为整数数据存储在称为“缓冲区”的 QByteArray 中 - 因此 10.1.10.60 的 IP 地址在数据报中显示为 0A010A3C。我正在尝试将 IP 地址存储在 QString“nburn_data”中。目前我有这个代码来处理它:

当输出显示在屏幕上(GUI)我没有得到“10.1.10.60”,我得到“0A.01.0A.3C”

我尝试了几种不同的方法来正确转换,但似乎没有任何效果。有什么建议么?

编辑:@Laszlo Papp-我附上了一张图片以及建议代码的输出(突出显示)。相关代码和输出

0 投票
1 回答
2346 浏览

c++ - Replace 方法改变 QByteArray 的大小

我想操作存储在 QByteArray 中的 32 位写入命令。但让我感到困惑的是我的 QByteArray 改变了大小,我无法弄清楚为什么会发生这种情况。

我的代码:

生成:

我期望以下输出:

使用test.replace(3,1,&last2,1)有效,但我不明白为什么我上面的代码没有给出相同的结果。

此致!

0 投票
1 回答
9089 浏览

c++ - 在 Qt 中读取和解释二进制文件

试图在 Qt 中读取二进制文件。

该文件具有混合文本和二进制(十六进制)数据。

该文件包含长度由十六进制数字指定的数据区域。

例如:

00 01 BE 00 00 00 00 00 00 00 00 00 01

这里“BE”在文件中的偏移量 BB 处。BE 是 190,所以我向前滚动到上面的最后一个字节,我知道接下来的 190 个字节是我的数据。

几天来,我一直在努力让我的 Qt 代码将上面的字节值“BE”转换为数字 190。

我得到的最好的是“-66”,当然是190-256。

另一个例子是:

00 01 D3 63 00 00 00 00 00 00 00 01

应转换为 25555 十进制的“63D3”。

这是我的代码片段:

  1. 阅读文件:

    /li>
  2. 获取长度

    /li>

输出是:

FFFFFFBE -66

我如何才能将其读取为 190?

搜索后我尝试了各种方法,但似乎没有任何效果,这表明我的代码中缺少一些基本的东西。

当前进行转换的代码是:十进制

0 投票
2 回答
620 浏览

c++ - std::string 不能识别大于 127 的字符

我已经用 ascii 代码风格做了一个 tansmition,一切都很好,直到我进行了 crc 检查。在我的项目中 crc 是一个字节。在我的接收器中,我将所有内容都放入 std::string 中,如果 crc 小于 127,则一切正常。但是,如果我的 crc 大于 127,那么向我的 std::string 添加附加数据 - 下面的示例。

我究竟做错了什么?我以为127上面有特殊字符,但现在我迷路了......

编辑:我试图让它变得简单,但我当然可以给你代码:)。

然后在不同的线程中我处理缓冲区数据。问题是当我发送一个大于 127 的字节时 - 在这种情况下,一些额外的字符会附加到我的缓冲区(如第一个示例中)。

0 投票
2 回答
467 浏览

qt - QByteArray 转换的 Qt 优化

我编写了一个函数来将一些二进制数据的十六进制字符串表示(如 x00)转换为数据本身。

如何改进这段代码?

0 投票
2 回答
1802 浏览

c++ - QFile 不读取文件

我正在尝试使用 QFile (Qt5) 读取一个简单的文本文件,但奇怪的是它不起作用。下面是我的代码。

QDebug 总是得到一个空字符串。#

0 投票
1 回答
1113 浏览

c++ - 从 QByteArray 访问 UDP 数据报

我不确定我是否了解 QByteArray 对象的工作原理(它是原始字符数据,对吧?),但这是我的困境:

我正在尝试从函数中的 UDP 数据报访问数据。代码:

这为其他传入数据释放了缓冲区,并允许我处理我当前的数据报。

据我所知,我必须将数据存储在 QByteArray 中,因为任何其他尝试都使编译器与我非常矛盾。无论如何,存储在 QByteArray 中的数据是我需要访问的一系列无符号 16 位值(命令)。是否可以直接从 QByteArray 中读取,如果可以,如何读取?我没有运气这样做。如果没有,将整个数组转换为 quint16 数组以便我可以处理传入数据的最佳方法是什么?谢谢大家!!