问题标签 [qdatastream]

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 回答
84 浏览

qt - 如何使用结构化 QDataStream 和序列化?

我有一个类似 CSS 的数据结构,如下例所示:

/* CSS 样式表文件 *.pss */

@include "otherStyleSheet.pss";

/* 注释 */ [propertyID="72100000"] { fillColor : #f3f1ed;
最小尺寸:5;线宽:3;}

/* 球体 */ [propertyID="2352??"] { lineType : dotted; }

/* 正方形 */ [propertyID="2115??"] { lineType : thinline; }

/* 环 */ [propertyID="2315??"] { lineType : 粗线;
[hasInnerRing=true] { innerLineType : 细线;} }

所以我总是有一个根标签propertyID及其相应的属性,如fillColorlineType等。

让我们假设,这个数据已经在一个..中结构化(属性是孩子等)让我们说:

  1. 当我在这样的 QStandardItemModel 中有上面的示例时,我怎样才能以序列化的方式有效地从文件写入该模型?(请不要使用 JSON,不要使用 XML 推荐)

  2. 假设我只是对文件中间的一个 propertyID 感兴趣,我可以在不解析前面的 propertyID 的情况下访问它吗?提前致谢!

0 投票
1 回答
156 浏览

c++ - 如何比较两个解析的文件并将差异附加到第一个?

假设我有两个 .dat 文件;一个在我的电脑上,另一个在地球的另一端——数据不断地通过QDataStream.

数据以相同的方式解析——首先是某种 ID,然后是与该特定 ID 关联的对象。

过了一会儿——第一个可能看起来像这样(说明性的,语法上不正确):

但第二个还没有完全赶上。

是否可以同时获取两个文件——检测它们之间的差异,然后在第二个文件中缺少但第一个文件中存在的文件中“融合”?

显然,这可以通过编写一个函数来提取文件的内部结构、单独对内容进行分类、比较它们等等来实现——但是有没有办法通过只处理文件本身来实现这一点,而不必单独解析内容?

0 投票
1 回答
3280 浏览

qt - 使用 Qdatastream 从套接字读取数据并写入文件

我需要通过 QTcpSocket 接收二进制数据(读取浮点数)并使用 QDatastream 将它们写入 Qfile。但是我在使用 QDataStream 时遇到了一些问题。如下,我只能用这种方式实现:</p>

我必须创建两个Qdatastream并在读取后将float写入Qfile。我的意思是,我可以通过一个Qdatastream直接读取流并将其写入文件以提高效率。

我对QDataStream的使用有一些盲点吗?任何人都可以帮助我解决我的问题吗?非常感谢。

0 投票
2 回答
2326 浏览

qt - 如何将 QAbstractItemModel 序列化为 QDataStream?

我已经建立了一个 QAbstractItemModel 并用数据填充了它。我的 QTreeView 小部件正确显示该模型中的每个数据。

现在,我想将序列化的模型存储在二进制文件中(当然后来将该二进制文件加载回模型中)。那可能吗?

0 投票
3 回答
351 浏览

c++ - 用自己的类序列化 QHash?

我有一个QHash<const QString id, MyClass>, 而 MyClass 只是一些带有 getter 和 setter 的 QString quint8 值的集合。MyClass 也有一个QDataStream &operator<<(QDataStream &ds, const MyClass &obj)被覆盖的,那里。

要序列化我使用:

现在,我对另一个感到困惑:

我会知道那个序列化 QHash 的长度吗?

0 投票
1 回答
398 浏览

serialization - 如何在单个文件中序列化 QHash 和 QMap?

我有一个 QHash 和一个单独的 QMap。我可以单独序列化它们。但我想在一个文件中对它们进行序列化:

最后一次读取(此处为 myHash)始终为空。当我切换排序

所以这里 myMap 是空的。

如何同时序列化两者?

0 投票
1 回答
481 浏览

c++ - 使用数据流将 char 复制到 QbyteArray 包含一些额外的字节

问题概述:
操作系统:Ubuntu

我正在使用 qt 实用程序从远程机器接收视频数据(远程机器正在使用 gstreamer 发送实时数据)并将该数据写入端口 5000。

端口 5000 已绑定到另一个 gstreamer 实用程序。此实用程序侦听端口 5000 并将数据转换为视频流。显然事情并不完全正常,我无法观看视频。所以我有两个问题:

1)使用 Qt 实用程序,尽管端口绑定到 gstreamer 实用程序,但写入端口 5000 是否合法。

2)我正在使用 3rd 方库及其 api 从外部源接收数据。数据存储在字符数组中。如果我将其转换为 qbytearray 则 qbytearray 具有与 char 缓冲区相同的大小。例子

但是如果我使用 QDataStream ,那么 QbyteArray 会得到 4 个额外的字节。代码如下所示

我想知道为什么 QbyteArray 有额外的字符,我是否需要序列化数据以将其转发到端口 5000?

0 投票
1 回答
102 浏览

c++ - 从文件读取的数据比文件大小占用更多的内存

我通过以下方式将一些数据写入文件:

该文件最终等于 484MB。之后我循环阅读它:

当这个读取循环正在运行时,我看到在任务管理器中我的程序开始占用大约 1300MB 的内存,之后我收到“在文件 text\qharfbuzzng.cpp,第 626 行:内存不足”错误。我的问题是:程序开始占用 2 倍以上的文件内存是否正常,我应该分块读取它还是我做错了什么?

0 投票
1 回答
488 浏览

qt - 从 QDataStream 读取 QDateTime 给出 null

我将以下数据区域读入 QDataStream 对象:

这应该转换为日期/时间:25-05-2014 15:40:26

我正在尝试使用以下内容将其读入 QDateTime 变量:

相反,我及时得到空/空白。输出是:

0 投票
0 回答
222 浏览

c++ - 如何将 QDataStream 作为参数传递给 Qt5 中的信号

我正在编写一种方法来解析网络数据包的形式QByteArray。它将使用提取一些值QDataStream,然后希望将其传递QDataStream给另一种方法以进行进一步处理(以避免QDataStream稍后再制作另一个方法的开销)。

这是我的代码:

由于我使用的是信号,因此不鼓励通过引用传递,因为剩下QDataStreamQ_DISABLE_COPY唯一选择是通过指针传递。但是如果我决定通过指针传递它,我怎样才能有效地管理内存呢?(只删除一次)以后?