投稿日 | : 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"
と求まります。