需要代码来删除vb6中的所有unicode字符

纳拉亚纳

我需要用于删除vb6字符串中所有unicode字符的代码。

鲍勃77

如果这是UTF-16文本(就像正常的VB6字符串值一样),并且您可以忽略代理对的问题,那么这是相当快捷且简洁的:

Private Sub DeleteNonAscii(ByRef Text As String)
    Dim I As Long
    Dim J As Long
    Dim Char As String

    I = 1
    For J = 1 To Len(Text)
        Char = Mid$(Text, J, 1)
        If (AscW(Char) And &HFFFF&) <= &H7F& Then
            Mid$(Text, I, 1) = Char
            I = I + 1
        End If
    Next
    Text = Left$(Text, I - 1)
End Sub

对于无法选择VB6从AscW()函数返回带符号的16位整数的情况,这具有变通方法它本来应该是一种渴望的象征,ChrW$()但事实就是如此。

它应该在清晰度,可维护性和性能方面击败任何正则表达式库。如果要真正获得大量文本需要更好的性能,则可以使用SAFEARRAY或CopyMemory特技。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章