допустим есть такое:
:local a [:toaray "192.168.88.1, 10.10.10.5 , 16.10.11.2"]
Тут всё ясно, создаем простой массив a и заполняем его значениями ip.
А можно ли заполнить его значениями переменных типа так:
:local host1 192.168.88.1
:local host2 10.10.10.5
:local host3 16.10.11.2
:local a [:toaray $host1, $host2, $host3]
Оказывается фиг - так нельзя ... Рос не понимает такое ...
Как только не пробовал, удалось только так:
:local a ({});
:set ($a->0) $host1
:set ($a->1) $host2
:set ($a->2) $host3
Так можно. Но криво как то. Может есть более изящный рецепт ?
заполнение простого массива значениями имен переменных
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Сам спросил, сам ответил - сам затупил ...
Конечно можно гораздо проще:
:local a ({$host1; $host2; $host3})

Конечно можно гораздо проще:
:local a ({$host1; $host2; $host3})

фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Да можно и так:
Это смотря чего добиваешься от массива. Там можно вообще вложить приличную информацию в массив.Ну например:
Код: Выделить всё
[podarok66@RB750Gr3] > global ty {host1=192.168.88.1; host2=10.10.10.5; host3=16.10.11.2}
[podarok66@RB750Gr3] > :put ($ty->"host2")
10.10.10.5
Код: Выделить всё
[podarok66@RB750Gr3] >global ty {host1={gateway="192.168.88.1"; network="192.168.88.0/24"; addresses="DHCP"};host2={gateway="10.10.10.5"; network="10.10.10.0/26"; addresses="static"};host3={gateway="16.10.11.2"; network="192.168.101.0/24"; addresses="DHCP"};}
[podarok66@RB750Gr3] > :put ($ty->"host2"->"network")
10.10.10.0/26
[podarok66@RB750Gr3] > :put ($ty->"host3")
addresses=DHCP;gateway=16.10.11.2;network=192.168.101.0/24
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Приветствую, podarok66 !
Вы пишите про ключевые массивы, и тем более многомерные, а мне нужен был простой, не ключевой, содержащий только ip-адреса, но чтобы он "заполнялся" значениями переменных.
то есть нельзя просто объявить массив и указать в нем значения числами, а нужно сделать так, чтобы значения в массив попали из переменных.
Вот и изврат такой был.
Он кстати так и не решен способом :local a ({$host1; $host2; $host3}), выяснился странный глюк роутер ос - об этом напишу позже, когда "раскопаю" в чём дело ...
Вы пишите про ключевые массивы, и тем более многомерные, а мне нужен был простой, не ключевой, содержащий только ip-адреса, но чтобы он "заполнялся" значениями переменных.
то есть нельзя просто объявить массив и указать в нем значения числами, а нужно сделать так, чтобы значения в массив попали из переменных.
Вот и изврат такой был.
Он кстати так и не решен способом :local a ({$host1; $host2; $host3}), выяснился странный глюк роутер ос - об этом напишу позже, когда "раскопаю" в чём дело ...
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Sertik, я вас категорически! А такой вариант чем не устраивает?
Код: Выделить всё
[podarok66@RB750Gr3] > :global host1 "192.168.88.1"
[podarok66@RB750Gr3] > :global host2 "10.10.10.5"
[podarok66@RB750Gr3] > :global host3 "16.10.11.2"
[podarok66@RB750Gr3] > :global ty {($host1);($host2);($host3);}
[podarok66@RB750Gr3] > :put $ty
192.168.88.1;10.10.10.5;16.10.11.2
[podarok66@RB750Gr3] > :put ($ty->2)
16.10.11.2
[podarok66@RB750Gr3] > :put ($ty->0)
192.168.88.1
[podarok66@RB750Gr3] > :global host4 "16.22.0.5"
[podarok66@RB750Gr3] > :set ty ($ty,($host4))
[podarok66@RB750Gr3] > :put $ty
192.168.88.1;10.10.10.5;16.10.11.2;16.22.0.5
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03
Приветствую ещё раз. Хорошо, когда есть друзья !
Всё верно !
P/S С испугу, после работы или от усталости разделителями между элементами массива запятые поставил !
Ну и как следствие - объявление трех элементов в массиве РОС считала одной строкой ...
, а правильно конечно ну или :global ...
Отдыхать нужно своевременно ... И новости по телику меньше смотреть ...
В Вашем примере всё верно ! Простите ДОКа (совсем у нас пора горячая ...)
Тему можно закрыть.

Всё верно !
P/S С испугу, после работы или от усталости разделителями между элементами массива запятые поставил !
Код: Выделить всё
:local a ({$host1, $host2, $host3})


, а правильно конечно
Код: Выделить всё
:local a ({$host1; $host2; $host3})
Отдыхать нужно своевременно ... И новости по телику меньше смотреть ...
В Вашем примере всё верно ! Простите ДОКа (совсем у нас пора горячая ...)
Тему можно закрыть.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947