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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как связаны между собой dictsearch и dictnext?

Как связаны между собой dictsearch и dictnext?

Ответ
Поиск в этой теме
Непрочитано 15.08.2022, 11:26 #1
Как связаны между собой dictsearch и dictnext?
name02
 
Регистрация: 10.01.2020
Сообщений: 185

Не могу понять как взаимодействуют между собой dictsearch и dictnext?

Как я понял из справки вызов dictsearch обнуляет счетчик dictnext.

В приложенном файле XRecord.dwg я уже создал словарь "my_dict" и в нем две записи "my_rec1" и "my_rec2".

Код:
[Выделить все]
 ;Определяем словарь
(setq dict (dictsearch (namedobjdict) "my_dict"))

;Переходим на первую запись
(dictnext (cdr (assoc -1 dict)))

;Переходим на вторую запись
(dictnext (cdr (assoc -1 dict)))

;Если будем повторять дальше, то ожидаемо получим nil

В справке Автокада по функции dictnext написано "The dictsearch function specifies the initial entry retrieved."
Я правильно понимаю, что вызывая dictsearch, счетчик dictnext "обнуляется"? Или он обнуляется только если вызывается другой словарь, отличный от предыдущего dictsearch'a? - так я понял из книги Полещука.
Нажмите на изображение для увеличения
Название: Полещук.png
Просмотров: 10
Размер:	91.5 Кб
ID:	249238

В любом случае я пробовал оба варианта - и повторно делал dictsearch для одного и того же словаря:
Код:
[Выделить все]
 
;Определяем словарь
(setq dict (dictsearch (namedobjdict) "my_dict"))

;Переходим на первую запись
(dictnext (cdr (assoc -1 dict)))

;Переходим на вторую запись
(dictnext (cdr (assoc -1 dict)))

;Повторно определяем тот же самый словарь
(setq dict (dictsearch (namedobjdict) "my_dict"))

;Но опять получаем nil
(dictnext (cdr (assoc -1 dict)))
А также определял другой словарь, после прохождения всех записей первого:
Код:
[Выделить все]
 
;Определяем словарь
(setq dict (dictsearch (namedobjdict) "my_dict"))

;Переходим на первую запись
(dictnext (cdr (assoc -1 dict)))

;Переходим на вторую запись
(dictnext (cdr (assoc -1 dict)))

;Определяем второй словарь. После этого как я понимаю dictnext "сбрасывается"
(setq dict (dictsearch (namedobjdict) "ACAD_TABLESTYLE"))

;Если вызовем dcitnext - то видно, что он работает
(dictnext (cdr (assoc -1 dict)))

;Теперь повторно определяем первый словарь
(setq dict (dictsearch (namedobjdict) "my_dict"))

;Но опять получаем nil
(dictnext (cdr (assoc -1 dict)))
Прошу объяснить, кто может, как же все-таки работа dictnext зависит от dictsearch?

Просмотров: 834
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как связаны между собой dictsearch и dictnext?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как соотносятся между собой баллы сейсмичности по нашим СнИП и СП и коэффициенты коэффициенты (Kh - фактор горизонтального ускорения, Кv - фактор вертикального ускорения) еврокода? Евгений Билык Конструкции зданий и сооружений 8 19.09.2023 11:42
GeoniCS. Создание подписи уклона между двумя произвольными точками поверхности? vitalyy5 Вертикальные решения на базе AutoCAD 0 28.08.2020 11:24
Чем крепить профнастил между собой? Aндрeй Конструкции зданий и сооружений 17 06.09.2017 19:46
Как отразить звуки от распахнутого окна квартиры? trel Архитектура 44 18.06.2015 06:11
Как быстро соединить между собой отрезки Velik84 AutoCAD 14 30.09.2012 22:39