問題タブ [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.
c++ - QDatastream が遅すぎますか?
QSharedmemory を使用して、2 つのプロセス間で複数の画像 (実際にはビデオ) を渡そうとしています。現在、QImages の QVector をシリアル化し、これをメモリにコピーしています。これは機能しますが、シリアル化の手順に約 99% の時間がかかります。プラットフォームに依存しない方法でこれをより速く行うにはどうすればよいですか?
送信するための私のコード:
c++ - Qt5 で QDataStream に書き込まれたバイト数をカウントする
私のコードでは、を使用してネットワーク経由で送信するデータを準備していますQDataStream
。準備の途中で、その時点で準備された正確なバイト数を知りたいです。どうやってやるの?
例:
qt - QDataStream のチューニング
ファイルからバイナリ データを処理するプログラムがあります。
コードの概要は次のとおりです。
このファイルには、バイナリ データとテキスト データが混在しています。ファイルの内容は QDataStream を使用して読み取られます。
QDataStream からのデータをさまざまなデータ型に読み取ることができます。例えば
素敵で簡単。全体として、0x68 0x48 などの区切り記号を表す特定の値に到達するまで、ファイル データをバイト単位で読み取ります。この時点で、次のデータの種類 (floats、String、int など) を示す次の数バイトを取得し、必要に応じて抽出します。
したがって、データは次のように処理 (アウトライン) されます。
この埋め込みデータの一部は圧縮されている可能性があるため、
QDataStream の便利さにより、特定の型へのマッピングだけでなく、エンディアンの処理も簡単になるという点で、データの読み取りが容易になりますが、速度が犠牲になっているようです。この問題は、処理が再帰的であるという事実によって悪化します。読み取られるデータ自体に、同じ方法で読み取って処理する必要がある埋め込みファイル データが含まれる可能性があります。
より高速な代替手段はありますか?その場合、エンディアンを同じ方法で処理するにはどうすればよいですか?
c++ - QDataStream 演算子のオーバーライドとリンクの問題を修正する
QDataStream の >> および << 演算子をオーバーライドする必要があります。私のコードがあります:
コンパイルが成功した後、次のような誤解を招くエラーが発生します。
2 つの質問があります。
- << および >> 演算子を正しく機能させるには、どのように定義する必要がありますか。
- このコードが正しい場合、リンク エラーを修正する方法。
回答のTnx。
c++ - QUdpSocket と QDatastream を使用して UDP データグラムを送信する
プログラムは .txt ファイルを送信できます。ただし、他のファイルタイプは破損します。フレームを保存するデータ型と関係があると思います。長い投稿で申し訳ありませんが、どこに問題があるのか わかりません。
私はQTだけでなくC ++も初めてです。QUdpSocket を使用して、ネットワーク経由でファイルを別のコンピューターに送信する必要があります。このコンピューターは、データグラムを正しい順序で再構築し、ファイルとして保存する必要があります。(QFile は、シーケンス番号ヘッダーを使用してセグメントに分割し、これらの番号に従って再構築する必要があります)。セグメントは、シーケンス番号とともに QByteArray 配列に格納されます。
次に、QByteArray 配列が qudpsocket 経由で送信されます
再構成コードは次のように機能します
すべてのフレームが受信された後
c++ - QDataStream によるバイト配列の読み取り/書き込み
私はバイト画像配列を持っています。このバイト配列を別のバイト配列に書き込み、2 番目のバイト配列に別の値を追加したいのですが、このコードを使用していますが、何か問題があると思います。
ds>>codeをトレースすると、値は常に 0 ですが、実際には値が 20 である必要があり、ds.resetStatus();を使用しました。しかし、それは再び0値を返します
arrays - QPixmap.loadFromData() は QByteArray から画像をロードしません
あるユーザーから別のユーザーにスクリーンショットを送信するソケットベースのプログラムを作成しています。送信する前に、スクリーンショットをバイト配列に変換する必要があります。スクリーンショットを に変換した後QByteArray
、配列の先頭に 4 バイトを挿入して、それが画像であることを示します (テキストなどではなく、画像であることを示す数字 20 です)。
ソケットを介してバイト配列を他のユーザーに送信した後、受信時に最初の 4 バイトを読み取って、それが何であるかを確認します。写真だったので、ラベルに表示するQByteArray
ために から に変換します。QPixmap
私はそれをロードするために使用secondPixmap.loadFromData(byteArray,"JPEG")
しますが、画像をロードしません。
これは私のコードのサンプルです:
c++ - QTableWidget からシリアル化するときの CSV ファイルの不要な文字
からデータを読み取りQTableWidget
、CSV ファイルに保存しようとしています。
ファイルに保存された値は正しいですが、すべての行の最初の列の先頭に不要な文字があります。
これが私のコードです:
保存されたファイルは次のようになります。
Qt 5.4.0 を使用しています。
ここで何か助けていただければ幸いです。