問題タブ [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 投票する
1 に答える
1413 参照

qt - qbytearrayのquint16

qbytearrayの最初の位置にquint16を追加する必要があり、それを読んだ後:どうすればよいですか?

私はこれを試しました:

どうもありがとうございます

私は追加しました:

しかし、私はそれを読むように知らない

ありがとう

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

c++ - QDataStream and quint16 serialization weirdness

I've written a small Packet class consisting of some quint8's, quint16's, QByteArrays and a quint32 that has a toByteArray() method to return a serialized version of the object, conforming to a protocol specification.

Packet Spec

  • Protocol identifier [4 byte] (Version 1 = 0x74697331)
  • Session ID, a MD5 hash salted with the timestamp + user IP. [16 bytes]
  • Command ID [1 byte]
  • Argument Size [2 byte]
  • Args [1-8,192 bytes]
  • CRC-B (X-25) [2 bytes]

Most of the data serializes fine. The exception is the last quint16 (my crc), which seems to get clobbered.

I don't believe the problem is in the declaration of my class. I've re-created the serialization function in this code sample which demonstrates the bug I'm receiving, without my packet class. (But the same final QByteArray layout)

(More) Minimal reproducible testcase

Here's the output I get:

73 69 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 e 0 74 65 73 74 0 31 32 33 34 71 77 65 72 0 ffffffffffffffa2 ffffffffffffffb5

Those last two should be 0xa2, 0xb5. I guess it's some sort of alignment issue. Is there any way to correct this while still conforming to the packet spec?

0 投票する
3 に答える
1334 参照

c# - Azure の blobId 用に C++ で int をリトル エンディアン形式のバイトに変換する

Azure (http://msdn.microsoft.com/en-us/library/dd135726.aspx) の base64 エンコーディングを使用していますが、必要な文字列を取得する方法がわかりません。私は以下を行うC#でこれを行うことができます。

(LINQPadで)出力するもの:

Qt/C++ でいくつかのアポラチを試しましたが、すべて間違った値を返しました。

C# 版と同じ結果を得るにはどうすればよいですか?

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

c++ - qDebug がバイナリ データを含む完全な QByteArray を出力しない

QByteArray一部がバイナリで一部がASCIIのGPSから受信したデータを保存する必要があります。デバッグの提案のために何が受信されているかを知りたいので、次のように書いていqDebugます。

そして、コンソールに次のようなメッセージが表示されます。

しかし、突然、新しい印刷の反復を取得します。データはまだ消去されておらず、追加されています。したがって、新しいメッセージのサイズは、たとえば 3204 で、以前の印刷より明らかに大きくなっています。ただし、まったく同じように印刷されます (ただし、ブラケット間の新しいサイズ 3204 を使用)。前のメッセージと同じように、新しいデータは出力されません。

qDebug制限があるため、または終了文字などに達したために印刷が停止すると思いますが、推測に過ぎません。

この動作のヘルプまたは説明はありますか?

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

newline - Qt QTcpSocket QByteArray/QStringの特殊文字と適切な構文の問題

Qtのいくつかの特殊文字に問題があります。2つは引用符と改行です。telnetを使用してサーバーに接続していますが、サーバーは何らかの理由で入力の最初と最後に自動的に引用符を付けます。引用符と改行の両方を削除するのに問題があります。

改行を置き換える際の問題を以下に説明します。

telnetからの私の入力:こんにちは

プログラムが改行を置き換えた後: "ello(引用符付きの通常の出力は" Hello "になります)

また、引用符を置き換えてもまったく効果はありません。正規表現であるため、二重の円記号も使用してみましたが、どちらも1つある場合と同じ問題があります。助けてくれてありがとう。

編集:これはqDebugのフォーマットであり、Telnetなどを使用した結果ではないことが判明しました。

0 投票する
2 に答える
8590 参照

c++ - デバッグ中にQtオブジェクトQByteArrayの内容を確認するにはどうすればよいですか?

私のプログラムは、QByteArray型のいくつかの変数を使用して、データ(バイト)を格納しています。そのバイトはおそらく'\0'、1、...のような特殊文字であるため、デバッグ時に特殊文字の後のすべての要素を表示することはできません。std :: vectorを使用すると、すべての要素を表示できます。QByteArrayを使用する必要がありますが、デバッグ時にこの変数のすべての要素を表示できません。助けて、plz!ありがとう!

例:QByteArray bytes(4、'\ 0'); さて、デバッグすると、「」が表示されます。しかし、私は「'\ 0'、'\ 0'、'\ 0'、'\0'」またはこのようなものを見たいです。

QDateTimeでも同じ問題があります。しかし、私はこのヘルプによって解決しました:http ://www.qtcentre.org/threads/32336-View-QDate-and-QDateTime-in-VisualStudio-debugger

このリンクは役立つかもしれませんが、これは私の問題を解決しません:http: //qt-project.org/wiki/IDE-debug-helpers

例:

0 投票する
2 に答える
757 参照

qt - QT QBytearray カウント文字

QByteArrayたとえば、この配列に含まれる「*」の数QByteArrayを知りたいとします。

0 投票する
3 に答える
2459 参照

qt - Qt 配列 QString

selectallクエリでdbから結果を取得し、結果を配列に保存してソケットで送信したい。

このエラー バイナリ '=' が表示されます: タイプ 'const char [16]' の右側のオペランドを取る演算子が見つかりません

0 投票する
3 に答える
15787 参照

c++ - 4バイトのみを使用してQByteArrayに整数を格納する

整数を表すには 4 バイトかかります。を 4 バイトしか使用しないように格納するintにはどうすればよいですか?QByteArray

  • QByteArray::number(..)整数を文字列に変換するため、4 バイト以上を占めます。
  • QByteArray((const char*)&myInteger,sizeof(int))また、動作しないようです。
0 投票する
2 に答える
6864 参照

c++ - QByteArray に数値を追加する

私はQbyteArray 名前を持っています"B2"

そして、これに のような 2 バイトの数値を追加したいと思い300ます。

しかし、私がそれをするmybyte.size()3byte!!!!

私のコードは:

2byteにしたいです。

これは私の出力です: