AHK - 数组在 StrSplit 中为空

AHK - Array is empty from StrSplit

脚本从 .ini 文件中读取 IDs。 每个 ID 由单个空格作为分隔符分隔。 将 ID 拆分为子字符串数组后,该数组变为空,但来自 IniRead 的输出变量 Recipients 不是。

some.ini 文件

[IDs]
SampleID1 SampleID2 SampleID3

some.ahk 文件

#Persistent
#SingleInstance, force
SendMode, Input

IniRead, Recipients, some.ini, IDs

StringSplit, aRecipients, Recipients, A_Space
; this code wouldn't work either
; aRecipients := StrSplit(Recipients, A_Space)

F1::
   MsgBox % aRecipients[0]
Return

AHK 版本: 1.1.24.01

A_Space 必须被 %%:

包围
StringSplit, aRecipients, Recipients, %A_Space%

生成的数组不是实际对象,而是伪数组。第一个元素保存元素的数量,其余的是元素。

语法格式为:arrayN 其中 array 是变量名,N 是元素索引,可能是一个变量。

因此要在您的案例中打印它,调用应该是:

string := "The array aRecipients has " . aRecipients0 . " elements:`n"
Loop, %aRecipients0%
{
    string := string . aRecipients%A_Index% . "`n"
}
MsgBox %string%
aRecipients := StrSplit(Recipients, A_Space)

会起作用,autohotkey 数组的问题是第一个元素是 [1] 而不是 [0]。所以:

MsgBox % aRecipients[1]