問題タブ [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 : dot; }

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

/* リング */ [propertyID="2315????"] { lineType : thickline;
[hasInnerRing=true] { innerLineType : 細線; } }

だから私は常にルートタグpropertyIDとそれに対応するfillColorlineTypeなどの属性を持っています..

このデータはすでに構造化されていると仮定しましょう (属性は子など) .. としましょう:

  1. このような QStandardItemModel で上記の例がある場合、このモデルを効率的にシリアル化された方法でファイルからファイルに書き込むにはどうすればよいでしょうか? (JSON や XML の推奨事項は使用しないでください)

  2. ファイルの途中にある 1 つの propertyID に興味があると仮定すると、前の propertyID を解析せずにアクセスできますか? 前もって感謝します!

0 投票する
1 に答える
156 参照

c++ - 解析された 2 つのファイルを比較し、最初のファイルに違いを追加する方法は?

2 つの .dat ファイルがあるとします。1 つは私のコンピューターにあり、もう 1 つは地球の反対側にありQDataStreamます。

データは同じ方法で解析されます。最初にある種の ID が解析され、次にその特定の ID に関連付けられたオブジェクトが解析されます。

しばらくすると、最初の例は次のようになります (説明用であり、構文的に正しくありません)。

しかし、2つ目はまだ追いついていません。

両方のファイルを取得して、それらの違いを検出し、2 番目のファイルには存在しないが 1 番目のファイルには存在するファイルを「融合」することは可能ですか?

明らかに、これはファイルの内部を抽出し、コンテンツを個別に分類し、それらを比較するなどの関数を作成することで実現できますが、コンテンツを個別に解析することなく、ファイル自体を処理するだけでこれを行う方法はありますか?

0 投票する
1 に答える
3280 参照

qt - Qdatastream を使用してソケットからデータを読み取り、ファイルに書き込みます

QTcpSocket を介してバイナリ データ (フロートを読み取る) を受信し、QDatastream を使用して Qfile に書き込む必要があります。しかし、QDataStream に問題があります。次のように、私はこの方法でしか達成できません:</p>

2 つの Qdatastream を作成し、それを読み取った後に float を Qfile に書き込む必要があります。つまり、より効率的にするために、1 つの Qdatastream で直接ストリームを読み取ってファイルに書き込むことができます。

QDataStream の使用について盲点がありますか?誰でも私の問題を解決するのを手伝ってくれますか?どうもありがとう。

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 に答える
481 参照

c++ - datastream を使用して char を QbyteArray にコピーすると、余分なバイトが含まれます

問題の概要:
OS : Ubuntu

qtユーティリティを使用してリモートマシンからビデオデータを受信し(リモートマシンはgstreamerを使用してライブデータを送信しています)、そのデータをポート5000に書き込みます.

ポート 5000 はすでに別の gstreamer ユーティリティにバインドされています。このユーティリティは、ポート 5000 をリッスンし、データをビデオ ストリーミングに変換します。明らかに物事は正確に機能しておらず、ビデオを見ることができません。だから私は2つの質問があります:

1) Qt ユーティリティでは、ポートが gstreamer ユーティリティにバインドされていますが、ポート 5000 に書き込むことは合法ですか。

2) サードパーティのライブラリとその API を使用して、外部ソースからデータを受信して​​います。データは文字の配列に格納されます。それをqbytearrayに変換すると、qbytearrayはcharバッファと同じサイズになります。例

しかし、QDataStream を使用すると、QbyteArray は 4 バイト余分に取得されます。以下に示すコード

QbyteArray が余分な文字を取得した理由を知りたいのですが、データをシリアル化してポート 5000 に転送する必要がありますか?

0 投票する
1 に答える
102 参照

c++ - ファイルから読み取ったデータは、ファイル サイズよりも多くのメモリを消費します

次の方法でいくつかのデータをファイルに書き込みました。

ファイルは最終的に 484MB になりました。その後、私はループでそれを読みました:

この読み取りループの実行中に、タスク マネージャーでプログラムが約 1300MB のメモリを消費し始め、その後、「In file text\qharfbuzzng.cpp, line 626: Out of memory」というエラーが表示されます。私の質問は次のとおりです。プログラムが 2 倍以上のサイズのファイル メモリを使用し始め、それをチャンクで読み取る必要があるのは正常ですか、それとも何か間違っていますか?

0 投票する
1 に答える
488 参照

qt - QDataStream から QDateTime を読み取り、null を与える

QDataStream オブジェクトに読み込まれるデータの次の領域があります。

これは日付/時刻に変換されます。25-05-2014 15:40:26

私はこれを QDateTime 変数に読み込むために以下を使用しようとしています:

代わりに、時間内に null/空白になります。出力は次のとおりです。