シリアル送信での電文作成


困ってます  2009-03-04 23:29:02  No: 145808  IP: 192.*.*.*

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)

何か間違っていたら教えて頂けないでしょうか?

編集 削除
オショウ  2009-03-05 08:08:10  No: 145809  IP: 192.*.*.*

全角文字を、シフト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進数文字列に変換して内容を確認するとかが必要
かと思います。

以上。

編集 削除