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

タイトル 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()
> という方法もあります。

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

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