vb2005でシリアル通信の電文を作成しています。
バイト配列を宣言して使っています。
2バイト目から「でんわばんごう」の文字列(7文字)をバイト配列に
書き込みたいと思っています。
array.copyを使って以下のようにやってみましたが、うまく行くのか
そもそも使い方が合っているのか解りません。
Dim bytDest(256) As Byte
Dim bytSrc() As Byte
Dim strValue As String = "でんわばんごう"
bytSrc = System.Text.Encoding.GetEncoding(932).GetBytes(strValue.PadRight(20, Chr(&H20)))
Array.Copy(bytSrc, 0, bytDest, 1, 20)
何か間違っていたら教えて頂けないでしょうか?
全角文字を、シフトJIS・UNICODEのどちらにエンコードするかで
バイト数が異なります。
また、7バイトではありません。最低でも14バイトあります。
> bytSrc = System.Text.Encoding.GetEncoding(932).GetBytes(strValue.PadRight(20, Chr(&H20)))
> Array.Copy(bytSrc, 0, bytDest, 1, 20)
この部分ですが、bytSrc()をそのまま送信してはいけないので
しょうか?
bytSrc()を16進数文字列に変換して内容を確認するとかが必要
かと思います。
以上。