LINUX.ORG.RU

Удалить символ конца строки в CL


0

4

Здравствуйте, всё никак не могу при считывании CSV файла в Хэш-таблицу, символ перевода строки.

вот код:

(defun парсер-CSV (file Хэш-таблица)
;Обнуление строк и столбцов
  (setf Строка 0
		Столбец 0)
;Открытие файла
  (with-open-file (Поток file :direction :input)
;итерирование по потоку из файла
    (loop
       for Строка-потока = (read-line Поток nil)
	   ;если строка не равна nil
       while Строка-потока
	   do(progn(incf Строка);увеличение строки на одну еденицу
	   (setf Столбец 0);Сброс значения столбца до нуля
	   (loop for var in (cl-ppcre:split ";" Строка-потока);итерирование строки по столбцам
	   do(progn (incf Столбец);увеличение строки на еденицу
	   (setf(gethash (Format nil "~a,~a" Строка Столбец) Хэш-таблица)var)))))))

Просто записывается в хэш вместе с символом и потом если эта ячейка вставляется в середину строки то каретка переводится на следующую строку. Как я пробовал решить проблему могу написать если нужно. В емаксе этот символ непечатаемый отображается как «^M» но в инспекторе «Return». Простое сравнение на eql не работает....

Ответ на: комментарий от anonymous

> Он непонятно кто. Но самоуверенно бредит. Таких не грех макнуть в говнецо.

ты идиот, который позорит имя анонимуса, немедленно залогинься :) ассенизатор нашелся :)

psv1967 ★★★★★
()
Ответ на: комментарий от tailgunner

> Ч0рт. Я уже автоматически пропускаю посты этого аффтора.

ну твои посты просто образец информативности

осиль наконец кнопку «игнорировать», слабак!

psv1967 ★★★★★
()
Ответ на: комментарий от RusNekromant

> определить где символ конца строки и удалить

Универсальный рецепт удаления пробельных символов вокруг строки, подходящий для многих случаев:

(string-trim #(#\Newline #\Return #\Linefeed #\Space #\Tab) str)

Так же имеются аналогичные функции string-left-trim и string-right-trim. Ну и массив «ненужных» символов тоже можно варьировать в зависимости от задачи.

archimag ★★★
()
Ответ на: комментарий от anonymous

> Утверждающий обратное лишь подчёркивает своё незнакомство с миром промышленной разработки.

после этой фразы можно уже не читать. ты когда нибудь видел хоть что за документы подает контора претендующая на заказ? Размер команды которую выставляют на исполнение заказа чуть ли не единственное обоснование расходов на проект. в тайне это можно только в детских эротических фантазиях удержать. студент ты после таких сказок.

и команда из 5ти человек почти не имеет шансов на крупный заказ выступая самостоятельно, а не как субподрядчик толстого монстра.

Заметь я даже не говорю про откаты :)

но есть еще просто хит!

Победит та команда, которая решит задачу заказчика быстрее, качественнее и дешевле.

Скажи ты только прикидываешься или на самом деле такой наивный?

Какое нафиг «качественнее»? В чем это выражается? Какое нафиг «быстрее»? Есть понятие «в срок». Не ты определенно студент :)

Твоя ошибка, да и остальных «детей индиго» от ИТ в том, что вы все считаете заказчика а) личностью б) личностью мыслящей рационально.

psv1967 ★★★★★
()

Даа! Появился наконец-то приемник Куки. Я уже начал беспокоиться, кто же будет оттягивать неадекватов от лиспа.

anonymous
()
Ответ на: комментарий от anonymous

> А я утверждаю, что ни один злой вандербильт не прошёл бы мимо инструмента, который позволил бы нанять 5 вместо 100. У вандербильтов чутьё на куриц, несущих золотые яйца. Их не обманешь.

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

вундербильд-ам нужен стабильный, максимально возможный поток денег в ответ на инвестиции. и при этом никаких неожиданностей. в два раза крупнее контора --- в два раза больше заказов, в два раза больше бабок срублено.

