当前位置:编程学习 > VB >>

发现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格式。 --------------------编程问答--------------------
引用楼主 a350082466 的回复:
.  不知道是我搞错还是什么.


            我用  lenB 函数测到 每个字母 占 2 字节

比如  Label 
    这个函数 就返回10 . 

  不知道 是我搞错函数的用法 还是别的.
 


你要测试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个字节。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 15 楼 hui_hui_2007 的回复:
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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,