掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCOMMでWバイトの半分だけを送信するには? (ID:104698)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あんちゃんさん何度もありがとうございます。 > 1バイトでは何の文字か判断できないのでは? 236バイトで切っただけでは何の文字か判別できませんが、 全部で2300バイトあるため、次のパケットで送られてくる1バイトと 合わせて1文字にするようです。(なんとややこしい・・・) そこで、VBでは漢字コードの最初の1バイトだけにすると NULLになってしまうので、vbFromUnicodeなどに変換し、1バイト 取ったとき、その値が漢字コードの最初の1バイト目であれば、 保持しておく必要があります。いろいろ調べたところ、どうやら VB(MSComm)では実現不可能っぽいのです。ActiveCommとかいうのを 入れると(有償)、漢字コードの1バイト目を送ることができるらしく、 3パケット目のブロックナンバーの反転文字であるChr(&HFC)も それで送ることができました。ただ、それは決まった文字であるから 送る場所なりタイミングを決めることができますが、 256バイトで切れた漢字コードはChr()ではない何かのコードで 保持しておかなくてはならないっぽいのです。 つまり、漢字コード表というのを別で設けて、それと一致したものは 16進数などに変換しておいておき、送信するときにその1バイトだけ アウトプットしてあげないと・・・。VBってそんなややこしい・・・。 って、とこまで分かったのですが、それを作るのは一苦労ですよね・・・。 でも仕事なんで仕方ないんです・・・。 後の課題は、vbFromUnicodeで切り取った漢字コードの1バイト目を、 どのように保持しておくかです。vbUnicodeではない何かで・・・。 更にそれを最終的にChr()に戻してあげる作業が発生します。 それって可能ですかね?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.