VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2002/10/28(Mon) 18:37
投稿者あき☆彡
Eメール
URL
タイトルRe: 1バイト文字?2バイト文字?

VB4の32Bit版から半角も全角も2バイトです・・・

半角を1バイト、全角を2バイトで取得したい場合
LenBとStrConv関数を使います。
Debug.Print LenB(StrConv("あ", vbFromUnicode))
2
Debug.Print LenB(StrConv("1", vbFromUnicode))
1

>1バイトなら
>ret = LeftB("123456789", 7)
これで取得されるのって123ですよね?

>2バイトなら
>ret = LeftB("あいうえおかきくけこ", 6)

例えば、
("123456789", 7)は"1234567"
("あいうえおかきくけこ", 7)は"あいう"
と取得したいのであれば関数を作ってしまいましょう。
(試しに作ってみたけど、、、おかしい所あるかも&もっと良い方法あるかも(;^-^A)

Public Function LeftBEX(ByVal sStr As String, ByVal lByte As Long) As String
    Dim sWk As String
    LeftBEX = ""
    sWk = StrConv(LeftB(StrConv(sStr, vbFromUnicode), lByte), vbUnicode)
    If LenB(StrConv(Left(sStr, Len(sWk)), vbFromUnicode)) > lByte Then
        LeftBEX = Left(sStr, Len(sWk) - 1)
    Else
        LeftBEX = sWk
    End If
End Function

これで
Debug.Print LeftBEX("123456789",7)
"1234567"

Debug.Print LeftBEX("あいうえおかきくけこ",7)
"あいう"

Debug.Print LeftBEX("あ1い2う3え4お5か6き7く8け9こ",7)
"あ1い2"
と求まります。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -