- PR -

VB6でMSCommの受信データをByte配列に入れるには?

1
投稿者投稿内容
rabi
会議室デビュー日: 2006/06/07
投稿数: 14
投稿日時: 2007-07-19 16:36
何度もお世話になります。
バイナリーデータをよく扱う人にとっては、容易な事かもしれませんが
ご教示の程宜しくお願い致します。

現在、シリアル通信で、受信データをByte配列に入れて処理をしようとしています。

Dim WORK_STR As String
Dim WORK_Byte() As Byte

WORK_STR = Form1.MSComm1.Input
WORK_Byte = WORK_STR →@
:
:

としています。
受信したデータは、Hexで
06 02 00 02 00 66 00 9C 4E
なのですが、
@の処理で、Byte配列に入れた時
06 00 02 00 02 00 00 00 66 00 00 00 9C 00 4E 00
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
の様に1byteを2Byte文字として処理してしまいます。

とにかく、なんとかしたい!
と、思い、下記の様にしてみてもだめでした・・・・。onz

Dim WORK_STR As String
Dim WORK_Byte() As Byte
Dim WORK_int As Integer
For cnt = 0 To Len(WORK_STR) - 1 Step 1
Work_int = AscB(MidB(WORK_STR, cnt + 1, 1))
Work_int = LenB(WORK_STR)
WORK_Byte(cnt) = Work_int
Next cnt

 そのままの形でByte配列に入れたいのですが、どのように
処理したらよいのでしょうか??
誠に申し訳御座いませんがご教示の程宜しくお願い致します。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-07-19 16:55
2バイト文字になっている…というか、StringがUnicode(UTF-16)で格納されてるからでは?
StrConvすることになるかと。
rabi
会議室デビュー日: 2006/06/07
投稿数: 14
投稿日時: 2007-07-19 19:45
返事が遅れてすみません。
結果、MSCommの受信設定があり、そこをバイナリーモードとする事で解決しました。
MIOさん回答有難う御座いました。
1

スキルアップ/キャリアアップ(JOB@IT)