奇数バイト数の文字列を偶数バイトで区切った時の最終文字を除去するには?

解決


づき  2006-07-16 03:59:33  No: 96005

VB6.0で
If LenB(StrConv(文字列, vbFromUnicode)) > 20 Then
  文字列 = StrConv(LeftB(StrConv(文字列, vbFromUnicode), 20), vbUnicode)
End If
としてある文字列を20バイトで区切ろうとしているのですが、
例えば文字列が
  "社会保険料(厚生年金保険料)"
だとすると変換結果が
  "社会保険料(厚生年金 "
というように最後に半角スペースのように見える文字が入ってしまいます。
おそらく区切られた直後の2バイト文字の最初の1バイト分が入っているのだと思われるのですが、
これを除去して
  "社会保険料(厚生年金"
のようにするにはどうしたらいいのでしょうか?
恐れ入りますがご教授お願いいたします。


ガッ  2006-07-16 05:19:13  No: 96006

とりあえず、vb6 泣き別れ で検索してみてください

…それとも「いわゆる半角を1バイトとしてカウントしたい」のであれば、
Asc()関数について調べてみるのも一興かもしれません


づき  2006-07-16 05:19:38  No: 96007

単純に
If LenB(文字列) > 20 Then
  文字列 = LeftB(文字列, 20)
End If
とすることで解決いたしました。
お騒がせしました。


づき  2006-07-16 05:23:20  No: 96008

>ガッさん
すいません、検索不足でした。
ありがとうございます。


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

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






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