ну ненужен скрипач (вандербильд) команде из 5ти человек. не прокормится он там :)

даже если этот вундербильд делает стартап, то и там он просто его мечтает продать потом, такой вот жирной конторе с 1000+. не будет вундербильд почему то сам этот стартап сопровождать командой из 5ти человек.

psv1967 ★★★★★
()

а разве в лиспе не работают регулярные выражения? или они считаются не кошерными?

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

тогда почему не регекс у топик стартера? нужен чистый код в пределах стандарта?

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

> Но если при этом он, брызжа слюной, пытается каждого встречного убедить в том, что немецкий круче всех остальных — как язык прозы, поэзии, технической литературы — то этот человек будет таким же выпендрёжным фанбоем, как все местные лисперы.

потому что брызжа слюной, или из-за понимания технических свойств языка?

вот как язык технический, немецкий явно рулит, из-за его словообразования.

Рейс-федер, штанген-циркуль, ватер-пас, марк-шнайдер кунст, ауф-страгс-тактик и т.п. не говоря уже о словах в пару предложений длинной без пробелов :))

Ты просто можешь открыть любой технический словарик, и ткнув наугад с вероятностью 80% попадёшь в немецкое слово, которое давным-давно используется как устоявшийся термин. Почему немецкое слово — устоявшийся термин, а слово английское или вот индейцев навахо — не термин?

Потому что в языке индейцев навахо нет слова «самолёт», а вместо него есть «большая железная птица».

А в немецком — есть, и не только сами слова, но и механизм их конструирования, создания новых слов из старых. Которые потом становятся настолько общеупотребимы, что воспринимаются как термин, как единое понятие, а не обиняками вроде «большой железной птицы, бросающей стальные взрывающиеся яйца»

И да, сравнение тем более нелепо, что на немецком разговаривают десятки миллионов нормальных людей; на нём писали Гофман, Гёте и Гейне.


у скольки из этих нормальных людей возникает необходимость конструировать новые слова и понятия из старых? сколько таких нормальных людей такой возможностью не обладают, из-за используемого языка?

anonymous
()
Ответ на: комментарий от anonymous

ещё на немецком материться здорово и войну объявлять. Как плюнешь во врага набор согласных и шипящих, он от страху сразу в штаны наложит.

anonymous
()
Ответ на: комментарий от psv1967

> Никакой выученный немецкий не представляет никакой прямой ценности. Ценность это прокачанный интеллект и его возросшие возможности к восприятию нового.

не, ценность — это умение общаться на этом языке, применять его к месту, и мыслить сразу понятиями на этом языке, не перекладывая подстрочно на родной. А поскольку понятия и способы выражения этих понятий в разных языках разные, прокачка и обогащение возможностями выражения и происходит.

Я не думаю на каком-то «родном» языке, переводя со всех остальных в него. Скорее, я думаю образами и понятиями, глубинными структурами, которые с разной степенью успешности выражаются в том или ином языке. Поэтому какие-то мысли проще выразить на одном языке, какие-то — на другом (тоже можно, но будет более громоздко, если в этом языке нет нужных мне инструментов и понятий).

Среди языков как таковых это были греческий и латынь.


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

anonymous
()
Ответ на: комментарий от psv1967

> и что ты в нем нашел? :)

Кука и его приспешники - это очень годные и аппетитные жертвы для высшых богов. Их надо бережно и терпеливо вскармливать и оберегать. И, если повезет, боги одарят нас новой порцией лулзов и тайных знаний.

anonymous
()
Ответ на: комментарий от anonymous

> Сравнение человеческих языков и языков программирования в высшей степени некорректно и свидетельствует о неглубоком понимании предметной области.

COBOL, Algol 68, да тот же 1С в некотором роде — разве это не попытка программировать сразу на естественном языке? Попытка провальная, да, но она была.

Потому что самое удачное из архаических языков давно присутствует в современных ЯП, причём в более удобном виде. А то, что не было перенято — обрело заслуженное место на свалке истории.


