感悟VB细水长流话API(二)

发表于:2007-06-21来源:作者:点击数: 标签:
下一页 1 2 感悟VB细水长流话API(二) 第二话 字符串 上一期我们已经对API有了大概了解,并学习了第一个API。为了方便以后的学习,我就先讲一点字符串知识和一个相关的API。 用过VB5.0或者更早版本的读者应该知道VB有一个 测试 字符串长度的函数: Len。但当你

下一页 1 2 

   感悟VB细水长流话API(二)

第二话 字符串

  上一期我们已经对API有了大概了解,并学习了第一个API。为了方便以后的学习,我就先讲一点字符串知识和一个相关的API。

  用过VB5.0或者更早版本的读者应该知道VB有一个测试字符串长度的函数: Len。但当你升级到VB6时,会发现这里的Len并没有以前那么好用了——它变成了测试字符个数而不是字符串长度。就是说,当你用以前版本的VB执行Len("字符abc")时,返回值是7,因为中文字符每个有2个字节,所以总共有7个字节;而在VB6中执行,返回值是5。
  VB6不再有一个直接计算出字符串总字节数的函数了,因为VB6内部已经把字符串转换成了Unicode——一种比ANSI更新的字符编码方式。

  Unicode把每一个字,无论是中文还是其他文字都当成两个字节,如果是英文,则这两个字节中第二个字节保留着不使用,如果是双字节字符(如中文,双字节日文以及韩文),而由这两个字节的组合表示一个字符。所以Len可以方便地知道一共有多少个双字节字符,多少个单字节字符,也就出现了上面所说的情况。
  不过既然VB内部把ANSI字符转换成Unicode,那么它一定有对应方法转换回来。所以这里提供一个比较方便的方法来得到总字节数: LenB(StrConv("字符abc", vbFromUnicode))。

原文转自:http://www.ltesting.net