问题标签 [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.
qt - QbyteArray 数据拷贝
我有两个QByteArray
和。sData
dData
我想将n
字节从ie的位置复制x
到dData
ie的&dData[x]
位置y
。sData
&sData[y]
在 C 中,数组复制由memcpy(&dData[x], &sData[y], n);
如何QByteArray
在 Qt 中复制上述数据?
c++ - QFile 到 QByteArray 保存文件名
我有一个QFile
需要通过局域网发送的。为此,我通过以下方式将其转换QFile
为QByteArray
:
当我收到它时,我可以使用以下方法轻松转换它:
但是,我想知道文件名(例如Document.docx
)或至少知道它的扩展名,以避免强迫用户确切知道他收到的文件类型。
理想情况下,当文件上传时,会提示接收方用户保存文件。例如:
- 发件人发送
Document1.docx
- 接收者会收到提示,如果他/她想保存
Document1.docx
- 根据接收者的决定,
Document1.docx
保存在接收者的工作站中。
所以,我的问题是:有什么方法可以知道 aQFile
转换为 aQByteArray
然后再次(在另一台计算机中)转换为 a 时的名称和扩展名QFile
?
c++ - 将 QByteArray 附加到 QDataStream?
我必须QByteArray
用不同的数据填充 a 。所以我正在使用QDataStream
.
但是,我还想将 QByteArray 附加到buffer
.
我错过了什么?
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-我附上了一张图片以及建议代码的输出(突出显示)。
c++ - Replace 方法改变 QByteArray 的大小
我想操作存储在 QByteArray 中的 32 位写入命令。但让我感到困惑的是我的 QByteArray 改变了大小,我无法弄清楚为什么会发生这种情况。
我的代码:
生成:
我期望以下输出:
使用test.replace(3,1,&last2,1)有效,但我不明白为什么我上面的代码没有给出相同的结果。
此致!
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”。
这是我的代码片段:
阅读文件:
/li>获取长度
/li>
输出是:
FFFFFFBE -66
我如何才能将其读取为 190?
搜索后我尝试了各种方法,但似乎没有任何效果,这表明我的代码中缺少一些基本的东西。
当前进行转换的代码是:十进制
c++ - std::string 不能识别大于 127 的字符
我已经用 ascii 代码风格做了一个 tansmition,一切都很好,直到我进行了 crc 检查。在我的项目中 crc 是一个字节。在我的接收器中,我将所有内容都放入 std::string 中,如果 crc 小于 127,则一切正常。但是,如果我的 crc 大于 127,那么向我的 std::string 添加附加数据 - 下面的示例。
我究竟做错了什么?我以为127上面有特殊字符,但现在我迷路了......
编辑:我试图让它变得简单,但我当然可以给你代码:)。
然后在不同的线程中我处理缓冲区数据。问题是当我发送一个大于 127 的字节时 - 在这种情况下,一些额外的字符会附加到我的缓冲区(如第一个示例中)。
qt - QByteArray 转换的 Qt 优化
我编写了一个函数来将一些二进制数据的十六进制字符串表示(如 x00)转换为数据本身。
如何改进这段代码?
c++ - QFile 不读取文件
我正在尝试使用 QFile (Qt5) 读取一个简单的文本文件,但奇怪的是它不起作用。下面是我的代码。
QDebug 总是得到一个空字符串。#
c++ - 从 QByteArray 访问 UDP 数据报
我不确定我是否了解 QByteArray 对象的工作原理(它是原始字符数据,对吧?),但这是我的困境:
我正在尝试从函数中的 UDP 数据报访问数据。代码:
这为其他传入数据释放了缓冲区,并允许我处理我当前的数据报。
据我所知,我必须将数据存储在 QByteArray 中,因为任何其他尝试都使编译器与我非常矛盾。无论如何,存储在 QByteArray 中的数据是我需要访问的一系列无符号 16 位值(命令)。是否可以直接从 QByteArray 中读取,如果可以,如何读取?我没有运气这样做。如果没有,将整个数组转换为 quint16 数组以便我可以处理传入数据的最佳方法是什么?谢谢大家!!