ну да, если чего-то нет в современном БАЛБ-языке, оно не нужно. Теперь подставляем под БАЛБ наиболее убогий язычок, и выводим что не нужно ни-че-го.

anonymous
()
Ответ на: комментарий от anonymous

угу, классика

Константинополитанишердудельзакспфайфенмахергезелльшаффт!

Нигилистендинамиттеатеркестхенсшпренгунгсаттентэтсферзухунген!

Трансваальтрупентропентранспорттранпельтиртрайбертраунгстрэнтрагеди!

Меккамузельманненмассенменшенмердерморенмуттермармормонументенмахер!

Клеменс силен :)

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

> ну да, если чего-то нет в современном БАЛБ-языке, оно не нужно. Теперь подставляем под БАЛБ

БАЛБ

БАЛБ

Прежде, чем умничать, матчасть подучи - БЛАБ (Blub), не БАЛБ.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Да, согласен более чем полностью. Именно это и хотел сказать.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

>> Потому что самое удачное из архаических языков давно присутствует в современных ЯП, причём в более удобном виде. А то, что не было перенято — обрело заслуженное место на свалке истории.

1) Перенято первоначально было то, что влезло на момент перенимания в убогий сундучок ibm-pc. А дальше пошло --- и нести тяжело не удобно и бросить жалко :).


я вот (другой анонимус) намедни потыкал веточкой OpenWatcom. Когда-то, лет десять-пятнадцать назад был неплохой конпелятор С/С++. Сейчас же, с одной стороны, есть прогресс (работает под Linux), с другой стороны — за 10 лет опенсорца проекта, зрелище довольно унылое: нет поддержки x86_64, нет нормальной STL (OWSTL недопиленное, STLport был портирован, но заброшен), нет даже нормальных современных IOStreams, а какое-то поделие образца 1995 года.
Хотя оно работает, и вполне себе конпелирует, если избирательно выбирать, что им можно отконпелировать.
Но что именно оно конпелирует — одно дело если это мохнатый Win32 или DOS4GW код. Другое дело, вот взял я намедни Cmake, Boost, LLVM и попытался им собрать. Современный код с шаблонами не конпелируется, ибо часть стандартов C++ вроде 2001-2003 годов прошла мимо него (сейчас они сразу собираются поддерживать C++0x, но ИМХО, долго им его ещё пилить будет).
Система сборки хрупкая — взял под x86_64 собрать, понатыкал CC=gcc -m32 в Makefile, словил seg.fault в линкере wlink.

То есть: тот же язык С++, который сейчас есть, образца 2011 года — это совсем не тот язык, что был году в 1995 или 1991. Это разные языки, хотя вроде бы все они С++. Тот же линукс образца 1991, 1998 или 2011 года — это разные линуксы.

И когда на эту разницу посмотришь, такое ощущение что смотришь на «свалку истории» — есть исторически сложившийся набор костылей и подпорок, нет понимания языка/среды/ОС как чего-то цельного. Просто эту свалку донашивают зомби-программисты, не давая ей вовремя умереть — потому что и нести тяжко, и бросить жалко --- а новую цельную вещь без костылей и подпорок родить ниасиливают.

anonymous
()
Ответ на: комментарий от psv1967

>> Прежде, чем умничать, матчасть подучи - БЛАБ (Blub), не БАЛБ.

да, это конечно все меняет.

Когда один путает «Блаб» и «БАЛБ», а второй пишет «конпелируется» вместо «компилируется», это создает впечатление детского сада для умственно отсталых. Что именно это меняет - суди сам.

tailgunner ★★★★★
()
Ответ на: комментарий от archimag

Я в курсе. Что сказать-то хотел?

anonymous
()
Ответ на: комментарий от tailgunner

БАЛБ — это лампочка. Идиотизм людей, пишущих на неподобающем инструменте путём засовывания его в свою голову сравним только с идиотизмом людей, засовывающих в рот лампочку и не способных её потом оттудова выковырять.

