Динмическое создание переменных
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Динмическое создание переменных

Динмическое создание переменных

Ответ
Поиск в этой теме
Непрочитано 21.04.2011, 12:43 #1
Динмическое создание переменных
PanNik
 
Регистрация: 09.03.2011
Сообщений: 6

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

Суть в том чтобы передавать в функцию название (прим. Primer), и значение (прим. trololo). Он бы создавал переменную Primer1 содержащую trololo, в следующий раз, если кинуть туда Primer и любое значение, он бы создавал Primer2, с тем самым значением...
Просмотров: 6171
 
Непрочитано 21.04.2011, 13:02
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


показывай код своих "усилий".
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.04.2011, 14:20
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Я думаю что переменные это от незнания что такое ассоциативный список. Тебе для чего они нужны?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 22.04.2011, 07:06
#4
PanNik


 
Регистрация: 09.03.2011
Сообщений: 6


hwd

Показывать, собственно, нечего. Есть только блок-схема.

VVA
Переварил найденные в инете крохи информации про ассоциативный список. Очень удобно. Где бы поподробнее что нибудь почитать?

И вот еще такой вопрос, можно ли через Autolisp разбить динамический блок на полилинии, из которых он состоял.

Последний раз редактировалось PanNik, 22.04.2011 в 08:03.
PanNik вне форума  
 
Непрочитано 22.04.2011, 08:28
#5
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


А зачем разбивать? Состав блока выцепить можно и так.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 22.04.2011, 11:34
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


PanNik, Я тебе пример привел в #27
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.04.2011, 12:17
#7
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Можно и мне вставить пару копеек?

Есть такая замечательная функция как set (не путать с setq!)
Ей можно имя переменной задавать другой переменной.
Типа:
Код:
[Выделить все]
(setq num 12345);переменная где хранится последний номер динамической переменной
(setq abcd (strcat "yoklmn" (vl-princ-to-string num)))

;собственно создание динамической переменной
(set (read abcd) "что угодно")

;зная начальный и конечный номера массива переменных мы можем
;прочесть все от yoklmn0 до yoklmn12345
Supermax вне форума  
 
Автор темы   Непрочитано 22.04.2011, 12:40
#8
PanNik


 
Регистрация: 09.03.2011
Сообщений: 6


VVA, ага, уже видел, спасибо!
PanNik вне форума  
 
Непрочитано 22.04.2011, 16:52
#9
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Мой тебе совет...
Никогда не используй эту динамическую хрень
Lisp есмь фича юзающая списки
Особенно игнорируй Супермаксово
ИМКХЭ
Олег (jr.) вне форума  
 
Непрочитано 22.04.2011, 16:54
#10
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Олег (jr.), лично я только с третьего раза понял чего ты хотел сказать
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 23.04.2011, 10:54
#11
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Олег (jr.), лично я только с третьего раза понял чего ты хотел сказать
Не люблю флудить... кароч:
нафик динамические, если есть NTH и др ф-ции
На практике вряд ли эти динамические будут
использоваться
Олег (jr.) вне форума  
 
Непрочитано 24.04.2011, 17:33
#12
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Что за дым? Я этот код систематически использую. Когда надо обрабатывать много элементов, надо не создавать себе проблем с огромными списками' а сразу формировать и классифицировать нужные данные. К любой переменной можно создать подтипы с номерами.
и переменную с границей диапазона.
И поверьте' я знаю вкус с этих устриц.
Supermax вне форума  
 
Непрочитано 24.04.2011, 21:26
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Сугубо ИМХО - лишнее. В LISP'е намного проще создавать [ассоциативные] списки и работать с ними, чем создавать динамические переменные.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.04.2011, 15:24
#14
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Supermax,
ммм...а вот как бы все эти переменные обозначить для функции как локальные? А то мусорить как-то не хорошо.
Apelsinov вне форума  
 
Непрочитано 25.04.2011, 15:33
#15
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Цитата:
Сообщение от Apelsinov Посмотреть сообщение
ммм...а вот как бы все эти переменные обозначить для функции как локальные? А то мусорить как-то не хорошо.
Просто установить для всех nil - очистка переменных в конце функции

Код:
[Выделить все]
 (mapcar '(lambda (var) (set (read var) nil)) listVals)
где listVals - список с переменными
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 15:40
#16
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Shraybicus, ну то есть списочек то придется ввести, ч.т.д., да и засовывать эту заплатку придется в обработчик ошибок, на всякий.
Apelsinov вне форума  
 
Непрочитано 25.04.2011, 15:46
#17
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Supermax Посмотреть сообщение
Я этот код систематически использую. Когда надо обрабатывать много элементов, надо не создавать себе проблем с огромными списками' а сразу формировать и классифицировать нужные данные
Можно пример описания задачи где это с Вашей точки зрения оправдано.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 25.04.2011, 16:05
#18
Shraybicus


 
Регистрация: 05.12.2010
Сообщений: 104


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно пример описания задачи где это с Вашей точки зрения оправдано.
Могу привести пример, когда мне это понадобилось.
Когда писал диал. окна с помощью DCL-окон, то прикручивал к элементам окна функции (такие как, например, set_tile). Конечно надо было создать для начала список с ключами полей формы.
Это позволило значительно сократился код в размере.

Цитата:
Сообщение от Apelsinov Посмотреть сообщение
Shraybicus, ну то есть списочек то придется ввести, ч.т.д., да и засовывать эту заплатку придется в обработчик ошибок, на всякий.
Всегда есть отрицательные стороны.
Shraybicus вне форума  
 
Непрочитано 25.04.2011, 17:58
#19
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Я делаю так(иногда):
Код:
[Выделить все]
(setq var_name (list 'var1 'var2));имена переменных
(setq var (list 10 20));значения переменных

(mapcar 'set var_name var);присвоение значения переменным
(mapcar '(lambda (x) (set x nil)) var_name);удаление мусора
__________________
Никогда не спорьте с дураками - они опустят Вас до своего уровня и победят за счет опыта
CB вне форума  
 
Непрочитано 25.04.2011, 18:31
#20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Цитата:
Сообщение от Shraybicus Посмотреть сообщение
Когда писал диал. окна с помощью DCL-окон, то прикручивал к элементам окна функции (такие как, например, set_tile). Конечно надо было создать для начала список с ключами полей формы.
Когда мне подобное требуется, я просто читаю dcl-файл (если это вообще требуется), и фильтрую элементы со словом "key=". А имена ключей у меня и так подчиняются некоторым моим внутренним законам, так что отследить, что за что отвечает - не проблема.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Динмическое создание переменных



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание диалоговых окон в AutoCAD TwoZero Программирование 145 11.03.2015 18:15
Как выдать список переменных (setvar) в текстовый файл Кларисса AutoCAD 6 03.06.2013 13:20
Программно получить список системных переменных (без вывода в текстовый файл) Ax3 Программирование 3 27.12.2010 16:29
Создание Unnamed group. Как? Diman111 Программирование 4 25.02.2008 09:29
Одна из целей: Создание экспертных систем на базе AutoCAD. Сергей Юрьевич Программирование 9 01.01.2005 15:17