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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Просьба протестировать функцию

Просьба протестировать функцию

Ответ
Поиск в этой теме
Непрочитано 15.05.2007, 09:11 #1
Просьба протестировать функцию
ShaggyDoc
 
Thượng Tá Quân Đội Nhân Dân Việt Nam
 
44d32'44"С, 33d26'51"В
Регистрация: 14.03.2005
Сообщений: 13,372

Есть подозрения на ужасный глюк AutoCAD. Вопрос в том, или это для версии, для экземпляра и т.п.

Прошу отчаянных добровольцев проверить этот код:

Код:
[Выделить все]
(defun test_path (/ support_path)
  (print (getvar "ACADVER"))
  (print (setq support_path (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))))
  (vla-put-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) (strcat "C:\\XXX\\;" support_path))
  (print (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))))
  (vla-put-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) support_path)      
  (print (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))))
)
(test_path)
Просто скопируйте в редактор VL и отправьте код на выполнение. В результате должны напечататься 4 строки, которые надо вставить в ответ.

Это не больно, ваши Автокады не пострадают. Для вас это ничего не значит, а для меня поддержка в жизни.
Просмотров: 7058
 
Непрочитано 15.05.2007, 09:19
#2
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Цитата:
"17.0s (LMS Tech)"
"C:\\Documents and Settings\\Admin\\Application Data\\Autodesk\\AutoCAD 2007\\R17.0\\enu\\support;C:\\Program Files\\AutoCAD 2007\\support;C:\\Program Files\\AutoCAD 2007\\fonts;C:\\Program Files\\AutoCAD 2007\\help;C:\\Program Files\\AutoCAD 2007\\express;C:\\Program Files\\AutoCAD 2007\\support\\color;D:\\Library\\Parameters\\Blocks;D:\\Library\\Parameters\\Font;D:\\Library\\Parameters\\Icons;D:\\Library\\Parameters\\Library_Type;D:\\Library\\Parameters\\Lisp;D:\\Library\\Parameters\\Lisp\\PlineModify;D:\\Library\\Parameters\\Palette;D:\\Library\\Parameters\\Table;D:\\Dokuments\\Sergei\\AutoCAD\\LISP\\Weld\\VLX"
"C:\\Documents and Settings\\Admin\\Application Data\\Autodesk\\AutoCAD 2007\\R17.0\\enu\\support;C:\\Program Files\\AutoCAD 2007\\support;C:\\Program Files\\AutoCAD 2007\\fonts;C:\\Program Files\\AutoCAD 2007\\help;C:\\Program Files\\AutoCAD 2007\\express;C:\\Program Files\\AutoCAD 2007\\support\\color;D:\\Library\\Parameters\\Blocks;D:\\Library\\Parameters\\Font;D:\\Library\\Parameters\\Icons;D:\\Library\\Parameters\\Library_Type;D:\\Library\\Parameters\\Lisp;D:\\Library\\Parameters\\Lisp\\PlineModify;D:\\Library\\Parameters\\Palette;D:\\Library\\Parameters\\Table;D:\\Dokuments\\Sergei\\AutoCAD\\LISP\\Weld\\VLX"
"C:\\Documents and Settings\\Admin\\Application Data\\Autodesk\\AutoCAD 2007\\R17.0\\enu\\support;C:\\Program Files\\AutoCAD 2007\\support;C:\\Program Files\\AutoCAD 2007\\fonts;C:\\Program Files\\AutoCAD 2007\\help;C:\\Program Files\\AutoCAD 2007\\express;C:\\Program Files\\AutoCAD 2007\\support\\color;D:\\Library\\Parameters\\Blocks;D:\\Library\\Parameters\\Font;D:\\Library\\Parameters\\Icons;D:\\Library\\Parameters\\Library_Type;D:\\Library\\Parameters\\Lisp;D:\\Library\\Parameters\\Lisp\\PlineModify;D:\\Library\\Parameters\\Palette;D:\\Library\\Parameters\\Table;D:\\Dokuments\\Sergei\\AutoCAD\\LISP\\Weld\\VLX"
ACAD2007
Krieger вне форума  
 
Непрочитано 15.05.2007, 09:24
#3
shnn

Инженер
 
Регистрация: 18.02.2005
Самара
Сообщений: 747


