• ベストアンサー

お世話になっております。

お世話になっております。 VB6.0を勉強しているものですがバイナリの扱いで困っております。 ご教授いただけたら幸いです。 string_kana = "アカサタナ" string_kanaという変数に入っている半角カタカナをバイナリに変換したいの ですが何かいい方法があれば教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

>これをJIS7に変えることは可能でしょうか? 8ビット目をマスクすればいいのでは Code = Asc(Ichimoji) Code = Code And &H7F&

rizaruto
質問者

お礼

次から次へと回答ありがとうございます。 お陰で問題がすべて片付きました。 これで明日からぐっすり眠れそうです。 ありがとうございました。

その他の回答 (2)

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.2

うーん・・・ 根本的なミスをしてますよ 文字をバイナリにですが、そのファイルが例としてUTF-8とEUCでは バイナリの結果は異なりますがそこはOKですか? それが解決できているならVBはわかりませんが 1.文字の長さを測る 2.SUBSTRのような部分文字切り出し関数を使う 3.CHR(X)のような文字コードを入手する関数を使う 4.格納 5.文字の長さの分ループ です。すべての言語がこの流れになることが多いです。 で、バイナリは状態により変化してしまう(文字の場合)なので 出力結果は保証されていないことに、注意してくださいね SJISの文字コードをEUCで出しても文字化けするだけですので バイナリ固有の問題になります。

rizaruto
質問者

お礼

回答ありがとうございました。 なるほど・・・言われて気づくことができました。 確かに結果が違ってました。 文字コードにはあまり詳しくなかったので 大変勉強になりました ありがとうございました。

  • uruz
  • ベストアンサー率49% (417/840)
回答No.1

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

rizaruto
質問者

お礼

回答ありがとうございます。 これまでメッセージボックスで表示していたので ただ単に半角カタカナが返ってきていました。 イミディエイト画面ならきちんと表示することができました。 大変勉強になりました。 ありがとうございました。

rizaruto
質問者

補足

回答ありがとうございます。 このコードで試してみたところJIS8コードで出力されると思うのですが これをJIS7に変えることは可能でしょうか?

関連するQ&A