- 締切済み
ASCII文字変換
VB6で、80h~9Fh 及び E0h~FFhはASCII文字変換が出来ません。(ANK文字コード表に無い) RS-232C通信機器等では、これらのASCII文字で通信しているものがありますが、対応方法をご教授頂けませんか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1415)
非Printableコードを視覚的に捉えようとしても方法はありません。 問題はデータ内容が大事なのか、視覚効果が大事なのかです。 前者なら、#1さんのようにByte型で定義し、Binaryの入出力を使い ます。途中で、「文字列」をモニタしようなどとは考えないことです。 後者なら、文字コード変換が必要です。しかも99%手作りしないと いけないでしょう。少なくとも、00~1F、80~9Fはフォントの無い ものばかりです。(寡聞にして知りませんが、MIMEに登録されており、 フォントがあるならADODB.Streamオブジェクトで変換できます。)
- Gizensha
- ベストアンサー率34% (207/608)
通信にどのようなコンポーネントをお使いなのかわかりませんが、Byte型は使えませんか?
お礼
ご回答有り難うございます。 Byte型でTestしてみましたが、うまく行きません。 また、私の説明が不十分な点、お詫び致します。 或る機器とPCの間をRS-232Cを使用して、00h~FFhのデータをASCII文字(ASCII Codeでは無く)で通信したいのですが、質問しました80h~9Fh等は、通常ASCII文字の設定が無いため "00"となってしまいます。 ISO-8859等のASCII文字に切り替える方法が無いかと思っています。 送信例 (7Eh) MSComm1.Output = chr$("&H" & "7E") → "~" 受信 R_data = MSComm1.Input Hex(Asc("R_data")) → "~" 通信ソフトは、経験が無く手探り状態です。ご教授宜しくお願いします。
お礼
アドバイス有り難うございます。 「目から鱗」の感が有ります。 書かれている様に、必要なのはデータです。 トライし直してみます。