'
'功能示例:ChgStr("abc汉字123数字456",18)="abc 汉字123 数字45"
'功能:当asc字符为奇数时,后补空格,最后取定长,若最后部分是半个汉字,则舍去
'
Function ChgStr(ByVal sData As String, ByVal iMaxLen As Integer) As String
Dim i As Integer
Dim iCount As Integer
Dim iAscb As Integer
Dim iLen As Integer
Dim sTemp As String
iLen = LenB(StrConv(sData, vbFromUnicode, 2052))
For i = 1 To iLen
iAscb = AscB(MidB(StrConv(sData, vbFromUnicode, 2052), i, 1))
If iAscb < &H80 Then
iCount = iCount + 1
Else
If iCount / 2 <> iCount \ 2 Then
ChgStr = ChgStr + ChrB(&H20)
iCount = 0
End If
End If
ChgStr = ChgStr + ChrB(iAscb)
Next
iCount = 0
iLen = LenB(StrConv(ChgStr, vbFromUnicode, 2052))
For i = iLen To 1 Step -1
iAscb = AscB(MidB(StrConv(sData, vbFromUnicode, 2052), i, 1))
If iAscb > &H7F Then
iCount = iCount + 1
Else
If iCount / 2 <> iCount \ 2 Then
ChgStr = MidB(StrConv(sData, vbFromUnicode, 2052), 1, iLen - 1)
Exit Function
End If
End If
Next
End Function
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货