O Windows Notepad e o Notepad ++ mostram novas linhas no mesmo arquivo de maneira diferente

O Windows Notepad e o Notepad ++ mostram novas linhas no mesmo arquivo de maneira diferente

Criei um script Perl que obtém alguns dados e os insere linha por linha em um arquivo de texto. Quando abro esse arquivo com o Notepad++, parece haver uma separação de linhas 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

Porém, se eu abrir o mesmo arquivo com o bloco de notas padrão do Windows, ele aparece sem os espaços, como segue:

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

A questão é: em qual bloco de notas devo confiar e por que isso acontece?

Responder1

Isto acontece quando oEOLcaracteres de controle não estão corretos. O Windows representa novas linhas com carriage return+ line feed.

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

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

bloco de notas++

Você precisa modificar seu script para que seus dados sejam formatados assim:

CRLF

Responder2

A configuração

Edit > EOL Conversion

Tem algum efeito? Tente mudar para UNIX.

Responder3

Você tem um caractere EOL não-Windows além do EOL normal do Windows CrLf. O Notepad++ entende 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.

Não conheço 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 da sua string e remova-o se for um carriage return.

Exemplo em VBA

If Asc(Right(sName, 1)) = 13 Then
   sName = Left(sName, Len(sName) - 1)
End If

informação relacionada