VBScript: как найти разницу между двумя одинаковыми строками - PullRequest
0 голосов
/ 07 июля 2010

Есть две строки "test_name", которые сравниваются в скрипте VB.Они должны быть идентичными, и они выглядят одинаково в программе просмотра отладки, но StrCompare (string1, string2) возвращает 1.

History. Это тест в QTP.Первая строка читается из Excel.Второй из приложения Windows.QTP читает значение из Excel, вводит его в форму окна, а затем читает то же значение из другого места.Тест проходит, если эти два значения идентичны.

Как найти разницу в этих двух строках, чтобы я мог исправить тест?

Ответы [ 3 ]

4 голосов
/ 07 июля 2010

Я бы предложил использовать цикл 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 или кодировки.

3 голосов
/ 07 июля 2010

Скорее всего, у вас есть конечные пробелы в конце (или что-то еще, что печатается как пробел). Попробуйте напечатать их так:

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

и посмотри, что получишь.

2 голосов
/ 07 июля 2010

Вы пытались использовать параметр vbTextCompare в вашем StrComnpare? Это будет делать сравнение обеих строк без учета регистра.

Я бы также порекомендовал то, что сказали 2 выше.

Так было бы:

StrCompare(String1, String2, vbTextCompare)

С уважением,

...