Цитата:
Command: (test_path)
"16.1s (LMS Tech)"
"C:\\Mok\\A2005\\Fonts;C:\\Mok\\A2005;C:\\Mok\\;C:\\Mok\\lw;C:\\Mok\\A2005\\enu\
\Support;C:\\Mok\\A2005\\Express;C:\\Program Files\\AutoCAD
2005\\help;C:\\Program Files\\AutoCAD 2005\\support\\color"
"C:\\Mok\\A2005\\Fonts;C:\\Mok\\A2005;C:\\Mok\\;C:\\Mok\\lw;C:\\Mok\\A2005\\enu\
\Support;C:\\Mok\\A2005\\Express;C:\\Program Files\\AutoCAD
2005\\help;C:\\Program Files\\AutoCAD 2005\\support\\color"
"C:\\Mok\\A2005\\Fonts;C:\\Mok\\A2005;C:\\Mok\\;C:\\Mok\\lw;C:\\Mok\\A2005\\enu\
\Support;C:\\Mok\\A2005\\Express;C:\\Program Files\\AutoCAD
2005\\help;C:\\Program Files\\AutoCAD 2005\\support\\color"
"C:\\Mok\\A2005\\Fonts;C:\\Mok\\A2005;C:\\Mok\\;C:\\Mok\\lw;C:\\Mok\\A2005\\enu\
\Support;C:\\Mok\\A2005\\Express;C:\\Program Files\\AutoCAD
2005\\help;C:\\Program Files\\AutoCAD 2005\\support\\color"
AutoCAD 2005
shnn вне форума  
 
Непрочитано 15.05.2007, 09:28
#4
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


AutoCAD 2005 eng
Код:
[Выделить все]
"16.1s (LMS Tech)" 
"C:\\Documents and Settings\\bausk\\Application Data\\Autodesk\\AutoCAD 2005\\R16.1\\enu\\support;C:\\Program Files\\AutoCAD 2005\\support;C:\\Program Files\\AutoCAD 2005\\fonts;C:\\Program Files\\AutoCAD 2005\\help;C:\\Program Files\\AutoCAD 2005\\express;C:\\Program Files\\AutoCAD 2005\\support\\color;C:\\Program Files\\NERL Alto;C:\\Program Files\\NERL Alto\\support" 
"C:\\Documents and Settings\\bausk\\Application Data\\Autodesk\\AutoCAD 2005\\R16.1\\enu\\support;C:\\Program Files\\AutoCAD 2005\\support;C:\\Program Files\\AutoCAD 2005\\fonts;C:\\Program Files\\AutoCAD 2005\\help;C:\\Program Files\\AutoCAD 2005\\express;C:\\Program Files\\AutoCAD 2005\\support\\color;C:\\Program Files\\NERL Alto;C:\\Program Files\\NERL Alto\\support" 
"C:\\Documents and Settings\\bausk\\Application Data\\Autodesk\\AutoCAD 2005\\R16.1\\enu\\support;C:\\Program Files\\AutoCAD 2005\\support;C:\\Program Files\\AutoCAD 2005\\fonts;C:\\Program Files\\AutoCAD 2005\\help;C:\\Program Files\\AutoCAD 2005\\express;C:\\Program Files\\AutoCAD 2005\\support\\color;C:\\Program Files\\NERL Alto;C:\\Program Files\\NERL Alto\\support" "C:\\Documents and Settings\\bausk\\Application Data\\Autodesk\\AutoCAD 2005\\R16.1\\enu\\support;C:\\Program Files\\AutoCAD 2005\\support;C:\\Program Files\\AutoCAD 2005\\fonts;C:\\Program Files\\AutoCAD 2005\\help;C:\\Program Files\\AutoCAD 2005\\express;C:\\Program Files\\AutoCAD 2005\\support\\color;C:\\Program Files\\NERL Alto;C:\\Program Files\\NERL Alto\\support"
Доктор, я смогу ходить?
Александр Бауск вне форума  
 
Непрочитано 15.05.2007, 09:31
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Получил 4 конфиденциальные строки...
Profan вне форума  
 
Автор темы   Непрочитано 15.05.2007, 09:56
#6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Объясняю, в чем дело.

