初歩的な質問ですが

解決


一筆  2006-06-27 01:52:05  No: 95847

VB6.0で、たとえば「1234567890あああ」という文字列があったとして、Mid$関数で常に12バイト目までを(半角は1バイト、全角は2バイトと計算して)取得したいのです。この場合だと「1234567890あ」となります。
Mid$ MidB$  をつかってみましたが、midだと単に12文字取得し、midBだと半角文字も2バイト計算しているようです。
半角全角が入り混じった文字列からこのように取得するにはどうすればよいのでしょうか?


特攻隊長まるるう  2006-06-27 02:26:43  No: 95848

タイトルは具体的な内容が分かるものを選んでください(過去ログ検索で重要になります)

>midBだと半角文字も2バイト計算しているようです。
VBでは文字列が、Unicodeで処理されているからです。
StrConv関数でShift_JISに戻してから使います。
過去ログ検索『MidB』でどうぞ。


一筆  2006-06-27 02:43:58  No: 95849

過去ログ見ましたが、StrConv関数でShift_JISに戻すというやり方は発見できませんでした。


nobu  2006-06-27 02:59:42  No: 95850

http://www.bcap.co.jp/hanafusa/

メニューの「カテゴリ別サンプル一覧」
    文字列処理関係
          文字列を指定の幅にカットする(漢字分断回避)


特攻隊長まるるう  2006-06-27 03:28:45  No: 95851

>StrConv関数でShift_JISに戻すというやり方
日本では『システムの既定のコードページ』がShift_JISになります。
ヘルプで御確認ください。


一筆  2006-06-30 16:55:50  No: 95852

解決しました。nobu さん、特攻隊長さんありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加