| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
29.09.2020, 20:15 | #1 | |
Проверка значения в toolPalettePath
Регистрация: 28.05.2007
Сообщений: 208
|
||
Просмотров: 2583
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835
|
Без проверки:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
Спасибо большое!
Можно еще вопрос: у меня не получается применить этот код к моей задаче. Задача следующая, например: 1случай: а. Смотрим в существующие пути к палитрам в настройках Автокада (видим: C:\Users\user\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette C:\CAD\ToolPalettes C:\temp) б. Т.к. это НЕ равно "C:\путь1" либо "C:\путь2", то далее нужно записать эти 3-и пути в файл txt Код:
а. Смотрим в существующие пути к палитрам в настройках Автокада (видим: C:\путь1) б. Т.к. это равно "C:\путь1" либо "C:\путь2", то ничего далее в коде делать не нужно. 3случай: а. Смотрим в существующие пути к палитрам в настройках Автокада (видим: C:\путь2) б. Т.к. это равно "C:\путь1" либо "C:\путь2", то ничего далее в коде делать не нужно. Как дополнить Ваш код для моей задачи? |
|||
|
||||
olga87, как получается, что вы вроде и говорите на лиспе, но дальше алгоритмических заготовок не двигаетесь?!
Код:
Код:
Последний раз редактировалось koMon, 01.10.2020 в 11:21. |
||||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
я пишу на c#, но язык Лисп для меня сложнее кажется, не могу его еще понять.
За ответ спасибо большое, проверю. ----- добавлено через ~9 ч. ----- Код: Код:
Видимо логика моей задачи не удобная. Я думаю сделать ИНАЧЕ, а именно: Подскажите пожалуйста, как исправить код, чтобы ВСЕ пути из "exPath" сохранялись (записывались с добавлением) в файл TXT, кроме путей "c:\\Путь1" и "c:\\Путь2" (кроме путей из "custom_path_list" если таковые будут в "exPath"). Причем при записи в TXT исключить дублирование путей (записей). Может быть возможно считывать каждый путь отдельно в новую строку в txt? Спасибо заранее! Последний раз редактировалось olga87, 01.10.2020 в 06:52. |
|||
|
||||
для того, чтобы было по вашей логике нужно вписать else в конструкцию (if (setq file...)) см. вариант 2 в #4. это для записи exPath в txt только.
----- добавлено через ~15 мин. ----- для работы с файлом txt нужно понимание: 1. этот файл создаётся когда? 2. этот файл модифицируется (перезаписывается) с дополнениями к первоначальной записи или он перетирается и пишется с новыми данными, полученными лиспом? 3. если файл модифицируется, то в момент модификации кастомные пути могут уже быть в файле? Последний раз редактировалось koMon, 01.10.2020 в 11:27. |
||||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
1. этот файл создаётся когда?
Думаю в начале Код:
2. этот файл модифицируется (перезаписывается) с дополнениями к первоначальной записи или он перетирается и пишется с новыми данными, полученными лиспом? Добавлять с дополнениями к первоначальной записи. 3. если файл модифицируется, то в момент модификации кастомные пути могут уже быть в файле? Не должны. Задача: Взять все текущие пути к палитрам (из exPath например) и сохранить (с добавлением) в файл TXT, кроме путей "c:\\Путь1" и/или "c:\\Путь2" (кроме путей из "custom_path_list" если таковые будут присутствовать в "exPath" на момент работы кода). Причем при записи в TXT исключить дублирование путей (записей). Пример: 1) в начале имеем пути: C:\Users\user1\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette;C:\Путь1;C:\cad либо C:\Users\user1\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette;C:\Путь2;C:\cad либо C:\Users\user1\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette;C:\Путь2;C:\cad;C:\Путь1 вообщем любые вариации, и таких кастомных путей (которые не нужно иметь в txt при записи) "c:\\Путь1" и "c:\\Путь2" может быть несколько (около 10 например). 2) нужно в txt записать с добавлением все пути, кроме: "c:\\Путь1" "c:\\Путь2" и др. из "custom_path_list". Причем, если один или несколько путей (не кастомных) уже есть в этом txt, то повторно их добавлять НЕ нужно, т.е. исключить помимо "custom_path_list" и дубликаты. 3) В дальнейшем нужно все пути из этого txt применить к путям к палитрам (вернуть их), когда пользователь этого захочет, например, по кнопке с кодом. Последний раз редактировалось olga87, 01.10.2020 в 12:47. |
|||
|
||||
Код:
Последний раз редактировалось koMon, 02.10.2020 в 17:40. |
||||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
Спасибо большое!
Я тоже это время пыталась решить задачу но в c# и столкнулась что нужно обрабатывать знак ";" (поскольку настройки к палитрам хранятся как строка с разделителем). Вы сделали списком (красиво сделано, удобно в работе). Я еще проверю с разными ситуациями Ваш код в работе (и отпишусь), сейчас сразу заметила: НЕ нужно в файл txt добавлять "кастомные" пути, т.е. если среди "exPath_list" есть "кастомные пути", то их нужно исключить (НЕ передовать в txt). Подскажите пожалуйста, как исправить Ваш код, добавив это условие исключения? Последний раз редактировалось olga87, 02.10.2020 в 12:57. |
|||
|
||||
если оценивать кастомность путей по запредельности от "c:\users", то можно удалить их из списка функцией (delete_custom_path), см. #8
|
||||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
Нужно просто из всех путей (exPath_list) исключить "кастомные" (это пути которые создаются мной, как шаблонные, т.е. они в txt не должны записываться).
Если исправить, как ниже: Код:
Последний раз редактировалось olga87, 02.10.2020 в 17:11. |
|||
|
||||
давайте внесём ясность в чтение и запись данных.
1. лисп не запущен. toolPalettePath хранит, например "C:\Users\user1\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette;C:\Путь2;C:\cad;C:\Путь1". файла txt нет. 2. запускаем лисп, он читает toolPalettePath в список. в лиспе определён список кастомных путей, например ("c:\Путь1" "c:\Путь2"). 3. после отработки лиспа нужно чтобы в созданный txt записались пути, которые были в toolPalettePath, кроме ("c:\Путь1" "c:\Путь2"), но с "C:\cad"? или? ----- добавлено через ~3 мин. ----- |
||||
|
||||
Регистрация: 28.05.2007
Сообщений: 208
|
Да, верно.
Т.е. результат, например: "C:\Users\user1\AppData\Roaming\Autodesk\AutoCAD 2020\R23.1\rus\Support\ToolPalette;C:\cad Только нужно сделать циклом, чтобы все кастомные (когда их несколько) удалялись из списка txt. Код:
Последний раз редактировалось olga87, 02.10.2020 в 17:38. |
|||
|
||||
я скорректировал код в #8, видимо так, как это должно быть финально
|
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор правильного значения усилия затяжки для высокопрочных болтов М30 | dik-son | Металлические конструкции | 8 | 21.10.2017 21:36 |
Как вставить в текстовое поле первые символы значения свойства чертежа (подшивки)? | KiisteN | Программирование | 5 | 21.10.2017 14:46 |
Схемы сдвига грунта в геологическом отчете. Какие принимать значения для сцепления и угла внутреннего трения при различных схемах сдвига? | kuatro777 | Основания и фундаменты | 6 | 24.10.2013 00:52 |
Значения экстремумов на стержнях | zlo270 | Лира / Лира-САПР | 3 | 26.02.2012 23:30 |
Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов? | Кулик Алексей aka kpblc | Программирование | 8 | 22.07.2010 15:01 |