|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Загрузил файл _kpblc-ini-datas-read.LSP. Смотрю функцию _kpblc-ini-datas-read
Цитата:
![]() Не всё выслал?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Конечно, не все. Я выложил для анализа кода (ну и надеюсь, что получу рекомендации по улучшению
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Как видим - получена ошибка. Содержимое тестового ini-файла: Код:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Уговорил. Попробую все в один файл засунуть... Дай только примерно часа 2 - срочной работы немеряно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 01.10.2010 в 11:42. |
|||
![]() |
|
||||
Цитата:
Судя по тому, что не находится функция, выдающая отчёт об ошибке - данный ini-файл не будет обработан корректно даже если ты и засунешь ту функцию в lisp-файл.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В #24 добавил полностью работающие коды (lsp и fas)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
|||||
Цитата:
Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 01.10.2010 в 11:59. |
|||||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Цитата:
Случай из жизни: Звонит коллега - "ВСЁ ПРОПАЛО". выполнял срочный заказ пользуясь одним небезизвестным и недешовым электротехническим сапром (последние технологии от микрософта, проект - база данных, net, xml, кароче всё серьезно). сломался винт. восстановил данные за деньги в спец.конторе. Всё вроде восстановилось, а проект не открывается - программа падает при открытии... от последней резервной копии - 3 дня авральной работы. Вскрытие показало, что программу валило отсутствие нескольких файлов нулевой длинны, файлы не были восстановлены т.к. не содержат данные. создал их руками и чудо - всё заработало |
|||
![]() |
|
||||
>Алексей Кулик
Да Лёша, теперь заработало. Есть одно маленькое замечание, показываю скрин: ![]() В результирующем списке не реализовано удаление лишних пробелов в начале и в конце как имени ключа, так и в назначенном ему значении. Пробелы могут случайно поставить пользователи при ручной правке ini-файла. Конечно это не смертельно и можно удалить их из результата, но на мой взгляд лучше было бы это выполнить сразу в теле твоих функций. Ну и... пустые группы в результирующем списке отсутствуют (хотя возможно это так тобою и задумано...).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Пробелы не удалял, т.к. как-то не видел файлов с пробелами в начале и / или конце ключа. Поэтому и не предусматривал.
Пустые группы как-то тоже не видел: либо есть хранимая информация, и тогда нужны и группы, и ключи, либо этой информации нет, и ставить пустые заглушки туда смысла никакого. Это - не xml, тут валидность не настолько жестко определяется ![]() Сугубо ИМХО.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
ИХМО по этому вопросу - в каком формате и где содеражть внутренние данные программы - дело сугубо личное и выбирать только исходя из задачи - форматы файла расчитанные на то, что с ними будет работать другая программа или в ручную править юзер - это бред и аттавизм (тем более если под net), если подразумеваеться использовать данные из другой программы - нужно сделать импорт\экспорт в формат под задачу - это может быть и xml, но как формат передачи данных - ихмо он не очень (в 90% случаев csv гораздо эффективней, да и библиотек для него не меньше) т.к. чтоб разобрать его программа должна четко знать (догадываться-то они пока не умеют) ,что и с каким полем нужно делать - xml удобен для хранения (в зазипованном виде) "сложновложенных" данных с "прицелом" на расширение формата (самое толковое и правильное применение в openoffice) - там он (XML) более чем оправдан, а в остальном, тем более если мы говорим про современные языки, никаких "ручных" правок файлов и залезание в "чужие" файлы быть не должно - для этого есть графические формы и протоколы обмена информацией между приложениями (com как минимум) - эксель фалы вы как програмно редактируете (читаете)?, а dwg - правильно вызывая сам эксель, автокад - вот это и есть правильный подход.
з.ы. для чего "чужой" программе лезть в Ваши настройки без Вашего участия лично для меня вопрос, а тем более если это документировать - это получаеться мне перед каждым действием проверять - не поменялись ли мои-же настройки?
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
|||||
Цитата:
Привожу пример: У меня имеется маленькая библиотека, которая при запуске автокада выполняет синхронизацию определённых локальных каталогов с серверными. Управление синхронизацией ведётся через xml-файл. Изначально никакого GUI не было запланировано (нужно было быстро написать решение стоящей задачи, а вносить исправления в xml приходится не часто). Однако... вручную такой файл править всё же не хочется - потому позднее написал отдельное, внешнее приложение, работающее вне AutoCAD и позволяющее визуально, через GUI выполнять настройки этого (и не только этого) xml-файла. Т.о. налицо взаимодействия со сторонней программой, о котором я и писал выше и которое Вы назвали "бредом и атавизмом" (с). Могла возникнуть и такая ситуация, при которой этот самый GUI писал бы не я. Тогда тот, кто решал бы эту задачу, всё так же, без каких либо сложностей нацарапал бы это приложение, заюзав Linq to XML или др. технологию. Однако если бы это был самописный на коленках ini-файл или тот же csv, который в подобной задаче "не пришей кобыле веник" - этот разработчик вспоминал бы меня не самыми лестными словами, т.к. ему пришлось бы писать пусть небольшой, но всё же парсер для такого файла, вместо того, чтобы юзать готовое решение. Цитата:
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
|||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
HWD - вы бы успокоились и посмотрели про что я пишу - а не цитировали весь пост с "опровержением" - работа с настройками между программами через файлы ЛЮБОГО формата это не есть правильный путь, они должны быть закрыты как методы в ООП - целиковые - а опреировать тем что другая программа не сможет работать с моими файлами работать - так это изначально тупиковый путь. Стандартный формат надо выбирать из удобства конкретной задачи, а не из "виртуальных" потребностей.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Цитата:
Цитата:
Цитата:
Предлагаю завершить полемику - не вижу в ней смысла. Пусть каждый хранит настройки в том формате, в каком ему больше нравится, хоть на перфокартах.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Рассмотрим другую ситуацию...
Случайно были сохранены данные приводящие к сбою в программе... и невозможности ее дальнейшего использования... Что делать глупому юзеру, если поблизости ни буревестники ни админы не реют гордо... |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
То hwd - вот смотри ты пишешь программу которая рисует и хранит, например, линии и как "впередмыслящий" ты хранишь их описание в xml и соответственно документируешь - мол для "внешнего" изменения или чтения надо работать с таки-ми-то параметрами. Да до определенного времени все хорошо, ты можешь расширить "функциоанал" с поддержкой предыдущих версий, например добавить параметр цвет, толщину линии и т.д. Но в один прекрасный момент ты понимаешь, что хранить в формате (начальная точка - конечная точка) тебе не очень удобно, а гораздо интересней хранить, например, начальная точка, длинна, вектор (по факту получилось что ты постоянно их пересчитываешь). И приходиться тебе для поддержки старых версий "тащить опендицит" в виде начальной-конечной точки, а с ним и альтернативный вектор - то есть избыточность как данных, так и вычислений, хотя тебе уже эти начальные и конечные точки нафиг не нужны - только процесс тормозят. В моем-же случае ты прото добавляешь новую функцию (пересчета из нового формата в старый) и все - весь остальной функционал работатет как и прежде, с полной совместимостью со старыми программами (они так и будут работать медленней т.к. делают постоянно лишние вычисления), но новые будут быстрей - ведь по факту ты уже оперируешь совсем другими данными.
p.s. и не забываем, что программа об изменении своих-же настроек другими, либо не знает (не оперативно), либо постоянно их переспрашивает (долго). p.p.s. я все это время не про формат говорю - а про принцип - а принцип хранить "мультипрограмные" настройки в файле устарел со времен dos'а (это не наш dwg.ru'шный юзер а ОС ![]()
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 01.10.2010 в 23:19. |
|||
![]() |
|
||||
КИПиА Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
![]() |
Цитата:
Топик постепенно перетекает с хранения настроек на хранение собственно данных. Сохранить положение-размер окон, последние введенные значения и т.п. сильно отличается от сохранить основные данные программы вообщето. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Еще раз, но по-русски.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массовое редактирование свойств атрибутов блоков | kgb | Программирование | 11 | 13.06.2023 14:39 |
Считывание значение ячейки таблицы в виде Field в AutoLISP | tokhot | LISP | 9 | 08.01.2017 17:54 |
Значение аттрибутов блоков | Андрей Будзинский | AutoCAD | 5 | 16.12.2009 17:18 |
ГОСТ Р 53231-2008 | UnyqUm | Поиск литературы, чертежей, моделей и прочих материалов | 5 | 15.09.2009 14:41 |
Как в 2006 вызвать последнее введенное с клавиатуры? | GAP | AutoCAD | 4 | 28.10.2005 16:39 |