point에 가장 근접한 수치를 var에서 찾고 해당 수치의 ID를 찾으려고 합니다.
loop
{
random,ran,-1.5,2.5
random,ran2,1~100
var .= ran "ID" ran2"`n"
if a_index = 7
break
}
위 루프문은 종요하지 않습니다.. 단지 point와 비교할 수치와 ID를 var에 저장하기 위해 작성했습니다.
loop,parse,var,`n
{
stringgetpos,var2,a_loopfield,ID
stringleft,var3,a_loopfield,%var2%
var4 .= var3 "`n"
}
var에서 id를 제외한 ran 수치만 var4에 저장합니다.
for i, v in StrSplit(RTrim(var4, "`n"), "`n", "`n")
{
if(!smallest_diff or (Abs(point - v) < smallest_diff))
{
smallest_diff := Abs(point - v)
best_candidate := v
}
}
point에 가장 근접한 수치를 best_candidate에 저장합니다.
loop,parse,var,`n
{
ifinstring,a_loopfield,%best_candidate%
{
stringgetpos,checkvar2,a_loopfield,ID
checkvar2 := checkvar2+2
stringtrimleft,checkvar3,a_loopfield,%checkvar2%
break
}
}
그리고 best_candidate가 속한 ID를 var에서 구합니다.
point에 가장 근접한 수치를 var에서 찾고 해당 ID를 찾으려고 합니다. 좀 더 빠르게 찾는 방법이 없을까요?
고수분들의 도움이 필요합니다..
루프를 두번 돌릴필요 없고요...그런데 저라면 var4를 만들고 그걸 또 배열화 해서 for를 돌리느니 차라리 첫번째 루프에서 다 배열에 집어넣겠네요
그 다음 for문이나 혹은 loop문으로 best_canddidate를 넣으면서 배열의 인덱스값도 기억하고요
그럼 루프 두번에 해결되겠는데요