tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: byte型として構造体のデータを扱いたい
投稿日: 2010/01/20(Wed) 21:38
投稿者Hongliang
基本的に自分で各プロパティごとに変換していくことになります。
Integer なら BitConverter.GetBytes(ただしエンディアン固定なので注意)。
String なら Encoding.GetBytes が使えるでしょう。
末尾に NULL 文字が必要かとか、エンコーディングはどうするのかと言った問題はあります。
これらで取得したバイト配列の結合は、両者の長さを合計した配列を新しく作り、
それぞれ適切な位置にコピーするようにするのが分かりやすいでしょう。
VB の Dim や ReDim で配列を確保する際の添え字は「配列の最大インデックス」です。
配列は 0 からインデックスを持つため、Dim a(1) As Integer とした場合、
要素数は 2 になることに注意してください。(a(0) と a(1) の 2 要素です)

> wk_msg.size = 5 + 8       '5文字+integer
> wk_msg.moji = "abcdef"
abcdef は 6 文字ですし、Integer は通常 4 bytes です。
この 5 や 8 はどこから出てきたのでしょうか……?

> ReDim send_msg(8)
> のときにwk_msg.sizeをいれるにはどうのようにすればいいのでしょうか
先に String の方を Bytes に変換し、
それの Length + 4 を BitConverter で変換するようにすればいいんじゃないでしょうか?
そもそもユーザには size を見せる(プロパティにする)必要はなく、
送受信時のみ size を計算するだけで良さそうですけど。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。