1. В первой строке теста печатается версия Автокада (чтобы вручную не напрягаться с "конфиденциальностью".

2. Во второй строке функция vla-get-supportpath должна возвращать SupportPath, разделенные ; Эта строка записывается в реестр, а пути отображаются в диалоге Options в Support File Search Path. Мы ее запомнили, чтобы восстановить потом

3. В третьей строке функцией vla-put-supportpath добавляем в начало фиктивный каталог. В этот момент этот каталог добавляется и в реестр и в диалог (проверить можно пошаговым исполнением).

4. В четвертой строке мы читаем с помощью vla-get-supportpath дорожку. А в ней нет добавленного каталога!!!

5. В пятой строке восстанавливаем первоначальный путь - чтобы у тестеров не осталось грязи. А потом еще раз печатаем для проверки.

Пока у всех показывает, что vla-get-supportpath возвращает не все. Причем возвращает не все, даже если Автокад перезагрузить - хотя в реестре и диалоге новый каталог показывается.

Не могу понять в чем дело. Может быть я зациклился на какой-то элементарной ошибке? Натычьте носом.
ShaggyDoc вне форума  
 
Непрочитано 15.05.2007, 09:59
#7
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Получил одну строку:
Цитата:
"16.1s (LMS Tech)" no function definition: VLAX-GET-ACAD-OBJECT
(У меня Acad-2005 eng)
Pilot вне форума  
 
Непрочитано 15.05.2007, 10:24
#8
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Цитата:
Сообщение от ShaggyDoc
Причем возвращает не все, даже если Автокад перезагрузить - хотя в реестре и диалоге новый каталог показывается.
А вот это действительно странно.
У меня какое-то ощущение дежавю, если честно.
Пойду покопаюсь в своем приложении. Я смутно помню, что во время оно здорово намучился с этими путями.
Александр Бауск вне форума  
 
Непрочитано 15.05.2007, 10:28
#9
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


Аналогично, не сохраняется.
а если сделать изменения, выйти из проги, а потом считать другой?
Я к тому что может быть реестр надо "перечитать"

-Читал предыдущие посты невнимательно, каюсь

> PilotПодгрузи (vl-load-com)
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Непрочитано 15.05.2007, 10:29
#10
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


Цитата:
ACAD 2002
"15.06"
"C:\\AutoCAD\\AutoCAD 2002\\support;C:\\AutoCAD\\AutoCAD 2002\\fonts;C:\\AutoCAD\\AutoCAD 2002\\help;
C:\\Program Files\\ToolPac"
Цитата:
ACAD 2006
"16.2s (LMS Tech)"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD 2006\\R16.2\\enu\\support;
C:\\AutoCAD\\AutoCAD 2006\\support;C:\\AutoCAD\\AutoCAD 2006\\fonts;C:\\AutoCAD\\AutoCAD 2006\\help;
C:\\AutoCAD\\AutoCAD 2006\\Express;C:\\AutoCAD\\AutoCAD 2006\\support\\color"
Цитата:
ACAD 2007
"17.0s (LMS Tech)"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD
2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD
2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD
2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color" "C:\\Documents and Settings\\O_Krilov\\Application
Data\\Autodesk\\AutoCAD 2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
Запускал функцию из VL-редактора - во всех случаях получал три одинаковые строки. Потом решил в 2007 повторно вручную запустить из командной строки и получил в ответ уже 4 строчки (приведен полный листинг). Дальше интереснее: при запуске из VL-редактора всегда выводит только 3 строки, а командой (test_path) уже 4 строки!
Никак не пойму, откуда эта лишняя строка появляется?
Олег К. вне форума  
 
Непрочитано 15.05.2007, 11:05
#11
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


С лишней строкой так и не разобрался, зато получилось вывести каталог.
Цитата:
"17.0s (LMS Tech)"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD
2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
"C:\\ZZZ;C:\\Documents and Settings\\O_Krilov\\Application
Data\\Autodesk\\AutoCAD 2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
"C:\\Documents and Settings\\O_Krilov\\Application Data\\Autodesk\\AutoCAD
2007\\R17.0\\enu\\support;C:\\AutoCAD\\AutoCAD
2007\\support;C:\\AutoCAD\\AutoCAD 2007\\fonts;C:\\AutoCAD\\AutoCAD
2007\\help;C:\\AutoCAD\\AutoCAD 2007\\Express;C:\\AutoCAD\\AutoCAD
2007\\support\\color"
Для этого немного изменил код
Код:
[Выделить все]
(defun test_path (/ support_path)
  (print (getvar "ACADVER"))
  (print (setq support_path (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))))))
  (vl-mkdir "C:\\ZZZ")
  (vla-put-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) (strcat "C:\\ZZZ;" support_path))
  (print (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))))
  (vla-put-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object))) support_path)     
  (print (vla-get-supportpath (vla-get-files (vla-get-preferences (vlax-get-acad-object)))))
)
(test_path)
И еще. При задании несуществующего каталога в путях поддержки (через Options) выдается сообщение "Path does not exist: C:\ZZZ. Are you sure you want to use this value?". Может как раз в этом все дело.
Олег К. вне форума  
 
