|
本帖最后由 玉树TMD临风 于 2014-4-26 11:36 编辑
有个字符串A,里面有中、英文,中文算2个字符,英文算一个字节。
现在想将字符串按字节分割,用"\"隔开,如果分割处刚好是个汉字各占一半,那这个汉字就算到下个分割后的字符串,缺的那个字节用空格顶上。
比如:
字符串A="我1人2年吃了3斤油“,要求按3个字节分割。
正确结果是:“我1\人2\年 \吃 \了3\斤 \油 ",因为”我“的字节长度是2,”1“的字节长度是1,加起来刚好是3,以此类推。。。
这个看起来简单,可我弄了2天没弄好,特来求助。
已搞定,谢谢各位,附上源码:
Function test(zf As Variant, n As Integer)
On Error Resume Next '当N为某此数值时,下面的I+1会超出字符长度而报错
Dim tmp As String
Dim m As Integer, i As Integer
For i = 1 To Len(zf)
tmp = tmp & Mid(zf, i, 1)
Select Case Asc(Mid(zf, i, 1))
Case Is > 0
a = a + 1 '英文字符
Case Else
a = a + 2 '中文字符
End Select
If a = n Then test = test & tmp & "\": tmp = "": a = 0
If a = n - 1 Then If Asc(Mid(zf, i + 1, 1)) < 0 Then test = test & tmp & " \": tmp = "": a = 0
If i = Len(zf) And a < n - 1 And a <> 0 Then test = test & tmp & Space(n - a) & "\": a = 0
'
最后一段如果不够字节长度N时
Next i
End Function
|
|