Тема: Как с помощью Дельфи работать со списками Автолиспа

Уважаемые, программисты! Вопрос: как работать со списками автолиспа вида '((1 "2" 3 "4" (11 22 "33" 14))(...)......) при помощи delphi.
есть файл ***.lsp каждая строка которого представлят из себя список (setq sp '((13 "2" (3 "4") (1 (11 22) "33" 14))(...)......)) причем структура списков разная но известно что каждый элемент означает... и надо все элементы списка перенести в базу отредактировать, потом сформировывать тот же файл ***.lsp из базы... хотелось бы проделывать эту процедуру без запуска автокада. Помоему хорошоб было использовать функции лиспа (nth, assoc, substr...) в дельфе! возможно ли такое проделать?

Re: Как с помощью Дельфи работать со списками Автолиспа

Помоему хорошоб было использовать функции лиспа (nth, assoc, substr...) в дельфе! возможно ли такое проделать?

Нет. Разве что самому написать их реализацию на делфи.

Re: Как с помощью Дельфи работать со списками Автолиспа

В Delphi имеется несметное количество средств для работы со списками. Но это совершенно не те списки, как в LISP. У них смысл другой. Но аналоги, конечно, есть. Все потомки класса TList, например TStringList.
Например, функция nth в LISP возвращает значение элемента списков с заданным номером. Естественно, такое же можно сделать в любом языке. Только вместо термина "список", используется, например, "массив" и обращаются к элементам массива по номеру.
Если же надо сформировать LSP-файл из Delphi, то это просто. Формируете список строк будущего файла, например, в виде TStringList, и подставляете требуемые значения, преобразуя данные, известные Delphi, в строковый вид.
Для гибкости лучше не зашивать все в программу, а иметь шаблон будущего LISP-файла и заменять в нем строки-маски на нужные значения. И таких функций в Delphi навалом.

Re: Как с помощью Дельфи работать со списками Автолиспа

Да и сам исходный файл ***.lsp можно с помощью делфи прочитать и разобрать.
Без запуска Автокада получится...

Re: Как с помощью Дельфи работать со списками Автолиспа

Еще добавлю.
Если речь идет о базе данных, то можно воспользоваться технологией ADO. Для этого на компьютере должен быть OLE DB Provider. Для БД Access, DBF и прочей мелочевки ADO доступно бесплатно, да и есть практически на каждой машине. А вот, например, для Interbase хороший бесплатный OLE DB Provider не найти.
LISP может работать с ADO как с любым другим COM-сервером. В LISP формируются данные и посылаются в БД посредством SQL-запроса. Программа на Delphi выполняет любое визуальное редактирование БД (на Delphi это сделать проще и лучше чем на чем0либо еще). Но эта Delphi-программа может ничего не знать ни про какие Автокады.
Из LISP через ADO можно прочитать БД (также посредством SQL-запроса) и получить данные в виде LISP-списка.
Очень хорошую библиотеку для работы с ADO из LISP сделали Jon and Barbara Fleming
http://acad.fleming-group.com/
У меня тоже есть подобная библиотека, но она привязана к библиотеке ruCAD
http://cad.kurganobl.ru/1123.html
Подробные разъяснения в книге "САПР на базе AutoCAD - как это делается", глава 19.