Что нового

[Ошибки] Записать результат в виде массива в массив, на примере FO.au3

Сообщения
142
Репутация
-3
Что-то массивы в AutoIt у меня тоже вызывают боль. :stars:

Код:
; $aArray - массив из 31 элемента, где 0 элемент обозначает число других строк. Получен в результате работы StringSplit 
  Local $aResult[$aArray[0]] ;30
   for $i = 0 to $aArray[0] - 1 ;29
	  $aResult[$i] = _FO_FileSearch($sPath, $aArray[$i+1], True, 2, 1, 1)
   Next
   ConsoleWrite(_ArrayDisplay($aResult)) ; оказывается пустой

FileSearch возвращает массив с результатами. Логично, что должно быть $aResult[$i][$j]. Но как объявить такой массив, ведь размер его неизвестен.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Ошибки] Array variable has incorrect number of subscripts or

Полный текст ошибки как выглядит?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,484
ЭйчЭйч [?]
оказывается пустой
Массив не пустой, он скорее всего содержит массивы, просто _ArrayDisplay их не покажет, хотя начиная кажется с 3.3.14.0 он покажет на месте элемента содержащего массива что то типа {Array}.

как объявить такой массив, ведь размер его неизвестен
Либо объявить где то 10000 (или максимально известное число), либо увеличивать размер динамический.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
У Вас получается в $aResult массив массивов , функцией "_ArrayDisplay" Вы ничего не увидите. Что Вы ожидали увидеть в консоли ? Там будут только "1" или "0" при ошибках "_ArrayDisplay"... Содержимое $aResult возможно посмотреть так:
Код:
Local $aResult[$aArray[0]] ;30
   for $i = 0 to $aArray[0] - 1 ;29
      $aResult[$i] = _FO_FileSearch($sPath, $aArray[$i+1], True, 2, 1, 1)
   Next
   
   For $i=0 to Ubound($aResult)-1	   
	   _ArrayDisplay($aResult[$i])
   Next
 
Верх