1

Я программист. Я ненавижу отчеты о состоянии. Я нашел способ жить с этим. Пока я работаю в своей 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 ответ1

3

Вы используете одну новую строку для переноса и двойные новые строки для абзацев. 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)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .