2012-12-23 45 views
0

也許我誤解了AutoHotKey函數的工作原理。下面是一些測試代碼:InStr()功能

pos = InStr(123abc789, abc) 
MsgBox, abc is at pos "%pos%" 
Exit 

的MSGBOX寫着:

ABC是在pos 「InStr函數(123abc789,ABC)」

我期待pos的值是現在4.

,在AutoHotkey的幫助文件指出以下關於InStr()

InStr(Haystack, Needle [, CaseSensitive = false, StartingPos = 1, Occurrence = 1]): 

返回字符串針的出現的字符串草垛...的位置。例如,在「123abc789」「ABC」的位置總是4.

這是怎麼回事?

回答

2

您錯過了2件事。您必須確保使用:=賦值,並且還要將字符串放在引號中。請參見下面的修改後的代碼:

pos := InStr("123abc789", "abc") ; strings must be in quotes unless variables 
MsgBox, abc is at pos "%pos%" 
-1

另外:

MsgBox, abc is at pos "%pos%" 

不能工作,變量需要是個跡象,沒有引號之間。

這將工作:

MsgBox, abc is at pos %pos% 
+0

這是不對的。報價將被打印: abc位於pos「%pos%」 將導致 abc位於pos「4」 – PGilm