发现VB一个问题,
. 不知道是我搞错还是什么.我用 lenB 函数测到 每个字母 占 2 字节
比如 Label
这个函数 就返回10 .
不知道 是我搞错函数的用法 还是别的.
--------------------编程问答-------------------- VB6内部使用Unicode保存所有字符串。 --------------------编程问答-------------------- 用len(Label)试试 --------------------编程问答-------------------- 用lenB干嘛,我好像基本没用过 --------------------编程问答--------------------
试试:
?LenB(StrConv("Label", vbFromUnicode)) --------------------编程问答-------------------- 请问 StrConv 是什么意思 --------------------编程问答--------------------
现在的操作系统中,字符串都是缺省 UniCode 编码。每个字符占用 2 字节。
用 StrConv 函数可以转换成 ANSI 格式。 --------------------编程问答-------------------- 哦,谢了 大概明白了 --------------------编程问答-------------------- 那怎么样,将 整个工程 的字符串都是 ANSI 格式呢 --------------------编程问答-------------------- 你没有搞错,VB6.0是UniCode编码的,支持两个字节。 --------------------编程问答-------------------- 你用LEN就是了,没必要换成ANSI格式。 --------------------编程问答--------------------
你要测试ANSI码长度用lenB
你要测试VB里字符串(默认为UniCode码)长度用len
这里你要搞懂什么ANSI码,什么是UniCode码,它们之间可以转换.
LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。
L=len("我")'L=1
L=len("A") 'L=1
L=lenB("我") 'L=2
L=lenB("A") 'L=2
L = LenB(StrConv("A", vbFromUnicode))'L=1
--------------------编程问答-------------------- lenb就是len_byte
--------------------编程问答--------------------
测试 ANSI 格式长度在测试字符串显示宽度等场合,还是有用的。此时用 LenB+StrConv 就可以了。
--------------------编程问答-------------------- 路过..........建议在不明白的函数或语句上按F1.......... --------------------编程问答-------------------- VB的内部处理是用unicode处理的,所以不管英文字母,还是汉字,都占用2个字节。 --------------------编程问答-------------------- --------------------编程问答--------------------
VB的字符串非常高深,简直是万能的。
看下面的代码:
Private Sub Command1_Click()
Dim b(0) As Byte
b(0) = 65
func (b)
End Sub
Public Function func(ByVal s As String) As Long
MsgBox s
MsgBox LenB(s)
End Function
运行结果是
A
1。 --------------------编程问答-------------------- 学习,学习 --------------------编程问答-------------------- vb内部使用Unicode的,用该用Len测,如果要测试Ascii的长度,就用LenB
补充:VB , 基础类