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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Запись в текстовый файл данных в кавычках

LISP. Запись в текстовый файл данных в кавычках

Ответ
Поиск в этой теме
Непрочитано 19.07.2012, 09:37 #1
LISP. Запись в текстовый файл данных в кавычках
Capiton
 
Тюмень
Регистрация: 11.03.2009
Сообщений: 109

Переменная содержит список текстовых значений ("a" "b" "c" ) нужно, чтобы после записи в текстовый файл через write-line
в текстовом файле мы имели строку вида ("a" "b" "c" ). То есть не (a b c), а именно("a" "b" "c" ).
Как я понимаю задача сводится к преобразованию списка ("a" "b" "c" ) в строку "(\"a\" \"b\" \"c\")" из которой write-line уже сможет создать требуемый результат. И эта задача мне не спешит покоряться. Смиренно прошу помощи.
Просмотров: 6224
 
Непрочитано 19.07.2012, 10:41
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Код:
[Выделить все]
(mapcar '(lambda (str) (strcat "\"" str "\"")) str-list)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 19.07.2012, 11:43 спасибо
#3
Capiton


 
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
<phrase 1=


Спасибо. Разобрался уже. Реализовал через
Код:
[Выделить все]
 (foreach b abc(setq abc (subst (strcat (chr 34) b (chr 34)) b abc)))
Capiton вне форума  
 
Непрочитано 19.07.2012, 14:43
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Capiton Посмотреть сообщение
Разобрался уже.
Цитата:
Сообщение от Capiton Посмотреть сообщение
(foreach b abc(setq abc (subst (strcat (chr 34) b (chr 34)) b abc)))
Offtop: это реально шЫдевр анальной стоматологии
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 20.07.2012, 01:12
#5
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


ректальной, Дима_, ректальной, мы же на глубоко уважаемом форуме, а теперь попробуйте доказать капитану, что никакие кавычки ему не нужны, пфф-пфф
gomer вне форума  
 
Непрочитано 20.07.2012, 02:06
1 | #6
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 179


Код:
[Выделить все]
 (prin1 abc ofile)
Vov.Ka вне форума  
 
Автор темы   Непрочитано 20.07.2012, 08:04
#7
Capiton


 
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
<phrase 1=


Огромное спасибо для Vov.Ka. Это как раз то, что я искал.

Выбор использования кавычек для сохранения некоторых типов данных связано с корявостью (излишней интеллектуальностью) функции read
Capiton вне форума  
 
Непрочитано 20.07.2012, 20:13
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Capiton Посмотреть сообщение
Выбор использования кавычек для сохранения некоторых типов данных связано с корявостью (излишней интеллектуальностью) функции read
для начала почитайте описание функции read, а потом судите о ее корявости
текстовые файлы - пережиток прошлого, времен дос
gomer вне форума  
 
Непрочитано 20.07.2012, 21:38
#9
ShaggyDoc

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


Цитата:
текстовые файлы - пережиток прошлого, времен дос
"А мужики-то не знают!" (С)
Вот и форум этот весь "пережиток прошлого", у него же 90% в текстовых файлах лежит.
ShaggyDoc вне форума  
 
Непрочитано 20.07.2012, 21:55
#10
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот и форум этот весь "пережиток прошлого", у него же 90% в текстовых файлах лежит.
Сильно сомневаюсь в этом. Я думаю 99.8% этого форума лежит в БД.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 21.07.2012, 02:44
#11
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


вот эти вот вчерашние студенты, которых на уроках информатики 5 лет учили процедуре AssignFile, будут и перейдя на .Net писать так же дубово, потому что их так научили, вместо того чтоб прочитать спецификацию языка и немного подумать. ну а для любителей поковыряться в анубисе, есть как минимум готовые библиотеки для работы с ini,xml - файлами. имхо load - самый простой способ чтения данных
gomer вне форума  
 
Непрочитано 21.07.2012, 06:39
#12
ShaggyDoc

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


Цитата:
Я думаю 99.8% этого форума лежит в БД
Так то данные форума после многих лет работы. А сам движок - всё текст. PHP, шаблоны, CSS и прочее.
Объем современных систем управления сайтами в начальном состоянии состоит примерно из 10 Мб текстовых файлов "движка" и менее 1 Мб БД, например MySQL. Да и сама БД может быть и текстовой.

Вот старинные БД на "больших" машинах были текстовые. И это очень хорошо, потому что эти данные и сейчас используются. Сам их читал. А если бы они были в нетекстовых форматах, да и машин тех уже нет, и программ для чтения?

И вообще сейчас скорее можно говорить о возрождении текстовых файлов. Просто задумались - а что будет в будущем, когда уже не будет тех программных средств, которые писали свои данные в закрытые двоичные форматы. И даже Microsoft повыкобенивалась, но стала хранить данные офисных приложений в текстовом формате. Чего и Аутодеск давно пора сделать.

Цитата:
которых на уроках информатики 5 лет учили процедуре AssignFile, будут и перейдя на .Net писать так же дубово, потому что их так научили, вместо того чтоб прочитать спецификацию языка и немного подумать.
Правильно их учили. Основам, чтобы они понимали, как работа с файлами на низком уровне происходит. А вот те, кого только .Net научили (или какой другой среде), в случае чего будут как слепые котята.

Это всё равно как водитель, умеющий ездить только с коробкой-автоматом. Если тебе для написания Hello Word нужна .Net (VC, Delphi и т.п.), то ты не программист.

Цитата:
есть как минимум готовые библиотеки для работы с ini,xml - файлами
Ну-ка предъяви "как минимум" библиотеку для работы с XML-файлами на AutoLISP. Которая "есть". Хотя бы для чтения записи значения атрибута по заданному пути в XML. Или попробуй сам её написать, потому что всего лишь надо "прочитать спецификацию языка и немного подумать" (С)gomer
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 21.07.2012, 07:14
#13
Capiton


 
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
<phrase 1=


Цитата:
Сообщение от gomer Посмотреть сообщение
для начала почитайте описание функции read, а потом судите о ее корявости
Offtop: На примере одного моего знакомого сделал наблюдение: не стоит разбрасываться советами по неозвученным вопросам. Эта мера предосторожности предохраняет от внутреннего конфликта, когда Вы весь такой умный, но никто почему-то этого не ценит.
P.S. Прощу прощения за флуд, но в отношении gomerа накипело.
Capiton вне форума  
 
Непрочитано 21.07.2012, 12:23
#14
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
И даже Microsoft повыкобенивалась, но стала хранить данные офисных приложений в текстовом формате.
Это Вы загнули, ну во первых - в зазипованном, во вторых XML являеться настолько текстовым, насколько и txt двоичным. Никто "в здравом уме" с тем-же XML'ом, как с текстом, не работает (ну если только действительно из-под автолиспа (может студент еще какой из турбо паскаля или чего-подобного), да и то когда пишет "свою библиотечку" - не от хорошей жизни). Во вторых "те" текстовые файлы и сегодняшние "это 4 разных человека". Кодировки(кои7,кои8,ascii,ansi,utf8), символы окончания строки, окончания текста (да да раньше без (chr 27) функции по чтению "текстовой" информации "висли" намертво).
p/s/ В старых БД, не потому только текст использовали, что сильно умные были (хотя я этого не отрицаю), а потому что, кроме текстов хранить особо не чего было, (из-за физических ограничений техники) и по той-же причины форматы были достаточно просто (их как правило можно было без спецификации понять - просто посмотрев), но к сегодняшним реалиям это никакого отношния не имеет, попробуте блокнотом + winzip'ом добавить данные в xls файл "нового образца" (который с Ваших слов - простой текст).
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 21.07.2012 в 13:25.
Дима_ вне форума  
 
Непрочитано 21.07.2012, 15:00
#15
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ну-ка предъяви "как минимум" библиотеку для работы с XML-файлами на AutoLISP.
Эта библиотека называется MSXML2.DOMDocument и написана она не на лиспе, конечно. Как пользоваться можно посмотретьздесь

Цитата:
Сообщение от Capiton Посмотреть сообщение
такой умный, но никто почему-то этого не ценит.
вот еще и дураком обозвали, вместо того чтоб подробно расписать, что нужно, а так имхо, read - только лишнее действие
gomer вне форума  
 
Непрочитано 21.07.2012, 19:16
#16
ShaggyDoc

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


Цитата:
MSXML2.DOMDocument
"А мужики-то не знают!" (С)
Ну, попробуй, воспользуйся ей из LISP. Не "в принципе можно", а "чисто конкретно". Например, вызови из Лисп макрос, записанный в acad.cui, да с подсказкой, которая там же записана.
Или еще проще - прочитай из Lisp с помощью MSXML вот этот XML и нарисуй средствами Lisp всем известную таблицу


Код:
[Выделить все]
?xml version="1.0" encoding="windows-1251" ?>
<table>
  <summaryinfo Title="ВЕДОМОСТЬ ЧЕРТЕЖЕЙ ОСНОВНОГО КОМПЛЕКТА" Subject="Система ruCAD" Author="ShaggyDoc" LastAuthor="ShaggyDoc" Create_DTM="23.04.2007 11:56:48" RevNumber="4"/>
  <title rows="1" height="15" ask_title="1">
  <columns count="3">
    <column_1 size="15" type="STRING" align="C"/>
    <column_2 size="140" type="STRING" align="L"/>
    <column_3 size="30" type="STRING" align="L"/>
  </columns>
    <row_1  height="15">
	  <cell_1 text="Лист" />
	  <cell_2 text="Наименование" />
	  <cell_3 text="Примечание" />
	</row_1>
  </title>
  <data rows="1">
    <row_1>
      <column_1 data=""/>
      <column_2 data=""/>
      <column_3 data=""/>
    </row_1>
  </data>
</table>
А потом попробуй заполнить её данными и записать в XML с помощью того же MSXML
ShaggyDoc вне форума  
 
Непрочитано 21.07.2012, 21:41
#17
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Например, вызови из Лисп макрос, записанный в acad.cui, да с подсказкой, которая там же записана.
Это действие как минимум не сертифицированно - цитата из вышеуказанного файла:
Цитата:
Warning! Do not edit the contents of this file.
If you attempt to edit this file using an XML editor, you could lose customization and migration functionality.
If you need to change information in the customization file, use the Customize User Interface dialog box in the product.
To access the Customize User Interface dialog box, click the Tools menu > Customize > Interface, or enter CUI on the command line.
А начиная с 2010 формат поменяли (расширили и зазиповали), но "для особо умных" комментарий оставили - и это абсолютно правильный подход, файлы с настройками это "внутренние дело" разработчика ПО - сертифицировать "ручную" правку (оно же как и чтение) XML - это аттавизм под современный вид (только раньше это INI было). Юзеру GUI, программисту API (имееться в виду не разработчик, а человек работающий програмно с продуктом).

p.s. хотя если быть до конца честным иногда я прибегал к залезанию во "внутренние настройки", в том числе и в автокаде (из-за неразвитости API).
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 21.07.2012 в 22:26.
Дима_ вне форума  
 
Непрочитано 21.07.2012, 21:47
#18
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Или еще проще - прочитай из Lisp с помощью MSXML вот этот XML и нарисуй средствами Lisp всем известную таблицу
в данном случае, ИМХО, проще сохранить таблицу в файл dwg и вставлять ее как блок
gomer вне форума  
 
Непрочитано 22.07.2012, 00:09
#19
ShaggyDoc

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


Цитата:
Сообщение от gomer Посмотреть сообщение
в данном случае, ИМХО, проще сохранить таблицу в файл dwg и вставлять ее как блок
Мало ли что проще. Думаешь зря у меня появились описания в XML всех видов таблиц? Чтобы были не блоки, а именно объекты Table, да ещё с заполнением данными.

Ты писал про "готовые" библиотеки, вспомнил про MSXML, вот и приведи пример, как воспользуешься своим знанием.
ShaggyDoc вне форума  
 
Непрочитано 22.07.2012, 02:36
#20
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Чтобы были не блоки, а именно объекты Table
дак и будет тебле, после вставки блок разбивается, его описание удаляется (например) и вот она табличка...

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
да ещё с заполнением данными
ну это уже другая пестня
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LISP. Запись в текстовый файл данных в кавычках



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выдать список переменных (setvar) в текстовый файл Кларисса AutoCAD 6 03.06.2013 13:20
Запись параметров в файл в командном языке COSMOS/M KNA Расчетные программы 6 09.02.2009 15:20
вставка строки в существующий текстовый файл Victorovich Программирование 10 20.06.2008 16:42
структурированный список Holon Программирование 22 11.09.2007 14:09
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19