Автор темы   Непрочитано 15.05.2007, 11:18
#12
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Несуществующий каталог я просто для примера включил. По идее, несуществующий каталог не должна включать функция vla-put. Но она его принимает, каталог записывается в реестр и появляется в диалоге.

Обязанность get-функции вернуть то, что записано, не умничая. Конечно, для гарантии можно включить и создание каталога.

Однако сталкиваюсь и с ситуациями, когда на другом компьютере не возвращается и имя реально существующего каталога. Нет стабильности, и однозначности, что еще опаснее.

PS - Лишняя строка - это просто результат выполнения всей функции. Один раз печатает print, а последний - результат.
ShaggyDoc вне форума  
 
Непрочитано 15.05.2007, 11:28
#13
Кулик Алексей aka kpblc
Moderator

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


А если попробовать через (setenv "ACAD")? Пишу с машины без установленного acad, поэтому могу ошибаться.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 15.05.2007, 11:44
#14
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Кулик Алексей aka kpblc
А если попробовать через (setenv "ACAD")? Пишу с машины без установленного acad, поэтому могу ошибаться.
setenv добавляет несуществующий каталог. getenv - не возвращает добавленный несуществующий, возвращает добавленный существующий.

Но дело не в том, как другим путем прочитать. Дело "в прынцыпе".
ShaggyDoc вне форума  
 
Непрочитано 15.05.2007, 12:53
#15
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Цитата:
Нет стабильности, и однозначности, что еще опаснее
Меня такие вещи в Акаде страшно бесят.
Выкладывает, например, кто-нибудь программу на VBA -> не работает -> надо пойти и подлючить какую-нибудь Reference -> Как бы он ее такую конечному пользователю продал бы, интересно?
Александр Бауск вне форума  
 
Автор темы   Непрочитано 15.05.2007, 14:30
#16
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Всех бесят. Но тут есть разные причины:

1. Недоработки со стороны автора - чаще всего. Обычно не со зла, просто автор чего-то не знает. Хотя бывает, что знает, но специально так делает. Обычно это неучет особенностей NT-подобных систем, прав пользователей и системы безопасности.

2. Глюки самого Автокада. Некоторые обнаруживаются не сразу. Например, вот эта ошибка (а может, и не "глюк", а "фича") объявилась на 1001-компьютере. А на 1000 - работает нормально. Но нужно было сочетание ряда непредсказуемых условий, чтобы наткнуться. Конечно, исправить - дело плевое, замена одного файла библиотеки функций решит проблему. Все пользователи на строгом учете.

Хуже, когда ужасные ошибки делаются в очень популярных системах. Например, сейчас массово переходят на OpenOffice. Мне пришлось тестировать плотно Calc и Base и выяснилось, что, при определенных условиях, они вообще неработоспособны. Причем предыдущие версии работали нормально, а самые свежие вообще разучились (Base). А Calc (заменитель Excel) вообще неправильно "калькулирует" в некоторых ситуациях. Причем об этом знают, но успокаивают (цитирую)

Цитата:
«Злые языки утверждают, что Calc не позволяет идентифицировать некорректные формулы (эта возможность — одна из самых ценных в Excel). Это так. Зато во всех остальных случаях приложение OpenOffice.org оказывается вполне достойным как по удобству и возможностям, так и по корректному отображению файлов форматов Microsoft Office (в частности, XLS)».
Приехали! Оказывается, если калькулятор неправильно проводит вычисления, то это не страшно. Это «злые языки» утверждают. Но «зато во всех остальных случаях» он вполне достойный.

Какие такие «остальные случаи» для плохо считающего калькулятора? Использование в качестве пресса для бумаг?

Спасибо всем за содействие с тестом. Ситуация прояснилась, решение найдено.
ShaggyDoc вне форума  
 
