0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 7
|
|||||||||||
1 | |||||||||||
Почикать символы возврата каретки и перевода строки27.02.2016, 20:43. Показов 1664. Ответов 6
Метки нет (Все метки)
Здравствуйте!
Вот такой парой функций считываю строки из файла в список:
P.S. не пинайте сильно, функцию add-el скоммуниздил с этого форума... ))) З.Ы.Ы. не получается сделать в редакторе форума нормальные отступы в теле функций.... (
0
|
27.02.2016, 20:43 | |
Ответы с готовыми решениями:
6
Написать программу удаления из текстового файла символов перевода строки ‘\n’ и перевода каретки ‘\r’ Сложности с символом возврата каретки VBScript.RegExp: Символ возврата каретки Символ возврата каретки при Ajax запросе |
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
27.02.2016, 20:48 | 2 |
Отступов нет, нечитаемо. Вообще, ^M похоже на рудименты досовского конца строки.
0
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
27.02.2016, 21:08 | 3 |
Bow_Man, Обьясните в чем суть задачи...
0
|
Модератор
|
|||||||||||
27.02.2016, 21:28 | 4 | ||||||||||
Bow_Man, что-то ты навертел... Вот:
Код
(a b c) (1 2 3 4) (b v b (e r t))
1
|
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
27.02.2016, 22:21 | 5 |
Вообще, отпилить лишние символы можно с помощью функции (string-right-trim "^M" строка).
Замечания по функции read-file Переменные надо объявлять! Компилятор должен был предупредить, что переменная in-list не определена. Нужно объявить её с помощью let, а setq не нужен. В with-open-file желательно указать :direction :input для ясности. Если не получается открыть файл, сигнализируется ошибка. В принципе, можно указать другое поведение с помощью аргумента :if-does-not-exist, но в имеющемся виде проверка when stream не имеет смысла. Что такое add-el, вникать не буду, но предполагаю, что есть соответствующая стандартная функция или клауза loop-а.
1
|
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 7
|
|
28.02.2016, 07:12 [ТС] | 6 |
Хм... Думал в заголовке темы все ясно сказано - удалить из конца строки символы #10 #13 (перевод строки и возврат каретки) - кодировка DOS, cp866, win-1251... кому как удобно...
Добавлено через 2 минуты В заголовке темы так и написано. Рудиментами оно никак не является, это неотъемлемая часть любого текстового файла в дос-кодировке. Добавлено через 10 минут Пробовал, не срослось... Наверное, ручки кривые... ) Ну или либо вызывать функцию конструкцией вида: (setq a (read-from-file "filename.extention"))
0
|
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||
28.02.2016, 14:09 | 7 | |||||
Вроде мы там только CR видим, это закономерно. Функция read-line возвращает прочитанную строку без символа перевода (и второе значение — t/nil в зависимости от того, был там перевод строки или нет). Очевидно, ваш лисп воспринимает в качестве знака перевода строки только LF и отпиливает только его. Это немного странно: виндовому лиспу следовало бы сразу знать из CR+LF; а невиндовому, возможно, лучше указать кодировку?
Попробуйте ещё раз, у меня работает. У вас редактор точно CR вставил в первый аргумент функции string-right-trim? Может, попробовать ещё скопировать оттуда, где он точно есть? Да, let — локальная лексическая, а defvar и defparameter — глобальные динамические. Я что-то не подумал, что вы глобальную переменную будете использовать. Вы точно знаете, что делаете? Было бы естественнее, если бы функция read-from-file возвращала список, как вы потом пишете. Только его нужно вернуть: в нынешнем виде loop возвращает nil, можно после него написать in-list, чтобы вернулось значение этой переменной. С помощью loop можно короче:
0
|
28.02.2016, 14:09 | |
28.02.2016, 14:09 | |
Помогаю со студенческими работами здесь
7
Непонятный символ возврата каретки в bash скрипте Найти в цикле первое вхождение возврата каретки Символ возврата каретки в работе веб-сервера Какие бывают символы перевода строки? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |