Что нового

[Массив 3D] Горячая запись новых ячеек

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Всем доброго времени суток.
Вот наткнулся на данную проблему, ничего в голову не пришло для ее решения.

Создаем 3D массив:
Код:
Global $Vars[1][3] = [["Key Name","Key Value","Value Type"]]


Далее в отдельной функции дополняем его значениями:
Код:
For $index = 1 To $Config_temp[0] Step 1
	  $Read_temp = StringRegExp($Config_temp[$index],$Pattern[5],3)
	  If IsArray($Read_temp) And UBound($Read_temp) = 3 Then
		 ReDim $Vars[UBound($Vars)+1][3]
		 $Vars[UBound($Vars)-1] = [$Read_temp[0],$Read_temp[1],$Read_temp[2]]
	  EndIf
   Next


Но при неизвестных обстоятельствах постоянно вылазит ошибка "Array variable has incorrect number of subscript(s)..."
Я ведь вроде не записываю ячейку в пустую область, а перед этим создаю для нее место.
Дело в том, что _ArrayCreate и _ArrayAdd не вариант для решения этой проблемы.
Заранее спасибо.
 

running-frag

why me?
Сообщения
441
Репутация
60
firex [?]
Код:
For $index = 1 To $Config_temp[0] Step 1

По умолчанию Step и так +1 его не обяз. писать.

по теме, может данный топик поможет http://autoit-script.ru/index.php/topic,8032.0.html
 

running-frag

why me?
Сообщения
441
Репутация
60
firex [?]
Решил я пойти по харду
Просто вникни в те примеры что по ссылке выше. Они "приоткроют" зановес "что там происходит". :smile: Советую.

Как там "больше знаешь меньше спишь"? Дык зато "вариантов" много. 8)
 
Автор
firex

firex

AutoIT Гуру
Сообщения
943
Репутация
208
running-frag, _ArrayAdd/_ArrayCreate - не вариант же.
Yashied, Ну пускай будет так :3
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
firex
Такая запись невозможна
Код:
$Vars[3] = [1,2,3]

Можно только инициализировать новый массив
Код:
Dim $Vars[3] = [1,2,3]


я собственно и не понял - почему?
Это есть естественное заполнение ячеек
 

running-frag

why me?
Сообщения
441
Репутация
60
firex [?]
running-frag, _ArrayAdd/_ArrayCreate - не вариант же.

Какой _ArrayAdd\_ArrayCreate ? ты ссылку открывал? похоже нет


Открой почитай, там есть в начале пару хороших самопальных функций, не говоря уже о UDF где то там пощеном. :-X
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
firex
Код:
#include <Array.au3>
Dim $Vars[4][3] = [[1,2,3]]
Dim $Vars1[4][3] = [[1],[2],[3]]

_ArrayDisplay($Vars, 'Array')
_ArrayDisplay($Vars1, 'Array')

Exit
   For $index = 1 To $Config_temp[0] Step 1
      $Read_temp = StringRegExp($Config_temp[$index],$Pattern[5],3)
      If IsArray($Read_temp) And UBound($Read_temp) = 3 Then
         Dim $Vars[UBound($Vars)-1][3] = [[$Read_temp[0],$Read_temp[1],$Read_temp[2]]] ; либо эту
         Dim $Vars[UBound($Vars)-1][3] = [[$Read_temp[0]],[$Read_temp[1]],[$Read_temp[2]]] ; либо эту
      EndIf
   Next
 
Верх