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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp и данные

Lisp и данные

Ответ
Поиск в этой теме
Непрочитано 25.08.2004, 05:11 #1
Lisp и данные
paha
 
Регистрация: 02.06.2004
Сообщений: 52

Опытные люди подскажите, пожалуйста как лучше организовать хранение данных. Т.е. программе на LISPe для работы необходимы данные (несколько таблиц).
Пока подсмотрел в одной программе вариант с текстовым файлом откуда данные и считываются. Есть ли альтернатива этому. Если можно с примером.
Спасибо.
Просмотров: 3716
 
Непрочитано 25.08.2004, 09:45
#2
Pilot

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


Быстрее и удобнее всего обрабатывать не простые текстовые файлы, а в виде списков или структурированных списков. Примерно таких:
Код:
[Выделить все]
(2   ("H2" 0.5)("D2" 3.1) ("H1" 0.5)("D1" 3.1) ("H3" 0.6)("D3" 3.3))
(2.5 ("H2" 0.6)("D2" 3.8) ("H1" 0.6)("D1" 3.8) ("H3" 0.8)("D3" 4.2))
...
(10  ("H2" 2  )("D2" 16.1)("H1" 2.5)("D1" 15.1)("H3" 3  )("D3" 16.1))
Функция для считывания подобных файлов в список:
Код:
[Выделить все]
(defun FiletoList (f1 / t1 l1)
(setq f1 (open f1 "r"))
(while (setq t1 (read-line f1))
   (setq l1 (cons (read t1) l1))
)
(close f1)
(reverse l1)
);FiletoList
где f1 - имя файла с путем.
Pilot вне форума  
 
Непрочитано 25.08.2004, 13:07
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


В этом направлении очень много и по-моему плодотворно
поработали в ДПИ
Почитай "Скажи СУБД нет"
http://www.dpi.dp.ua/software/NObase.shtml
Ну и потом, если понравится, свяжись с Сергем Попадьиным
Alan вне форума  
 
Непрочитано 25.08.2004, 14:59 Плодотворно поработали...Да уж... Прославили ДПИ...
#4
ShaggyDoc


 
Сообщений: n/a


Цитата:
Сообщение от Alan
В этом направлении очень много и по-моему плодотворно
поработали в ДПИ
Почитай "Скажи СУБД нет"
http://www.dpi.dp.ua/software/NObase.shtml
Ну и потом, если понравится, свяжись с Сергем Попадьиным
Плодотворно??

Сергей Попадьин, при всем моем к нему уважении как к фанату LISP, ни бум-бум в БАЗАХ ДАННЫХ. Легко перемешивать понятия БАЗ ДАННЫХ (все с большой буквы), СУБД (на сайте уничижительно "Скажи НЕТ субд") с обработкой ассоциированных списков в LISP - воинствующее невежество. Вот из-за таких "фанатов-фундаменталистов" LISP и не получил должного распространения ("язык искусственного интеллекта для тех, у кого нет собственного").

Помимо очевидной и простой работы с данными, хранящимися в текстовых файлах любого формата (в том числе LISP-списков, в том числе ассоциированных), возможно использование "настоящих" баз данных.

Как это делается, описано в гл. 19 книги "САПР на базе AutoCAD - как это делается". См.

http://www.kurganobl.ru/cad/book.jsp...ent=38&tn=main

При работе с данными не столь даже важно, как их прочесть (это элементарно), сколь то, как их редактировать без участия автора. Статические данные можно хранить в любом виде, однако, даже если это текстовый формат, лучше иметь удобный инструмент для их редактирования. В этом случае гораздо удобнее необычные текстовые форматы (XML, CSV).
 
 
Непрочитано 25.08.2004, 15:01 Плодотворно поработали...Да уж... Прославили ДПИ...
#5
ShaggyDoc


 
Сообщений: n/a


