Что нового

Как работает цикл "For In Next" если массив двумерный?

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Или даже трехмерный... 0_о
Да, и как работает данный цикл, если массив вовсе содержит вложенные массивы? о0_0о
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Kalisnik [?]
Да, и как работает данный цикл, если массив вовсе содержит вложенные массивы? о0_0о

Никогда не работал с этой конструкцией.
Однако согласно справки применение обосновано только для 1-мерных массивов.
При использовании многомерного массива ошибка не будет выдана , а будет выдан результат , как в случае использования пустого массива .
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Вообще то «For In Next» используется не для массивов, а для объектов, для массивов используется конструкция «For To Next»:

Код:
Dim $aArray[2][2] = [[1, 2], [3, 4]]

For $i = 0 To 1
	For $j = 0 To 1
		ConsoleWrite($aArray[$i][$j] & @LF)
	Next
Next
 
Автор
K

Kalisnik

Эволюция
Сообщения
295
Репутация
63
CreatoR сказал(а):
Вообще то «For In Next» используется не для массивов, а для объектов, для массивов используется конструкция «For To Next»:

;D А я вот справке доверял до настоящего момента...

Спасибо :beer:

Только мне не совсем понятно как с этой консолью работать и какие в ней плюсы... может примерчик какой нибудь приведете типичный, с записью и выдачей из консоли данных? Желательно примерчик полный и с комментариями если можно :smile:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Kalisnik [?]
Только мне не совсем понятно как с этой консолью работать и какие в ней плюсы... может примерчик какой нибудь приведете типичный, с записью и выдачей из консоли данных? Желательно примерчик полный и с комментариями если можно
Не ленитесь читать справку! :smile:

Код:
; Создайте файл ConsoleWrite.au3
; Запустите на выполнение F5
ConsoleWrite("Hello Autoit!" & @CRLF)


Код:
; Скомпилируйте скрипт в "ConsoleRead.exe".
; Откройте CMD и в командной строке введите следующую строку: echo "Hello Autoit!" | полный путь к файлу\ConsoleRead.exe {ENTER}

If Not @Compiled Then
    MsgBox(0, "", "This script must be compiled in order to properly demonstrate it's functionality.")
    Exit -1
EndIf

Local $data
While True
    $data &= ConsoleRead()
    If @error Then ExitLoop
    Sleep(25)
WEnd
MsgBox(0, "", "Читаем STDIN: " & @CRLF & @CRLF & $data)
 
Верх