Отправляет email-рассылки с помощью сервиса Sendsay

[TC] убрать переносы в *.txt

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

Ответы:

Здравствуйте Александр!
Откройте файл в ворде, сохраните его как док-файл, закройте и откройте вновь
док-файл. откройте диалоговое окно "Найти и заменить", в пункте "Найти"
напишите: -^p затем найдите "Заменить всё, и ворд вам всё уберёт. после
этого можете сохранить в txt и читайте на здоровье.
С уважением
Николай."

Ответить   "Николай Ходус" (#527823)

 

Здравствуйте, Александр.

Вы пишите:

Да, случается.

Вы пишите:

Да, знаем.
Ваше счастье (причем даром) лежит тут:
http://www.tiflocomp.ru/download/misc/perenos.zip
В архиве два файла:
1. perenos.js
2. this_folder.cmd

Первый файл выполняет удаление в текстовых файлах (.txt, .htm) символа "-" с
любым числом последующих пробелов и символом новой
строки и сохраняет результат в файл с тем же именем и расширением. При этом создается
резервная копия файла с расширением .bak.
Формат запуска:
perenos.js filename.txt

Второй файл - это пакетный файл, который выполняет операцию удаления переносов
во всех текстовых файлах (.txt) в текущем каталоге.
При этом используется первый файл.
Скрипт (perenos.js) написан для использования в пакетных файлах, поэтому никаких
сообщений об ошибках не выдается. Скрипт просто
прекращает работу.
Рекомендую потренироваться на маловажных текстах.

Успехов. Анатолий.

Ответить   "i_chay" (#527921)

 

Здравствуйте, Анатолий!

с

Анатолий, действительно удобный инструмент, но меня смущает, что скрипт отработает
и в таком случае:
"Москва -
столица РФ."

Не будет ли лучше, если регулярное выражение определить так:

var re = RegExp ("[^ ]- *\r*\n[^ ]", "gi");

Правда, и такое определение не спасет от случая:

"Поставьте хоть какой-
нибудь синтезатор!"

Как Вы смотрите на внесение подобного изменения?

Всего доброго!

Ответить   Fri, 17 Mar 2006 16:03:06 +0300 (#528210)

 

Здравствуйте, Влад (il'ich).
Скрипт доступен для изменений. Необходимо только указать, кто, когда и с какой
целью это сделал. Вы можете попробовать подобрать
регулярное выражение эмпирическим путем (разумеется, лучший вариант можно будет
выложить для общего доступа).
Но сразу уберегу вас от пустой траты времени относительно варианта:
var re = RegExp ("[^ ]- *\r*\n[^ ]", "gi");

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

Вообще же, по многим причинам для пакетной обработки предпочитаю использовать
php.

Успехов. Анатолий.

Ответить   "i_chay" Sat, 18 Mar 2006 10:18:51 +0400 (#528362)

 

Здравствуйте, Анатолий!

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

Если добавить в регулярное выражение скобки, а команду замены изменить:

var re = RegExp ("([^ ])- *\r*\n([^ ])", "gi");

...

buf = buf.replace(re, "$1$2");

Этот вариант проверял, работает.

Согласились бы Вы с такими изменениями в ваш скрипт?

Успехов!

Ответить   Sat, 18 Mar 2006 10:32:16 +0300 (#528395)

 

Здравствуйте, Влад(il'ich).

Да,согласен, и так можно.
В общем случае, вариантов может быть много. Например, ваш не спасет от случая,
когда тире обозначается двумя минусами, то есть
Магадан --
столица колымского края.

Здесь лучше: ("([a-zа-я])-...
(Правда в некоторых реализациях регулярных выражений русские буквы не составляют
последовательного ряда, но в JScript я такого не
наблюдал).
А также в случае, когда новая строка (даже после переноса слова) начинается с
пробелов (вспомните файлы, которые порождал
Лексикон).
Короче, вариантов много, как и человеческой фантазии в оформлении текстов:)
Успехов. Анатолий.

Ответить   "i_chay" Sat, 18 Mar 2006 12:13:35 +0400 (#528414)