VBScript:如何找到两个看起来相同的字符串之间的区别

时间:2010-07-07 13:10:29

标签: string vbscript qtp

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

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

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

3 个答案:

答案 0 :(得分: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不相等那么......我真的不知道。或许可以使用LenBAscB尝试相同的操作,看看它是否是某种Unicode或编码问题。

答案 1 :(得分:3)

最有可能在末尾有空格(或者其他类似空格的内容)。尝试像这样打印:

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

看看你得到了什么。

答案 2 :(得分:2)

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

我也会建议上面说的2。

所以它会是:

StrCompare(String1, String2, vbTextCompare)

亲切的问候,