Windows Notepad e Notepad ++ mostram novas linhas no mesmo arquivo de forma diferente

5

Eu criei um script Perl que obtém alguns dados e insere linha por linha em um arquivo de texto. Quando eu abro esse arquivo com o Notepad ++, ele parece ter uma separação de linha vazia entre cada duas linhas de texto, por exemplo:

AAVX    Etracs Daily Short 1 Month S&P

ABCS    Guggenheim Abc High Dividend Et

ABI     Safety First Trust

No entanto, se eu abrir o mesmo arquivo com o bloco de notas padrão do Windows, ele aparecerá sem os espaços, da seguinte maneira:

AAVX    Etracs Daily Short 1 Month S&P
ABCS    Guggenheim Abc High Dividend Et
ABI     Safety First Trust

A pergunta é: em qual dos blocos de notas devo confiar e por que isso acontece?

    
por Eugene S 26.01.2012 / 18:45

3 respostas

11

Isso acontece quando os caracteres de controle EOL não estão corretos. O Windows representa novas linhas com o carriage return + line feed .

No Notepad ++, você pode verificar esses caracteres selecionando:

Ver > Mostrar símbolos > [x] Show End of Line

Vocêprecisamodificarseuscriptparaqueseusdadossejamformatadosassim:

    
por 26.01.2012 / 18:55
4

O cenário

Edit > EOL Conversion

Tem algum efeito? Tente trocá-lo para o UNIX.

    
por 26.01.2012 / 18:59
2

Você tem um caractere EOL não Windows além do Windows EOL CrLf normal. O Notepad ++ compreende todos os vários caracteres EOL e exibe todos eles. O bloco de notas do Windows não é tão inteligente e ignora os caracteres EOL que não são do Windows.

Eu não sei Perl, mas quando isso acontece comigo é quase sempre porque a string que estou enviando tem o caractere EOL não-Windows no final. Teste o valor do código do caractere Asc do último caractere em sua string e remova-o se for um carriage return .

Exemplo no VBA

If Asc(Right(sName, 1)) = 13 Then
   sName = Left(sName, Len(sName) - 1)
End If
    
por 26.01.2012 / 19:18