3
나는 공식 AutoIt Array Parameters을 읽었으며, AutoIt에 배열에 얼마나 많은 요소가 있는지 알려야 만 알 수있다. 내 배열은 사용자가 내 인터페이스에서 선택하는 것에 따라 동적이 될 것이므로이 같은 것을 필요로합니다.어떻게 동적 배열을 만들고 AutoIt에서 루프를 반복합니까?
자신의 페이지에서:
을하지만 동적으로 생성 할 때 변수의 크기가 올 수 있기 때문에 당신이 선행 배열의 크기를 모르는 말한다.
$data = one|two|three|four|five|six|seven|eight|nine
: 사용자가 내가 좋아하는 뭔가를 필요로하는 모든 세 개의 상자를 선택한 경우
If GUICtrlRead($Box1) = $GUI_CHECKED Then
$data = "one|two|three"
EndIf
If GUICtrlRead($Box2) = $GUI_CHECKED Then
$data = "four|five|six"
EndIf
If GUICtrlRead($Box3) = $GUI_CHECKED Then
$data = "seven|eight|nine"
EndIf
을 :
Local $iMax
Local $data="Element 1|Element 2|Element 3"
; The string in data will be split into an array everywhere | is encountered
Local $arr = StringSplit($data, "|")
If IsArray($arr) Then
$iMax = UBound($arr); get array size
ConsoleWrite("Items in the array: " & $iMax & @LF)
For $i = 0 to $iMax - 1; subtract 1 from size to prevent an out of bounds error
ConsoleWrite($arr[$i] & @LF)
Next
EndIf
나는 사용자의 선택을 통해 이동하여 먼저 배열을 구축 할 수있는 if
문을 설정 한
그런 다음이 요소를 위의 예제에 전달하여 모든 요소를 반복 할 수 있습니다.
배열을 여러 if
문을 사용하여 빌드하고 하나의 큰 배열로 만들 수 있습니까?
'$ data & = "one | two | three"를 사용하여 알아 냈으므로 연결 할당이 함께 추가됩니다. https://www.autoitscript.com/autoit3/docs/intro/lang_operators.htm. 그런 다음 필자는 필요한 'For $ i = 0 to $ iMax - 1' 루프를 실행하여 필요한 결과를 얻었습니다. –
또한 10000 개의 항목을 말하고 원하는 크기로 Redim을 사용하여 배열을 만들 수도 있습니다. – Xenobiologist
Array.au3 UDF 예를 사용하십시오. _ArrayAdd – Milos