пишет «конпелируется» вместо «компилируется»,


вступайте и конпелируйте!!! 111

anonymous
()
Ответ на: комментарий от tailgunner

> Что именно это меняет - суди сам.

В постах некоторых столько оставлено на додумывание, что лучше бы они не напрягались писать. Лень писать, так будь последователен и не пиши совсем.

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

> Ибо ни одному здравомыслящему человеку не придёт в голову носиться на опасных для жизни скоростях на неустойчивой, незащищённой железяке, наполненной взрывоопасным веществом. С одной стороны, у тебя есть шанс быстро и удачно пристроить генофонд (самки любят выпендрёжников).

Опасна не скорость, а внезапная остановка.

Здравомыслющие люди выбирают транспорт, подходящий для мест, где они живут. Про пробки слышал?

anonymous
()
Ответ на: комментарий от psv1967

Ты приведёшь пример «средств, позволяющих принципиально свести процесс написания сложного продукта к работе маленькой команды», похороненных по экономическим причинам? Или засчитываем слив?

anonymous
()
Ответ на: комментарий от anonymous

Это все бла бла бла с твоей стороны, сформулируй вопрос? то что написано сейчас не является вопросом, а вырванной цитатой.

Впрочем пожалуйста --- APL системы 70х, начала 80х. Похоронены именно как ты требуешь «по экономическим причинам».

Как признак «средств, позволяющих принципиально свести процесс написания сложного продукта к работе маленькой команды» подойдет: Разработка силами одного человека сложнейшего продукта масштаба предприятия, системы оперативного анализа данных крупнейших банков, программирование со скоростью мысли короче :)

Все это пропало по одной простой причине --- экономической.

Ну давай, возражай.

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

> Неужто лисп?

Не голый лисп, а дсл для прикладной задачи на нем вполне. Грехем почему то поднялся со своими магазинами (это факт), а купивший его гигант слил технологию.

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

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

> Не голый лисп, а дсл для прикладной задачи на нем вполне.

Щас он тебе скажет, что создание ДСЛ - это единственное преимущество лиспа, а это в свою очередь - очень узкая, незначительная ниша. Но мы то знаем...

Собственно - это и есть основной тезис кукистов.

anonymous
()
Ответ на: комментарий от anonymous

> Щас он тебе скажет, что создание ДСЛ - это единственное

преимущество лиспа


Осталось только понять, почему техника создания DSL получила наибольшее распространение в Ruby. Который по подобной логике тоже должен быть экономически невыгоден, однако получил большое распространение.

archimag ★★★
()
Ответ на: комментарий от archimag

> техника создания DSL получила наибольшее распространение в Ruby

Пруфлинк есть? А то я то же много чего могу нафантизировать и выдать это за факт.

anonymous
()
Ответ на: комментарий от LamerOk

> а вовсе не DSL'ем единым.

Такого я и не говорил.

archimag ★★★
()
Ответ на: комментарий от psv1967

> Это все бла бла бла с твоей стороны, сформулируй вопрос?

Слушай, ты прикидываешься идиотом, или действительно идиот? Если с третьего раза не можешь понять прямого вопроса, заданного в лоб? Хорошо, в четвёртый, в последний раз спрашиваю:

Вот здесь ты упомянул средства, позволяющие принципиально свести процесс написания сложного продукта к работе маленькой команды. Затем заявил, что вышеупомянутые средства стали игнорироваться по экономическим причинам. Внимание, вопрос: ты можешь привести конкретные примеры таких средств? Признаки мне не нужны, я их и так прекрасно знаю. Примеры. Конкретные названия технологий в студию.

Клоунада про «цитаты, вырванные из контекста», приведение «признаков» вместо примеров и прочие попытки ухода от ответа будут рассматриваться как слив.

anonymous
()
Ответ на: комментарий от psv1967

> Грехем почему то поднялся со своими магазинами (это факт), а купивший его гигант слил технологию. Именно по экономической причине слил

