Developer - Función chr (10) añade chr (13) previamente

 
Vista:

Función chr (10) añade chr (13) previamente

Publicado por Ishay (3 intervenciones) el 30/07/2007 08:17:29
Hola,
al utilizar el paquete de funciones TEXT_IO para escribir un fichero de texto, me está ocurriendo un curioso efecto.
Cuando añado un salto de línea utilizando CHR (10), automáticamente se incluye también el CHR (13), siendo algó que no quiero que ocurre.
¿Sabe alguien a que es debido este efecto y como evitarlo?

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Función chr (10) añade chr (13) previamente

Publicado por correo nombre (1 intervención) el 26/09/2007 00:27:42
hola patricio
como estas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función chr (10) añade chr (13) previamente

Publicado por Ishay (3 intervenciones) el 02/10/2007 08:39:53
¿Patricio?, me he perdido, aunque sigo sin encontrar una solución que no sea procesar otra vez el fichero (con una aplicación en otro lenguaje) para eliminar el caracter añadido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función chr (10) añade chr (13) previamente

Publicado por peluchin (1 intervención) el 21/02/2008 18:18:36
creo k puedes hacer esto:

si al poner chr(10) te sale un chr(13), puedes hacer un REPLACE('string',chr(13),null).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función chr (10) añade chr (13) previamente

Publicado por Ishay (3 intervenciones) el 13/03/2008 14:00:57
No conseguí el efecto deseado.
Escribí este código:
"...
OBJETO2 := TEXT_IO.FOPEN('c:fichero.dat', 'W');
TEXT_IO.PUT(OBJETO2, replace ('hola' || chr (10) || 'adios', chr(13),null));
TEXT_IO.FCLOSE(OBJETO2);
..."
, pero me sigue creando un fichero de 11 bytes:
hola (4)
ascii 13 (1)
ascii 10 (1)
adios (5)

Incluyendo el directamente en el salto de línea el ascii 13.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Función chr (10) añade chr (13) previamente

Publicado por erm3nda (1 intervención) el 04/03/2015 09:07:12
Esto es del año la pera, pero aún así.

En vez de sustituir, yo veo más fácil pasar directamente el string "\n" si es eso lo único que quieres.
Otra opción sería mandarlo como hexadecimal.

El tema está en que es la función char() la que está programada para darte \r\n en vez de sólo \n, y por algo será.
En parseo de ficheros de texto con tabulaciones y la de diós es importante pasarte al final de la línea \r antes de pasar a una nueva línea \n, porque sinó estarías arrastrando a la línea nueva tanto tabulaciones como otros símbolos o codificaciones con BOM.

Toda una fuente de problemas. A menos que sea un requisito IMPRESCINDIBLE, \r y \n deben ir juntos, y ese será el motivo por el cual los amigos de PHP te dan 2 chars cuando sólo has puesto 1.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar