查看: 454  |  回复: 0
  VB6 中字符串转换常用函数
楼主
发表于 2023年12月18日 22:52

对于VB的字符串,几个专门“武器”大概有:
StrConv() 'unicode与ansi的互换 ,    常量vbUnicode,vbFromUnicode
VarPtr() '-- 获得字符串变量的地址
StrPtr() '-- 获得字符串缓冲区的地址
Asc(), AscB(), AscW()
Chr(), ChrB(), ChrW()
Len(), LenB()
vbNullString, vbNullChar

以Asc、AscB、AscW为例,其区别如下。
Asc(string) 返回与字符串的第一个字母对应的 ANSI 字符代码。返回值:英文 >0,中文 <0。
AscB(binstr) 适用于二进制数据。AscB 不是返回第一个字符的字符代码,而是返回首字节。
AscW(string) 是为使用 Unicode 字符的 32 位平台提供的。它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。它的返回值与 JavaScript 中的 charCodeAt 相同。返回值:英文 >0,中文 >255
可以下面的例子:

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Sub Command1_Click()
    Dim str1 As String, str2 As String
    str1 = "想你So"
    str2 = "So想你"

    Debug.Print Asc(str1), AscB(str1), AscW(str1) '-12309 243 24819
    Debug.Print Asc(str2), AscB(str2), AscW(str2) ' 83 83 83

    Debug.Print Chr(-12309) & "*", ChrB(243) & "*", ChrW(24819) & "*" '想* ? 想*
    Debug.Print Chr(83) & "*", ChrB(83) & "*", ChrW(83) & "*" 'S* ? S*

    str2 = ChrB(83) & ChrB(0) '"S"由二进制83和二进制0表示
    Debug.Print str2 'S
End Sub

运行结果:

-12309      243          24819 
 83        83    83 
想*       ?   想*
S*       ?    S*
S


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com