|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Проверка на doslib
Проектировщик ВК. LISP-любитель.
Москва
Регистрация: 15.12.2003
Сообщений: 1,202
|
||
Просмотров: 4941
|
|
||||
Для проверки загружен или нет какой-нибудь arx-файл, который экспортирует lisp-функции, я обычно использую проверку на nil одной из этих функций. Этот способ годится и для doslib - но вот загрузить arx-file не зная его имени (!!!) - это проблема.
|
||||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Александр Ривилис
![]() Ну вопрос, конечно, не про "загрузить", а про "проверить". Раньше тоже делал проверку на существование используемой функции, а тут решил написать что-то универсальное. Спасибо. Натолкнули меня на мысль- сделаю функцию-обертку для dislib'овских функций с проверкой на тип.
__________________
apel.fas |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Ну вот как-то так:
Код:
__________________
apel.fas |
|||
![]() |
|
||||
Я бы сделал немного универсальнее, т.е. не фиксировал бы имя каталога (и возможно имя arx-файла), а предложил бы пользователю выбрать его. Если arx-файл нормально загрузился и функция появилась, то записал бы в регистратуру путь к arx-файлу при помощи (setenv ...). Это необходимо было бы делать однократно при первом обращении к любой из функций doslib. Разумеется для каждой из линеек AutoCAD (setenv ...) записывал в свою переменную. При последующих вызовах при помощи (getenv ...) в зависмости от линейки AutoCAD находил бы arx-файл и загружал его...
Как-то так... ![]() |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
Может, будет лучше писать вообще в свой ключ реестра? Тогда к конкретной линейке када привязываться не надо будет...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Александр Ривилис
ИМХО пользователю нафиг не надо знать что такое вообще doslib, и тем более заставлять его искать некий непонятный файл. Вот если по умолчальному пути он найден не будет, тогда можно, как запасной вариант. Ну надо ж, а я впервые узнал о getenv и setenv :shock: Можно поподробнее об этом? kpblc а как не привязываться, если arx разные для разных версий? Или я чего-то недопонимаю?
__________________
apel.fas |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
И ARX разные, и нет системы в наименовании ARX. Последний называется DOSLib17.arx.
Вообще-то все действительно нужное из DOSLib лучше перекрыть своими. И забыть, с благодарностью автору за многолетнее развитие библиотеки. А если уж применять, то, чтобы не менять тексты программ, записать в INI или в свой раздел реестра соответствие имен ARX версиям Автокада. Например: [DOSLib] 15=DOSLib2k.arx 16=DOSLib2004.arx 17.1=DOSLib17.arx 19.4=DOSLib2009.arx Можно происывать и полный путь, чтобы сразу загружать |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
(getenv "ACAD") - получишь пути поддержки текущего профиля када.
(setenv "ACAD") - соответственно установишь. Насчет версий arx. Если уже получен список нужных arx, попробуй такое: Код:
Добавлено: имена должны быть полными. Для их получения я использую функцию от ZZZ с http://www.autocad.ru/cgi-bin/f1/board.cgi?t=19612AN : Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
kpblc
Это все к чему (про загрузку)?
__________________
apel.fas |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
Как к чему? Натравливаешь z-files-in-directory на каталоги, в которых могут быть нужные тебе arx-ы, получаешь на выходе список файлов arx с полными именами и загружаешь их, если это вообще возможно.
Или теперь уже я ничего не понял?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
Цитата:
z-files-in-directory в несколько измененном виде я пользуюсь для загрузки своей базы функций, но здесь, мне кажется, оно не надо, т.к. те файлы с библиотекой что я сам к базе приложу, известны с именем и отн. путем, а тот что может быть у пользователя - он сам точно и укажет.
__________________
apel.fas |
|||
![]() |