Непрочитано 15.05.2007, 14:32
#17
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 308


А-а, так получается исходная программа и не должна вернуть имя несуществующего каталога? И соотв обязана вывести имя существующего (извините, что уточняю, не очень разбираюсь в объектных функциях, а тем более в их связи с реестром).
Вспомнил еще о фаерволах, настройках безопасности винды и прочем. Ведь можно запретить программам менять записи в реестре, перемещать файлы программ и т.п. Хотя это Вы наверняка в первую очередь проверили.
Олег К. вне форума  
 
Непрочитано 15.05.2007, 14:54
#18
ФСФ

проектировщик
 
Регистрация: 07.03.2007
Шахты
Сообщений: 32


ShaggyDoc:
3. ... функцией vla-put-supportpath добавляем в начало фиктивный каталог. В этот момент этот каталог добавляется и в реестр и в диалог (проверить можно пошаговым исполнением).
4. В четвертой строке мы читаем с помощью vla-get-supportpath дорожку. А в ней нет добавленного каталога!!!

У меня результат тот же, если не создать заранее реальный каталог.
Реальный каталог в строке выводится. AutoCAD 2006 русский.
ФСФ вне форума  
 
Непрочитано 15.05.2007, 17:33
#19
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Если есть возможность отсутствия каталога в путях поддержки, то нужна фукция проверки на его присутствие, а там уже надо думать по каким причинам он изчез, например пользователь запустился со спецярлыка, сменил добавил удалил профиль, появился новый пользователь виндофс, случайно удалил из окна настроек. Если вашего пути поддержки нет но он нужен то добавить и после того как проверка пройдена грузить лиспы из этого каталога или выдать сообщение об ошибке.
я у себя свои лиспы так и гружу через ACADDOC. Эта мысль мне пришла в голову когда СПДС начал пользовать ну и когда там автокад переустановить надо чтоб в настройки не пользовать каждый раз он автоматически добавляется при первом запуске и при запуске СПДС. при этом я точно уверен что каталог есть на диске и все лиспы в нем присутствуют.

А если каталога нет на диске, но он был то тут явно пользователь сам постарался и сам виноват. "Ой, ма, смотри чёй это за каталог такой смешной C:\Documents and Settings\LAMER\Application Data\Autodesk\AutoCAD 2007\R17.0\rus\Support\ЧужиеLISPы". DELET. Тут уже ничего не поделаешь и ждет вас оказание вечного суппорта. И нет вашей вины, и пусчай он сам мучится.

Если программа расчитана на широкий круг пользователей которым невдомек, что ваша программа расположена в какомто каталоге. то не мешалобы сделать проверку на присутствие каталога непосредственно на диске, хотя это и не обязательно см. абзац выше.

А то, что, там ввел руками, удалил лиспом, попытался подсунуть несуществуючий это все ерунда. Если каталог есть на диске то проблем никаких не будет и все будет работать как надо.
mmax вне форума  
 
Автор темы   Непрочитано 15.05.2007, 22:01
#20
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Ой, не надо мне рассказывать, как писать программы. Разумеется, все что надо есть - и проверка профилей, и проверка каталогов, и их создание и прочее.

Сама проблема выявилась потому, что у меня есть специальная хитрющая дамочка, которой поручено строить всякие пакости с целью тестирования. Вот она и сумела создать ситуацию, когда после проверки каталогов меняется алгоритм их определения. Достаточно хитрым для дамочек, но допустимым способом (рассказывать не буду)

Здесь я просил только проверить на разных версиях функции get и put. По идее, одна (put) должна строку создать и записать куда положено, а вторая (get) должна строку прочитать. Проверка существования каталога - не их компетенция. Это делается на другом уровне. Например, в диалоговом окне при вводе несуществующего каталога выдается запрос. А если подтвердил, то он записывается, и это логично. Запрос - на уровне программы (команды), а запись - на уровне функции.

Если предположить, что нельзя в путях иметь несуществующий каталог, то тогда и put не должна его записывать. Но это должно быть документировано. В документации ограничений нет, да и put добавляет хоть что. А уж для get вообще не ее собачье дело что-то решать. Она должна вернуть то, что записано.

Иначе как же сделать проверку на ошибочные каталоги? В настройках-то они есть, а выявить можно только визуально или нештатными методами. А надо бы штатными.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Просьба протестировать функцию