我很坚持-我想-一个非常简单的问题。 我通过指针扫描收集了地图坐标。部分代码如下所示:
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)
非常感谢您的回答。
答案 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%