Символы переноса строк

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Символы переноса строк

Post by F. Phoenix »

Работаю над файлами, в которых LF и CRLF имеют разное назначение. При открытии и редактировании Акел их различает соответственно на [n] и [rn], но в момент сохранения он все конвертирует в установку "формат новой строки". Можно это дело как-то отрубить?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

F. Phoenix
Не должно конвертироваться. Видимо перед сохранением вызывается какая-либо операция преобразования текста, например, убирание пробелов и табуляции в конце строк.

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Хм... да вроде, ничего такого не ставил. Похоже, при Win-стиле оно все конвертит, при Unix - нет: пример.

Хотя чет с разными переносами большинство редакторов косячит, включая Beyond Compare, которую я юзаю для слияния, так что чую, в моем случае будет проще написать пару скриптов для преобразования чистого 0x0A в сочетание \n и обратно.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

F. Phoenix
Не понял, что демонстрирует файл. В файле все переводы строк \n (перепроверил из Hex редактора). Повторю переводы строк не должны конвертироваться (даже смешенные) при сохранении. Переводы строк можно проверять с помощью SpecialChar плагина.

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Видать, хост или браузер развлекается. Дубль 2, хотя он демонстрирует лишь поведение при сохранении. С включенным спешл-чаром и смотрю. Открываю файл - там в первом случае \n, во втором - \r\n, формат строки распознается как Unix. Меняю формат на Win - переводы остаются оригинальными; сохраняю - первый превращается в \r\n.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

F. Phoenix
Сохраняется без изменений переводов. Смотрите как вы сохраняете файл. Если через кнопку Toolbar, то что назначено на эту кнопку, если через горячую клавишу, то что назначено на эту горячую клавишу в Hotkeys "Все клавиши".

Добавлено:
Открываю файл - там в первом случае \n, во втором - \r\n, формат строки распознается как Unix. Меняю формат на Win - переводы остаются оригинальными; сохраняю - первый превращается в \r\n.
С этого и надо было начинать. При изменении формата новой строки все переводы при сохранении унифицируются.

Offline
Posts: 5
Joined: Wed Oct 31, 2018 8:05 am

изменение символа конца строки

Post by konstazhoglo »

храню файлы в кодировке UTF 8
заметил такую странность раньше
строки заканчивались символом конца строки \n
а теперь \rn

как это произошло и как вернуть всё назад?

p.s. на самом деле проблема в другом, при поиске строк
вида: ^([а-яА-Я])(.+?)( )([a-zA-Z])(.+?)$
и замене на: \4\5\3\1\2

т.е. если строка начинается с русского текста то он меняется местами с латинским и уходит в конец строки.

но после замены символа конца строки \n на \r\n

при замене теперь замененная строка оборачивается символами \r
как это побороть?

Offline
Posts: 330
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

У тебя в меню правка есть такие пункты (это может быть в подменю):
"DOS/Windows (0Dh, 0Ah)" Command(4184)
"Unix (0Ah)" Command(4185)
"Mac (0Dh)" Command(4186)

Задай везде тип переноса строк. Если ты вставляешь из одного документа в другой разные варианты переноса строк, то у тебя документ может переключится к единому значению для стандартного в текущей ОС. Например для Windows нормально \r\n и если ты скопируешь текст из другого документа с переносами \r\n то AkelPad может проверить есть ли у тебя в тексте символ \r и если есть то приведёт документ к единому виду, но это не точно.

^([а-яА-ЯЁё])(.+?) ([a-zA-Z])(.+?)$
\3\4 \1\2
1. пробел можно не использовать как группу
2. "Ёё" также русские буквы но не входят в диапазон а-я и А-Я. Смотри таблицу символов, стандартная программа в Windows, найди там последовательности русского алфавита и посмотри входит ли "Ёё" в последовательность. Можно так [А-яЁё]
Post Reply