Цитата:
Сообщение от Alan
В этом направлении очень много и по-моему плодотворно
поработали в ДПИ
Почитай "Скажи СУБД нет"
http://www.dpi.dp.ua/software/NObase.shtml
Ну и потом, если понравится, свяжись с Сергем Попадьиным
Плодотворно??

Сергей Попадьин, при всем моем к нему уважении как к фанату LISP, ни бум-бум в БАЗАХ ДАННЫХ. Легко перемешивать понятия БАЗ ДАННЫХ (все с большой буквы), СУБД (на сайте уничижительно "субд") с обработкой ассоциированных списков в LISP - воинствующее невежество. Вот из-за таких фанатов LISP и не получил должного распространения ("язык искусственного интеллекта для тех, у кого нет собственного").

Помимо очевидной и простой работы с данными, хранящимися в текстовых файлах любого формата (в том числе LISP-списков, в том числе ассоциированных), возможно использование "настоящих" баз данных.

Как это делается, описано в гл. 19 книги "САПР на базе AutoCAD - как это делается". См.

http://www.kurganobl.ru/cad/book.jsp...ent=38&tn=main

При работе с данными не столь даже важно, как их прочесть (это элементарно), сколь то, как их редактировать без участия автора. Статические данные можно хранить в любом виде, однако, даже если это текстовый формат, лучше иметь удобный инструмент для их редактирования. В этом случае гораздо удобнее необычные текстовые форматы (XML, CSV).
 
 
Непрочитано 25.08.2004, 20:54
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Уважаемы ShaggyDoc, прочтите пожалуйста внимательно вопрос

Цитата:
подскажите, пожалуйста как лучше организовать хранение данных. Т.е. программе на LISPe для работы необходимы данные (несколько таблиц). Пока подсмотрел в одной программе вариант с текстовым файлом откуда данные и считываются. Есть ли альтернатива этому.
(подчёркнуто мной, Alan)
Для случая использования нескольких таблиц - использовать СУБД??? Наверное это всё-таки перебор?
Вы предлагаете
Цитата:
В этом случае гораздо удобнее необычные текстовые форматы (XML, CSV).
Не думаю что это удобнее для работы в этом случае, т.к. понадобится инструмент поиска и т.п. да и не всегда надо их редактировать без участия автора.
Главу 19 книги "САПР на базе AutoCAD - как это делается" прочитал с утра, до этой дискуссии. Получил огромное удовольствие! Как и от всех других материалов книги. Со многими, даже пожалуй с большинством, Вашими предложениями согласен, но кое о чём можно и поспорить. Огромное вам спасибо за Вашу просветительскую деятельность! С нетерпением жду выхода книги.
Alan вне форума  
 
Непрочитано 26.08.2004, 06:52 Разве я предлагаю использовать именно СУБД?
#7
ShaggyDoc


 
Сообщений: n/a


Цитата:
Сообщение от Alan
Уважаемы ShaggyDoc, прочтите пожалуйста внимательно вопрос

Цитата:
подскажите, пожалуйста как лучше организовать хранение данных. Т.е. программе на LISPe для работы необходимы данные (несколько таблиц). Пока подсмотрел в одной программе вариант с текстовым файлом откуда данные и считываются. Есть ли альтернатива этому.
(подчёркнуто мной, Alan)
Для случая использования нескольких таблиц - использовать СУБД??? Наверное это всё-таки перебор?
Вы предлагаете
Цитата:
В этом случае гораздо удобнее необычные текстовые форматы (XML, CSV).
Не думаю что это удобнее для работы в этом случае, т.к. понадобится инструмент поиска и т.п. да и не всегда надо их редактировать без участия автора.
Главу 19 книги "САПР на базе AutoCAD - как это делается" прочитал с утра, до этой дискуссии. Получил огромное удовольствие! Как и от всех других материалов книги. Со многими, даже пожалуй с большинством, Вашими предложениями согласен, но кое о чём можно и поспорить. Огромное вам спасибо за Вашу просветительскую деятельность! С нетерпением жду выхода книги.
Надо внимательно читать. Даже название статьи Попадьина Вы исказили, а в написании названия и был весь смысл.

