0

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

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

如何找到这两个字符串的差异以便我可以更正测试?

4

3 回答 3

4

我建议使用For循环、MidAsc, 来一一比较实际字符。类似(未尝试的代码):

' 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或编码问题。

于 2010-07-07T13:18:05.527 回答
3

很可能你在末尾有尾随空格(或其他像空格一样打印的东西)。尝试像这样打印它们:

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

看看你得到了什么。

于 2010-07-07T13:20:22.020 回答
2

您是否尝试vbTextCompare在您的StrComnpare? 这将对两个字符串进行不区分大小写的比较。

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

所以它会是:

StrCompare(String1, String2, vbTextCompare)

亲切的问候,

于 2010-07-07T13:26:49.863 回答