VB计算汉字长度函数(lenX-leftX-rightX)
自从VB4.0后,就把汉字看做是1个字符了。这给我们的字符串的截取带来了严重的麻烦!
如果是汉字 数字或字母的字符串,往往截取到的字符串长度不是理想中的,其中涉及到的函数有LEN、LEFT、RIGHT
我收集了如下3个函数,用来取代 len()、left()、right(),可以把他们放到公共模块里面,以便于随时可以调用,希望能解决您的问题。
‘——————————————————–
‘Name: lenX
‘Argument: uStr
‘Return:
‘Description: 返回字符串的长度,1个中文字符长度为2
‘——————————————————–
Function lenX(ByVal uStr)
Dim theLen, x, testuStr
theLen = 0
For x = 1 To Len(uStr)
testuStr = Mid(uStr, x, 1)
If Asc(testuStr) < 0 Then
theLen = theLen + 2
Else
theLen = theLen + 1
End If
Next
lenX = theLen
End Function
‘——————————————————–
‘Name: leftX
‘Argument: uStr 待处理的字符串
‘ uLen 要截取的长度
‘Return:
‘Description: 返回指定长度的字符串,1个中文字符长度为2
‘——————————————————–
Function leftX(ByVal uStr, ByVal uLen)
Dim i, j, uTestStr, theStr
leftX = “”
j = 0
For i = 1 To Len(uStr)
uTestStr = Mid(uStr, i, 1)
theStr = theStr & uTestStr
If Asc(uTestStr) < 0 Then
j = j + 2
Else
j = j + 1
End If
If j >= uLen Then Exit For
Next
leftX = theStr
End Function
‘——————————————————–
‘Name: rightX
‘Argument: uStr 待处理的字符串
‘ uLen 要截取的长度
‘Return:
‘Description: 返回指定长度的字符串,1个中文字符长度为2
‘——————————————————–
Function rightX(ByVal uStr, ByVal uLen)
Dim i, j, uTestStr, ii, jj, pp
rightX = “”
j = 0
For i = Len(uStr) – 99 To Len(uStr)
uTestStr = Mid(uStr, i, 1)
rightX = rightX & uTestStr
If Asc(uTestStr) < 0 Then
j = j + 2
Else
j = j + 1
End If
If j >= uLen Then Exit For
Next
End Function
下载链接:
坐等大佬D盘更新,祝大佬全家福寿安康
有公众号之类的吗,之前这个网站打不开了
[…] 关于使用Change…
[…] 关于使用Functi…
谢谢提醒,已删 :)