ahk循环后如何选择变量

时间:2019-01-07 17:46:39

标签: loops variables autohotkey

我很坚持-我想-一个非常简单的问题。 我通过指针扫描收集了地图坐标。部分代码如下所示:

loop 8 {

gate1%A_Index%base := ReadMemory1(mark%A_Index%base + 0x38,v)

addressgate1%A_Index%x := gate1%A_Index%base + 0x4   

gate1%A_Index%x := HexToFloat(ReadMemory1(addressgate1%A_Index%x,v))

}
我将拥有

gate11x,gate12x,gate13x,...,gate18x。此变量可以容纳0或任何数字。

例如:0,0,-132,0,0,-500,0,0。

如果我只想拥有非零变量,应该使用哪种类型的循环和表达式?我需要一个结果:

GATENO1x := (variable that holds -132)      
GATENO2x := (variable that holds -500)

非常感谢您的回答。

1 个答案:

答案 0 :(得分:0)

尝试

gate1_Index := ""   ; empty variable

loop 8 {
gate1%A_Index%base := ReadMemory1(mark%A_Index%base + 0x38,v)
addressgate1%A_Index%x := gate1%A_Index%base + 0x4   
gate1%A_Index%x := HexToFloat(ReadMemory1(addressgate1%A_Index%x,v))
If gate1%A_Index%x not in 0
    gate1_Index .=  gate1%A_Index%x . "," ; concatenate the outputs by adding a comma to each one
}
gate1_Index := SubStr(gate1_Index, 1, -1) ; remove the last comma from this variable
Loop, parse, gate1_Index, `,
    MsgBox, GATENO%A_Index%x = %A_LoopField%