支持中文的Len, Left, Right函数

本文介绍了一组用于处理包含中文字符的字符串的VB函数,包括计算字符串长度、截取字符串左侧和右侧内容的功能。这些函数能够准确地处理双字节中文字符,确保长度计算正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'------------------------------------------------------------
'描述:让Len,Left,Right函数识别中文
'      对中文识别为两个字符,ASCII码为一个
'      可用此函数代替Len,Left,Right函数
'示例:LenX("中国ren")          => "7"
'      LeftX("中国ren",4)       => "中国"
'      RightX("中国ren",5)      => "国ren"
'参数:
'      sString        字符串
'      lLength          长度
'返回:字符串长度,字符串,字符串
'整理:KimSoft(jinqinghua@gmail.com)
'时间:2005-05-24
'修改:2005-07-07
'------------------------------------------------------------
Public Function LenX(ByVal sString)
    LenX = 0
   
    Dim lngStringLen
    Dim strCharString
    Dim i
   
    lngStringLen = Len(sString)
    strCharString = ""
   
    For i = 1 To lngStringLen
        strCharString = Mid(sString, i, 1)
        If Asc(strCharString) > 0 Then
            LenX = LenX + 1
        Else
            LenX = LenX + 2
        End If
    Next
End Function

Public Function LeftX(ByVal sString, ByVal lLength)

    LeftX = ""
   
    If sString = "" Or lLength < 1 Then Exit Function
   
    Dim lngStringLength
    Dim strCharString
    Dim lngCounter
    Dim i
   
    lngStringLength = Len(sString)
   
    For i = 1 To lngStringLength
        strCharString = Mid(sString, i, 1)
        LeftX = LeftX & strCharString
        If Asc(strCharString) > 0 Then
            lngCounter = lngCounter + 1
        Else
            lngCounter = lngCounter + 2
        End If
        If lngCounter >= lLength Then Exit For
    Next
   
End Function

Public Function RightX(ByVal sString, ByVal lLength)

    RightX = ""
   
    If sString = "" Or lLength < 1 Then Exit Function
   
    Dim lngStringLength
    Dim strCharString
    Dim lngCounter
    Dim i
   
    lngStringLength = Len(sString)
   
    For i = lngStringLength To 1 Step -1
        strCharString = Mid(sString, i, 1)
        RightX = strCharString & RightX
        If Asc(strCharString) > 0 Then
            lngCounter = lngCounter + 1
        Else
            lngCounter = lngCounter + 2
        End If
        If lngCounter >= lLength Then Exit For
    Next
   
End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值