0

VB スクリプトで比較される 2 つの文字列 "test_name" があります。これらは同一である必要があり、デバッグ ビューアでは同一に見えますが、StrCompare(string1, string2) は 1 を返します。

歴史。 これは QTP でのテストです。最初の文字列は Excel から読み取られます。2 つ目は、Windows アプリケーションからのものです。QTP は Excel から値を読み取り、それを Windows フォームに入力してから、別の場所から同じ値を読み取ります。これら 2 つの値が同じ場合、テストは成功します。

テストを修正できるように、これら 2 つの文字列の違いを見つけるにはどうすればよいですか?

4

3 に答える 3

4

Forループ、、、Midを使用しAscて、実際の文字を1つずつ比較することをお勧めします。(未試行のコード)のようなもの:

' 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

でパラメーターを使用してみましたvbTextCompareStrComnpare? これにより、両方の文字列の大文字と小文字を区別しない比較が行われます。

また、上記の2が言ったことをお勧めします。

したがって、次のようになります。

StrCompare(String1, String2, vbTextCompare)

敬具、

于 2010-07-07T13:26:49.863 に答える