Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание массива через Assign

Ответить
Настройки темы
[решено] Создание массива через Assign

Старожил


Сообщения: 362
Благодарности: 38


Конфигурация

Профиль | Отправить PM | Цитировать


Приветствую, возможно ли создание массива через Assasin() и получение его через Eval() ? Цель-создать 10 массивов типа MASSIV_1, MASSIV_2 и т.д и обрабатывать их через цикл добавляя к MASSIV_ номер цикла, а не делать 10 одинаковых функций.

Отправлено: 12:11, 15-03-2019

 

Ветеран


Contributor


Сообщения: 25172
Благодарности: 7315

Профиль | Отправить PM | Цитировать


-TRM-, что такое:
Цитата -TRM-:
через Assasin() »
?

P.S. Опишите саму задачу.

Отправлено: 17:00, 15-03-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3036
Благодарности: 1000

Профиль | Сайт | Отправить PM | Цитировать


Цитата -TRM-:
Приветствую, возможно ли создание массива через Assasin() и получение его через Eval() ? Цель-создать 10 массивов типа MASSIV_1, MASSIV_2 и т.д и обрабатывать их через цикл добавляя к MASSIV_ номер цикла, а не делать 10 одинаковых функций.
Скорее всего имеется в виду Assign...

Можно использовать, ну почему бы не использовать двумерный массив?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 20:27, 15-03-2019 | #3


Ветеран


Contributor


Сообщения: 25172
Благодарности: 7315

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Скорее всего имеется в виду Assign... »
Creat0R, спасибо, ясно.

Я бы, пожалуй, подумал над коллекцией/словарём (Microsoft Scripting Runtime везде есть):
Скрытый текст
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $oDictionary = ObjCreate("Scripting.Dictionary")
Local $array, $elem

Local $aArrFirst  = [0, 1, 2, 3]
Local $aArrSecond = [1, 2, 3, 4, 5, 6, 7]
Local $aArrThird  = [8, 9]

$oDictionary.Add(0, $aArrFirst)
$oDictionary.Add(1, $aArrSecond)
$oDictionary.Add(2, $aArrThird)

For $array In $oDictionary.Items
	ConsoleWrite("---------------" & @CRLF)

	For $elem In $array
		ConsoleWrite($elem & @CRLF)
	Next
Next

exit(0)

Жаль, AutoIt не позволяет зараз создавать и пользовать массивы напрямую, без объявления переменных (a-la WSH'ной функцией Array()).

Update: Хотя…
Скрытый текст
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $oDictionary = ObjCreate("Scripting.Dictionary")
Local $array, $elem


$oDictionary.Add(0, Array(0, 1, 2, 3))
$oDictionary.Add(1, Array(1, 2, 3, 4, 5, 6, 7))
$oDictionary.Add(2, Array(8, 9))

For $array In $oDictionary.Items
	ConsoleWrite("---------------" & @CRLF)

	For $elem In $array
		ConsoleWrite($elem & @CRLF)
	Next
Next

exit(0)

Func Array($Var0, $Var1 = Null, $Var2 = Null, $Var3 = Null, $Var4 = Null, $Var5 = Null, $Var6 = Null, $Var7 = Null, $Var8 = Null, $Var9 = Null)
	Local $array[@NumParams]
	Local $i

	For $i = 0 To @NumParams - 1
		$array[$i] =  Eval("Var" & $i)
	Next

	Return $array
EndFunc

Отправлено: 00:25, 16-03-2019 | #4


Старожил


Сообщения: 362
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Можно использовать, ну почему бы не использовать двумерный массив? »
так мне и нужно использовать двухмерный массив, а в Assign прочитал не поддерживает такое.

Отправлено: 14:09, 16-03-2019 | #5


Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3036
Благодарности: 1000

Профиль | Сайт | Отправить PM | Цитировать


-TRM-, можно пример того как ты это делаешь без Assign?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 14:52, 16-03-2019 | #6


Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3036
Благодарности: 1000

Профиль | Сайт | Отправить PM | Цитировать


Цитата -TRM-:
Цель-создать 10 массивов типа MASSIV_1, MASSIV_2 и т.д и обрабатывать их через цикл добавляя к MASSIV_ номер цикла »
Ну так а зачем тут Assign?

Код: Выделить весь код
Global $aArray_1[1][1] = [[1]]
Global $aArray_2[1][1] = [[2]]
Global $aArray_3[1][1] = [[3]]
Global $aArray_4[1][1] = [[4]]
Global $aArray_5[1][1] = [[5]]

_ArrayGet(2)

Func _ArrayGet($iVal)
    For $i = 1 To 5
        $aArray = Eval('aArray_' & $i)

        ;If $aArray[0][0] = $iVal Then
            ConsoleWrite($aArray[0][0] & @CRLF)
        ;EndIf
    Next
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 15:13, 16-03-2019 | #7


Старожил


Сообщения: 362
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Ну так а зачем тут Assign? »
А как тогда значение в массив записать?

Отправлено: 17:21, 16-03-2019 | #8


Ветеран


Contributor


Сообщения: 25172
Благодарности: 7315

Профиль | Отправить PM | Цитировать


-TRM-, Вы можете хоть массив из массивов сделать, только достаточно медленно сие будет работать.

Вы саму задачу опишите. Пока Вы рассказываете только про уже выбранное решение.

Отправлено: 18:15, 16-03-2019 | #9


Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3036
Благодарности: 1000

Профиль | Сайт | Отправить PM | Цитировать


-TRM-,
Код: Выделить весь код
Execute('$aArray_' & $i & '[1][1] = ' & 'value')
Не проверял, пишу с телефона.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 20:34, 16-03-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание массива через Assign

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] создание массива в цикле Neldoreth_inf Скриптовые языки администрирования Windows 2 24-02-2017 07:42
PowerShell - [решено] Создание собственного массива объектов powershell 2.0 dosperados Скриптовые языки администрирования Windows 2 01-07-2015 11:25
Delphi - Создание массива кнопок VovanZ Программирование и базы данных 3 24-12-2009 22:49
Создание raid массива на работающей системе Orfan Microsoft Windows NT/2000/2003 5 28-10-2008 23:10
Создание динамического массива на Pascal-е Skynet Программирование и базы данных 3 09-10-2004 18:05




 
Переход