Creé un script en Perl que obtiene algunos datos y los inserta línea por línea en un archivo de texto. Cuando abro ese archivo con Notepad++, parece tener una separación de línea vacía entre cada dos líneas de texto, por ejemplo:
AAVX Etracs Daily Short 1 Month S&P
ABCS Guggenheim Abc High Dividend Et
ABI Safety First Trust
Sin embargo, si abro el mismo archivo con el bloc de notas estándar de Windows, aparece sin espacios, de la siguiente manera:
AAVX Etracs Daily Short 1 Month S&P
ABCS Guggenheim Abc High Dividend Et
ABI Safety First Trust
La pregunta es: ¿En cuál de los blocs de notas debo confiar y por qué sucede?
Respuesta1
Esto sucede cuando elfin de vidaLos caracteres de control no son correctos. Windows representa nuevas líneas con el carriage return
+ line feed
.
En Notepad++, puede verificar estos caracteres seleccionando:
Vista>Mostrar símbolos>[x] Show End of Line
Debe modificar su secuencia de comandos para que sus datos tengan el formato siguiente:
Respuesta2
¿La configuración
Edit > EOL Conversion
¿Tiene algún efecto? Intente cambiarlo a UNIX.
Respuesta3
Tiene un carácter EOL que no es de Windows además del carácter EOL normal de Windows CrLf
. Notepad++ comprende todos los caracteres EOL y los muestra todos. El Bloc de notas de Windows no es tan inteligente y omite los caracteres EOL que no son de Windows.
No conozco Perl, pero cuando esto me sucede casi siempre es porque la cadena que envío tiene el carácter EOL que no es de Windows al final. Pruebe el valor del código de caracteres Asc del último carácter de su cadena y elimínelo si es un archivo carriage return
.
Ejemplo en VBA
If Asc(Right(sName, 1)) = 13 Then
sName = Left(sName, Len(sName) - 1)
End If