Problemas ao converter texto sem formatação em listas com marcadores do Microsoft Word

1

Eu sou um programador. Eu odeio relatórios de status. Eu encontrei uma maneira de viver com isso. Enquanto estou trabalhando no meu IDE (Visual Slickedit), mantenho um arquivo de texto simples aberto em uma das guias de arquivo / buffer. Ao terminar as coisas, anoto apenas uma nota rápida no arquivo. No final da semana que se torna meu relatório de status semanal. Exemplo de entradas:

  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

No final do mês, volto a cada arquivo * .txt semanal e cole todas as entradas em um arquivo do MS Word para um relatório mensal. Eu dou o relatório mensal para uma ligação com a empresa contratante que tem que compilar relatórios mensais de todos em um único documento do MS Word 2007. Seu problema, que logo será meu problema, vem quando ele destaca meus parágrafos como os acima para colocar marcadores na frente dos meus parágrafos.

Quando ele destaca minhas anotações para colocar marcadores na frente deles com o MS Word 2007, o Word reorganiza o texto um pouco e a nova linha retorna o texto para que o texto não fique mais em blocos.

Isto:

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

Torna-se este:

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

Eu tentei transformar a quebra de linha no meu IDE para os arquivos de texto em que coloquei minhas notas de status. Ele apenas coloca algum tipo de caractere de nova linha de qualquer maneira. A pesquisa / substituição desses caracteres nos arquivos de texto tem o resultado de destruir os parágrafos.

Quando minhas anotações forem coladas no MS Word, o Word as converterá automaticamente em quebras de parágrafos. Pesquisando / substituindo-os, há resultados semelhantes. Linhas em branco que separam as notas desaparecem. Uma grande bagunça.

O que eu gostaria é poder continuar adicionando minhas notas de status a um arquivo de texto como estou agora, mas fazer algo diferente ao colar as anotações no MS Word, de modo que minha interlocução possa selecionar o texto, atingir o marcador comando e NÃO tem o texto escalonado como mostrado acima.

Alguma idéia?

Muito obrigado antecipadamente

Steve

    
por user787832 07.07.2012 / 15:14

1 resposta

3

Você está usando uma única nova linha para quebra automática e duplas novas linhas para parágrafos. O Word reconhece uma ou mais novas linhas como um novo parágrafo, que se torna um novo ponto. Você precisa introduzir uma etapa extra de manipulação antes de colar no Word, onde novas linhas únicas são removidas.

Se você pode usar expressões regulares, é simples substituir \r\n(?!\r\n) por nada. Isso remove novas linhas (da variedade CR+LF ) se elas não forem seguidas por outra nova linha, removendo, portanto, quebras de linha únicas. 1

Tem o efeito colateral de reduzir várias linhas novas em um. 2 Você pode fazer isso com muitos editores de texto avançados; praticamente qualquer coisa que suporte expressões regulares compatíveis com Perl (PCRE).

Por exemplo, no Notepad ++:


Cliqueparaaumentarotamanho


Clique para aumentar o tamanho

Para arrumar as coisas, você pode substituir vários espaços por um único espaço, substituindo [ ]+ (um ou mais espaços) por (um único espaço).

1 \r significa retorno de carro ( CR ), \n significa avanço de linha ( LF ). O Windows usa CR+LF para novas linhas, o Linux usa apenas LF . (?!something) denota um lookahead negativo em PCRE; isto é, corresponde apenas se something não aparecer. Além disso, o lookahead não é incluído na partida e, portanto, não é substituído, é apenas verificado .

2 (?<!\r\n)\r\n(?!\r\n) não será igual / reduzido se houver mais de uma linha. Usa o lookbehind negativo, (?<!something) .

    
por 07.07.2012 / 16:56