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

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

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

Старожил


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


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

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


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

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

 

Аватара для Creat0R

Must AutoIt


Moderator


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

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


Цитата -TRM-:
Assign прочитал не поддерживает такое »
Зато поддерживает присвоение переменной массива другого массива:
Вот так вроде получилось то что тебе нужно:

Код: Выделить весь код
Global Const $sArray_Prefix = 'aArray_'

Global $aArray_1[1][2] = [[1, 'Item1']]
Global $aArray_2[1][2] = [[2, 'Item2']]
Global $aArray_3[1][2] = [[3, 'Item3']]
Global $aArray_4[1][2] = [[4, 'Item4']]
Global $aArray_5[1][2] = [[5, 'Item5']]

_ArraySet(2, 0, 1, 'New Item 2')
$sRet = _ArrayGet(2, 0, 1)

MsgBox(64, @ScriptName, '_ArrayGet(2, 0, 1) VS $aArray_2[0][1]' & @CRLF & $sRet & ' --> ' & $aArray_2[0][1])

Func _ArraySet($iArr, $iRow, $iCol, $sValue)
    Local $aArray = Eval($sArray_Prefix & $iArr)

    If UBound($aArray, 0) < 2 Or $iRow > UBound($aArray, 1) - 1 Or $iCol > UBound($aArray, 2) - 1 Then
        Return SetError(1, 0, 0)
    EndIf

    $aArray[$iRow][$iCol] = $sValue
    Assign($sArray_Prefix & $iArr, $aArray)
EndFunc

Func _ArrayGet($iArr, $iRow, $iCol = 0)
    Local $aArray = Eval($sArray_Prefix & $iArr)

    If UBound($aArray, 0) < 2 Or $iRow > UBound($aArray, 1) - 1 Or $iCol > UBound($aArray, 2) - 1 Then
        Return SetError(1, 0, 0)
    EndIf

    Return $aArray[$iRow][$iCol]
EndFunc

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

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

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

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

Это сообщение посчитали полезным следующие участники:

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



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

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



Компьютерный форум 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




 
Переход