VBScript中两个字符串之间的差异

时间:2013-05-21 09:34:49

标签: string vbscript difference

我需要一种方法来使用VBScript找到Windows应用程序中两个字符串之间的差异。其中一个字符串是已知的,但第二个字符串在编码期间是完全未知的。我知道有StrCompareInStr等功能,但这些功能要求您在编码过程中也知道第二个字符串。

说明:

屏幕上有一个文本框,同一屏幕上有几个按钮。单击按钮时,文本框中的文本会根据单击的按钮而更改。有没有办法在单击按钮后找到对文本所做的更改?基本上我需要输入由于点击按钮而输入的文本。有没有一种简单的方法可以做到这一点,还是需要复杂的编码?

先谢谢。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

要访问(读/写)HTML文本输入的内容,您需要获取HTML元素(document.all.<Name/Id> or document.getElementById(<Name/Id>)及其.value;如本演示所示:

<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>