VB6.0で、たとえば「1234567890あああ」という文字列があったとして、Mid$関数で常に12バイト目までを(半角は1バイト、全角は2バイトと計算して)取得したいのです。この場合だと「1234567890あ」となります。
Mid$ MidB$ をつかってみましたが、midだと単に12文字取得し、midBだと半角文字も2バイト計算しているようです。
半角全角が入り混じった文字列からこのように取得するにはどうすればよいのでしょうか?
タイトルは具体的な内容が分かるものを選んでください(過去ログ検索で重要になります)
>midBだと半角文字も2バイト計算しているようです。
VBでは文字列が、Unicodeで処理されているからです。
StrConv関数でShift_JISに戻してから使います。
過去ログ検索『MidB』でどうぞ。
過去ログ見ましたが、StrConv関数でShift_JISに戻すというやり方は発見できませんでした。
http://www.bcap.co.jp/hanafusa/
メニューの「カテゴリ別サンプル一覧」
文字列処理関係
文字列を指定の幅にカットする(漢字分断回避)
>StrConv関数でShift_JISに戻すというやり方
日本では『システムの既定のコードページ』がShift_JISになります。
ヘルプで御確認ください。
解決しました。nobu さん、特攻隊長さんありがとうございます。
ツイート | ![]() |