Ну это уже полный п***ц, не лезет ни в какие ворота. Как можно столько времени носить розовые очки? Тебе первый попавшийся лиспер расскажет подлинную историю Грэма и Ко., например, тот же archimag. Дадим ему слово:

Факты о Viaweb

1. В основе системы лежали «продолжения»
2. Работало в режиме cgi
3. В качестве реализации использовался CLISP
4. Переписали уже после ухода Грэхэма

Т.е. это было не очень быстрое и абсолютно не масштабируемое решение. Его в какой-то момент нужно было полностью переписывать на основе нормальной архитектуры.

Резюме: Грэм сотоварищи впарил гиганту идею + proof of concept, который они быстро наваляли на том единственном, чем владели. Этим «чем-то» оказался Common Lisp. Но существовавшие на тот момент компилятор и рантайм были абсолютно не предназначена для задач веба (не могу сказать, что с тех пор ситуация сильно изменилась в лучшую сторону), и лисп в их случае был обречён. Слили его из-за неустранимых технических изъянов, а не по каким-то мифическим причинам из области экономики.

Я просто диву даюсь, как ты умудряешься быть абсолютно некомпетентным, и с потрясающим апломбом нести околесицу. Я не удивлюсь, если с твоей байкой о вундервафлях окажется то же самое. Поэтому ты, скорее всего, и уходишь от ответа при помощи клоунады. Вернулись к самому началу дискуссии: все здешние лисперы — клоуны.

anonymous
()
Ответ на: комментарий от anonymous

Ну без пруфов в виде кода viaweb'а это просто слова.

anonymous
()
Ответ на: комментарий от anonymous

> Клоунада про «цитаты, вырванные из контекста», приведение «признаков» вместо примеров и прочие попытки ухода от ответа будут рассматриваться как слив.

так и запишем кловун сдулся, и про apl ничего хрюкнуть был не в силах, пока, пиши ищо по делу!

psv1967 ★★★★★
()
Ответ на: комментарий от anonymous

Ну вы тут тоже клоунаду развели. Чего к Грехему прикопались то? Давайте я вам подброшу пример посвежее: ITA Software - разработчиков не два, а несколько десятков, стоит не 50, а 800 млн., основной язык Common Lisp, который используется в том числе и для веб.

archimag ★★★
()
Ответ на: комментарий от anonymous

> Я просто диву даюсь

какой ты предсказуемый, где про апл? слил? я тебе уже говорил что ты негодный анонимоус? короче логинся, пустышка.

Резюме

какая нафиг идея? был продан успешный и крупнейший на тот момент на рынке бизнес. бизнес двигала микро группка людей.

разворачивать кластер была не их обязанность, у них _все_ работало на момент продажи.

какие вообще могут быть проблемы масштабируемости у веб проекта, состоящего из кучи микромагазинов, типа мой_магазин.айяяй.ком ? хватит нести пурген.

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

никаких причин кроме экономических отказываться от лиспа в пользу муравейника разработчиков не было.

psv1967 ★★★★★
()
Ответ на: комментарий от archimag

> разработчиков не два, а несколько десятков

Ну это все равно микроразмер, такие фирмочки оутсорсинговые для городов в 300тыс населения характерны.

стоит не 50, а 800 млн.

вот интересная пропорция 2 -> 50, 50 -> 800 ? Чем крупнее фирма тем больше ее «капитализация». А сейчас даже реальный сектор больше озабочен «ростом стоимости», чем реальным доходом.

Работай они на какой то яве и имея в штате не 50, а 5000 сотрудников имели бы не 800, а все 2-3 миллиарда на пустом месте. И это случится как только они продадутся и начнет решать не пару авторов проекта, а совет эффективных менеджеров.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

> Работай они на какой то яве и имея в штате не 50, а 5000

сотрудников имели бы не 800, а все 2-3 миллиарда на пустом месте.


Бред же. Скорей бы всего они бы просто разорились, а инвесторы не смогли бы отбить свои вложения. И никто бы в здравом уме их не купил.

archimag ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.