2013-05-21 2 views
0

VBScript을 사용하여 Windows 응용 프로그램에서 두 문자열 간의 차이점을 찾는 방법이 필요합니다. 문자열 중 하나는 알려져 있지만 두 번째 문자열은 코딩 중에 완전히 알 수 없습니다. StrCompare, InStr 등과 같은 기능이 있다는 것을 알고 있습니다. 그러나 이것들은 코딩 중에 두 번째 문자열을 알아야합니다.VBScript의 두 문자열 차이점

설명 :

화면에서 텍스트 상자가 같은 화면에 여러 개의 버튼이 있습니다. 단추를 클릭 할 때마다 클릭 한 단추에 따라 텍스트 상자의 텍스트가 변경됩니다. 버튼을 클릭 한 후 텍스트에 대한 변경 사항을 찾는 방법이 있습니까? 기본적으로 버튼 클릭으로 입력 한 텍스트를 가져와야합니다. 이 작업을 수행하는 간단한 방법이 있습니까? 아니면 복잡한 코딩이 필요합니까?

미리 감사드립니다.

+0

것은 "차이"를 정의합니다. 일치하지 않는 첫 번째 문자 인 [문자열 유사성] (http://en.wikipedia.org/wiki/String_similarity) (예 : [Levenshtein distance] (http://en.wikipedia.org/wiki))을 찾아야합니까?/Levenshtein_distance)) 또는 다른 것? – Helen

+0

처음에는 텍스트 상자에 "Apple"이 표시되었다고 가정 해 봅시다. 사용자가 버튼을 클릭하면 텍스트가 "Apple, Orange"로 변경됩니다. 이제 텍스트 "오렌지"만 찾는 방법이 필요합니다. – Rajesh

+1

두 문자열 사이의 임의의 차이를 찾는 간단한 방법은 없습니다. 새 텍스트는 항상 추가됩니까? 또는 기존 문자열의 임의 위치에 삽입됩니까? –

답변

0

HTML 텍스트 입력 내용에 액세스 (읽기/쓰기)하려면 HTML 요소 (document.all.<Name/Id> or document.getElementById(<Name/Id>)과 해당 값을 가져와야합니다. 이 데모에서 같이

<html> 
<head> 
    <Title>readtext</Title> 
    <hta:application id="readtext" scroll = "no"> 
    <script type="text/vbscript"> 
    Function Change() 
    document.all.txtDemo.value = "Changed Value" 
    End Function 

    Function Check() 
    Dim txtDemo : Set txtDemo = document.getElementById("txtDemo") 
    Dim sDemo : sDemo  = txtDemo.value 
    Select Case LCase(Trim(sDemo)) 
     Case "initial value" 
     MsgBox "still: " & sDemo 
     Case "changed value" 
     MsgBox "now: " & sDemo 
     Case Else 
     MsgBox "surpise: " & sDemo 
    End Select 
    End Function 
    </script> 
</head> 
<body> 
    <input type="text" id="txtDemo" value="Initial Value" /> 
    <hr /> 
    <input type="button" value="Change" onclick="Change" /> 
    <input type="button" value="Check" onclick="Check" /> 
</body> 
</html> 
+0

답장을 보내 주셔서 감사합니다. 그러나 웹 페이지가 아닌 Windows 응용 프로그램에서 작업하고 있습니다. 게다가, 나는 추가 된 텍스트만을 찾아야한다. – Rajesh

1

그것은 당신의 응용 프로그램과 새 문자열의 형식에 따라 달라집니다. 원래 문자열로을 추가 텍스트를 찾을 필요가


새 텍스트를 가지고 단순히 빈 문자열을 원래 문자열의 첫 번째 발생을 대체 할 수 :

Dim strOld, strNew, strDiff 

strOld = "Apple" 
strNew = "Apple, Orange" 

strDiff = Replace(strNew, strOld, "", 1, 1) 
WScript.Echo strDiff 

샘플 출력 :

, 오렌지


또는 앞의 쉼표없이 첨부 된 텍스트를 취득해야하는 경우는 다음과 같이 사용할 수 있습니다

strDiff = Replace(strNew, strOld + ", ", "", 1, 1) 
+0

고마워요. 그게 정확히 내가 찾고 있던 것이 었습니다. – Rajesh