- ベストアンサー
お世話になっております。
お世話になっております。 VB6.0を勉強しているものですがバイナリの扱いで困っております。 ご教授いただけたら幸いです。 string_kana = "アカサタナ" string_kanaという変数に入っている半角カタカナをバイナリに変換したいの ですが何かいい方法があれば教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>これをJIS7に変えることは可能でしょうか? 8ビット目をマスクすればいいのでは Code = Asc(Ichimoji) Code = Code And &H7F&
その他の回答 (2)
- hanmemomo
- ベストアンサー率35% (205/580)
うーん・・・ 根本的なミスをしてますよ 文字をバイナリにですが、そのファイルが例としてUTF-8とEUCでは バイナリの結果は異なりますがそこはOKですか? それが解決できているならVBはわかりませんが 1.文字の長さを測る 2.SUBSTRのような部分文字切り出し関数を使う 3.CHR(X)のような文字コードを入手する関数を使う 4.格納 5.文字の長さの分ループ です。すべての言語がこの流れになることが多いです。 で、バイナリは状態により変化してしまう(文字の場合)なので 出力結果は保証されていないことに、注意してくださいね SJISの文字コードをEUCで出しても文字化けするだけですので バイナリ固有の問題になります。
お礼
回答ありがとうございました。 なるほど・・・言われて気づくことができました。 確かに結果が違ってました。 文字コードにはあまり詳しくなかったので 大変勉強になりました ありがとうございました。
- uruz
- ベストアンサー率49% (417/840)
Mid()関数で1文字づつ切り出して Asc()関数で数値に変換 string_kana = "アカサタナ" '実際は半角 Dim Ichimoji as string Dim Code as long Mojisuu = Len(string_kana) '文字数を得る For i=1 to Mojisuu '1文字だけ切り出す Ichimoji = Mid(string_kana,i,1) 'コード(数値)に変換 Code = Asc(Ichimoji) 'イミディエイト画面に表示 Debug.Print Ichimoji,Hex(Code) Next i
お礼
回答ありがとうございます。 これまでメッセージボックスで表示していたので ただ単に半角カタカナが返ってきていました。 イミディエイト画面ならきちんと表示することができました。 大変勉強になりました。 ありがとうございました。
補足
回答ありがとうございます。 このコードで試してみたところJIS8コードで出力されると思うのですが これをJIS7に変えることは可能でしょうか?
お礼
次から次へと回答ありがとうございます。 お陰で問題がすべて片付きました。 これで明日からぐっすり眠れそうです。 ありがとうございました。