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
Você precisa modificar seu script para que seus dados sejam formatados assim:
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