Разве я предлагаю использовать в конкретном случае именно СУБД? Я просто не знаю ситуации. Хотя "несколько таблиц" могут оказаться именно классической реляционной базой данных. Решается все в конкретной ситуации.

Внимание на "настоящие" базы данных я обратил как на вариант, потому что с текстовыми файлами все понятно. Кстати, и тут не так просто. Возможно, что пользователь не будет иметь достаточных привилегий для работы с файлом - программисты забывают о возможных ограничениях.

"Лисповский" способ хранения данных в файлах-списках также имеет недостатки. Например, так хранит данные известная всем программа Прокат Василия Кондрата. Попробуйте-ка ее дополнить или изменить данные, не ковыряясь в исходном тексте, да и большая часть программы занята нудной разборкой и отображением данных. А это можно вынести "за скобки" при использовании типовых средств. Это не для "очернения" программы, просто очень характерный пример. Использование стандартных форматов позволяет использовать и стандартные средства, вплоть до плагинов к Total Commander.

Если данные не "зашиты" в программу, значит они могут или должны изменяться. Иногда часто и многими пользователями (тогда нужна СУБД). Например, при работе с этим форумом мы работаем с СУБД, используем стандартные средства для редактирования, не зная даже, что это за СУБД (или только догадываясь).

В САПР такое, конечно редко нужно. Например, у меня одной из первых серьезных работ было отображение на карте города в AutoCAD положения движущихся объектов. Координаты объектов с интервалом в несколько секунд снимались радиотехническими средствами и попадали в удаленную базу данных, расположенную где положено. Это были именно "несколько таблиц".

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

Что касается спорных вопросов в книге, то в ней несколько раз и говорится о том, что многое нельзя решить однозначно, обо многом можно и нужно спорить. Кое-что написано специально для провоцирования дискуссий.
 
 
Непрочитано 26.08.2004, 09:55
#8
Pilot

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


Вот наконец-то и в нашем форуме поднялась дискуссия относительно теоретико-практических основ САПР и программирования. Это то, чего нам не хватало. С инетересом читаю данную ветку. Более того, поставил птичку возле "Сообщить мне о получении ответа".
Pilot вне форума  
 
Непрочитано 26.08.2004, 14:24
#9
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Здравствуйте уважаемый ShaggyDoc
Цитата:
Даже название статьи Попадьина Вы исказили, а в написании названия и был весь смысл.
В этом искажении и был весь смысл! скажи НЕТ субд! Сергей в названии статьи изложил СВОЁ видение проблемы. Я назвал как раз так как я отношусь к СУБД. С какого количества данных надо иметь Базу Данных и СУБД? Вопросец! Наверное использовать СУБД, когда достаточно текстового или откомпилированного ЛИСПовского (со списками, позволяющими с ними работать как с базами средствами ЛИСПа) файла, еще раз (ИМХО) поторяю перебор.
Вы упомянули программу ПРОКАТ Василия Кондрата. Спасибо тебе Василий за неё, использую! DAT файлы-списки (объёмом 120,234 байта в моей версии) также надо откомпилировать и забыть про их корректировку и считывание командами (open (name) "r") и (read-line x).
Считаю также, что использовать большой опыт ДПИ, можно и нужно. Просто их работы 10-летней давности наверное не всем известны, даже посетителям этого и параллельного форума. А почитать "Ода Лиспу. скажи НЕТ субд! Былая мощь АвтоКАДа. и т.д." я думаю приятно!
Alan вне форума  
 
Непрочитано 26.08.2004, 14:49
#10
ShaggyDoc


 
Сообщений: n/a


Да, статьи Сергея Попадьина интересны и полезны. С его точкой зрения на "субд" я не согласен - подход ограниченный "в пределах компетенции" в части хранения данных. Но мнение его знать полезно. Многие про ассоциированные списки думают только в связи с DXF-кодами, а возможностей гораздо больше.
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp и данные

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск