|
搞了一上午终于搞定了,附上源代码:
Function test(zf As Variant, n As Integer)
On Error Resume Next '当N为奇数时
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
谢谢楼上各位,如果有更简单的办法可继续讨论
|
|