タイトル : Re^4: byte型として構造体のデータを扱いたい 投稿日 : 2010/01/21(Thu) 11:00 投稿者 : ジョジョ
レスありがとうございます。 度重なるミスをして申し訳ありません。 > > > > wk_msg.size = 5 + 8 '5文字+integer > > > > wk_msg.moji = "abcdef" > > 文字は6文字でした。Encoding.GetBytesで可変にできますね。 > > integerは.net2008をみていたようです。すいません。 > Integer 型=System.Int32 構造体です。 > > 2008 (.NET Framework 3.5) であっても、 > Integer のサイズは 4 バイト(32 bit)ですよ。 大変申し訳ありません。何を血迷ったか大きすぎる間違いでした。 ReDim send_msg_size() as byte = BitConverter.GetBytes( wk_msg.size ) これだと wk_msg.size = 256 の値は 00 00 01 00のイメージで send_msg_sizeでは 00 01 00 00になっているようですが上位と下位をいれかえる必要が あるのでしょうか? > > send_msg = send_msg_size & send_msg_moji > > (send_msgの領域省略しました。現在環境がないなかで申し訳ありません) > > で結合ができるという感じですかね。 > Byte 配列を & 演算子で連結する事はできないので、 > Array.Copy メソッドで、send_msg に転記しましょう。 ReDim send_msg_size() as byte = BitConverter.GetBytes( wk_msg.size ) ReDim send_msg_moji() as byte = Encoding.GetBytes( wk_msg.moji ) Array.Copy( send_msg_size, send_msg, send_msg_size.length) Array.Copy( send_msg_size, send_msg_moji, send_msg_size.length) Array.Copyはスタートポジションはどのようになっているのでしょうか? > あるいは、 > Dim buf As New List(Of Byte)() Listはどういう型を記述すればいいのでしょうか? > buf.AddRange(BitConverter.GetBytes(wk_msg.size)) > buf.AddRange(Encoding.ASCII.GetBytes(wk_msg.moji)) > Dim send_msg() As Byte = buf.ToArray() > という方法もあります。 |