2012-12-23 21 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