Ах, как выбрать переменную после цикла - PullRequest
0 голосов
/ 07 января 2019

Я очень сильно застрял с - я думаю - действительно простая проблема. Я собрал координаты карты с помощью Pointerscanning. Часть кода выглядит следующим образом:

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 голосов
/ 07 января 2019

Попробуйте

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%
...