Проблемы преобразования простого текста в маркированные списки Microsoft Word
Я программист. Я ненавижу отчеты о состоянии. Я нашел способ жить с этим. Пока я работаю в своей IDE ( Visual Slickedit), я держу открытый текстовый файл открытым на одной из вкладок файла / буфера. Когда я заканчиваю, я просто записываю заметку в этот файл. В конце недели это становится моим еженедельным отчетом о состоянии. Пример записи:
The Datatables.net plugin runs very slowly in IE 8 with more than 2,000 records. I
changed the way I did the server side code to process the data to make less work for the
plugin to get decent performance for the IE 8 users.
I made a class to wrap data from the new data collection objects into the legacy data
holder objects. This will let the new database code be backward compatible with the
legacy code until we can replace it.
I found the bug reported by Jane. The software is fine. The database we use for the
test site has data that is corrupted in a way it wouldn't be for production site
В конце месяца я возвращаюсь к каждому еженедельному файлу *.txt и вставляю все записи в файл MS Word для ежемесячного отчета. Я даю ежемесячный отчет одной из подрядчиков, которая должна собрать все ежемесячные отчеты в единый документ MS Word 2007. Его проблема, которая скоро станет моей, возникает, когда он выделяет мои абзацы, подобные тем, что были выше, чтобы поставить пули перед моими абзацами.
Когда он выделяет мои заметки, чтобы поставить маркеры перед ними с помощью MS Word 2007, Word немного переупорядочивает текст, а символы новой строки / каретки возвращают текст, чтобы переместить текст в аккуратные куски.
Это:
I found the bug reported by Jane. The software is fine. The database we use for the
test site has data that is corrupted in a way it wouldn't be for production site
Становится этим:
I found the bug reported by Jane. The software is fine. The database we use for
the
test site has data that is corrupted in a way it wouldn't be for production site
Я попытался включить перенос слов в моей IDE для текстовых файлов, в которые я помещаю свои заметки о состоянии. В любом случае он просто вводит какой-то символ перевода строки. Поиск / замена этих символов в текстовых файлах приводит к разрушению абзацев.
Когда мои заметки вставляются в MS Word, Word автоматически переводит их в разрывы абзацев. Поиск / замена их имеет аналогичные результаты. Пустые строки, разделяющие ноты, исчезают. Один большой беспорядок
То, что я хотел бы, это иметь возможность добавлять заметки о своем статусе в текстовый файл, как я сейчас, но делать что-то другое, когда я вставляю заметки в MS Word, так что мой лисон может выбрать текст, нажать команду маркировки и НЕ иметь разнесенный текст, как показано выше.
Есть идеи?
Большое спасибо заранее
Стив
1 ответ
Вы используете одну новую строку для переноса и двойные новые строки для абзацев. Word распознает одну или несколько новых строк в качестве нового абзаца, который становится новым маркером. Вам нужно ввести дополнительный шаг манипуляции перед вставкой в Word, где удаляются отдельные новые строки.
Если вы можете использовать регулярные выражения, это просто заменить \r\n(?!\r\n)
ни с чем. Это удаляет новые строки (из CR+LF
разнообразие), если за ними не следует еще одна новая строка, поэтому удаляются одиночные разрывы строк.1
У него есть побочный эффект уменьшения нескольких новых строк на одну.2 Вы можете сделать это со многими продвинутыми текстовыми редакторами; почти все, что поддерживает Perl-совместимые регулярные выражения (PCRE).
Например, в Notepad++:
Чтобы привести в порядок вещи, вы можете заменить несколько пробелов одним пробелом, заменив [ ]+
(один или несколько пробелов) с (один пробел).
1\r
означает возврат каретки (CR
), \n
означает перевод строки (LF
). Windows использует CR+LF
для новых линий Linux использует только LF
, (?!something)
обозначает негативный взгляд на PCRE; то есть соответствует только если something
не появляются. Кроме того, прогноз не включается в матч и, следовательно, не заменяется, он только проверяется.
2(?<!\r\n)\r\n(?!\r\n)
не будет совпадать / уменьшаться, если есть более одной строки. Он использует отрицательный взгляд назад, (?<!something)
,