代码之家  ›  专栏  ›  技术社区  ›  katmoon

vbscript:如何查找看起来相同的两个字符串之间的差异

  •  0
  • katmoon  · 技术社区  · 16 年前

    有两个字符串“test_name”在VB脚本中进行比较。它们必须相同,并且在调试查看器中看起来相同,但strCompare(string1,string2)返回1。

    历史。 这是qtp测试。第一个字符串是从Excel中读取的。第二个来自Windows应用程序。qtp从Excel中读取值,将其输入到Windows窗体,然后从其他位置读取相同的值。如果这两个值相同,则测试通过。

    如何找出这两个字符串之间的差异,以便我更正测试?

    3 回复  |  直到 16 年前
        1
  •  4
  •   AakashM    16 年前

    我建议使用 For 循环, Mid Asc ,逐个比较实际字符。类似(未尝试的代码):

    ' Presume input strings named s1 and s2
    ' Assume Len(s1) = Len(s2)
    Dim i
    
    For i = 1 to Len(s1)
       If Asc(Mid(s1, i, 1)) <> Asc(Mid(s2, i, 1)) Then
            Msgbox "Strings differ at character " & i
        End If
    Next 'i
    

    如果它们在这个测试中相等,并且不相等于 StrComp 然后…我真的不知道。也许用同样的东西 LenB AscB 看看是Unicode还是编码问题。

        2
  •  3
  •   Dan Byström    16 年前

    最有可能的情况是在末尾有尾随空格(或其他类似空格的打印内容)。试着这样打印:

    Debug.Print "*" & string1 & "*"
    Debug.Print "*" & string2 & "*"
    

    看看你得到了什么。

        3
  •  2
  •   Trefex    16 年前

    你试过用这个参数吗 vbTextCompare 在你 StrComnpare ? 这将对两个字符串进行不区分大小写的比较。

    我也会推荐上面所说的2个。

    所以:

    StrCompare(String1, String2, vbTextCompare)
    

    亲切的问候,