掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCOMMでWバイトの半分だけを送信するには? (ID:104700)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あんちゃんさんいつもありがとうございます。 お礼が遅れて申し訳ございません。 いろいろ試してみたのですが、ようやく解決しました! やはり、MSCommでの1バイト送信はバイト配列に格納することでした。 半角英数+Wバイトの混合文字列を、vbFromUnicodeに変換し、 それをバイト配列でしかも16進数に変換・・・ 以下のコードで可能になりました。 ********************************************************** strBuff = (半角英数+Wバイトの混合文字列) strSendWork = strConv(strBuff,vbFromUnicode) If LenB(strSendWork) >= 256 Then strBuff = LeftB$(strSendWork, 256) strSendWork = MidB$(strSendWork, 257) Else strBuff = strSendWork End If Length = LenB(strBuff) For cnt = 1 To Length '1バイト取り出して、文字コードに変換 Ascii = AscB(MidB(strBuff, cnt, 1)) If ascii <> 0 Then ' 文字コードを16進数の文字列に変換 chgHex = Right("00" + Hex(Ascii), 2) End If PacketData(0) = "&H" & chgHex MSComm2.Output = PacketData Next cnt ********************************************************** バイト配列にした後、Chr(&H??)の形にするのではなく、 "&H" & chgHex(変数)で実現可能となりました。 上記の If ascii <> 0 Then の部分が怪しいですが、 とりあえずはこれで通過いたしました。 今までありがとうございました。 本当に助かりました。また何かあったら ご教授お願いいたします m(__)m
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.