Re: [java-l] Archivo de texto con DFWOpen() en Linux y CRLF

Sebastían,

Si bien esperaba poder generar el archivo directamente bien, es una solución bastante buena la que planteás, llamar a esa clase después del dfwclose y listo.
Muchas gracias por tu respuesta.

Saludos,
Pablo


From: "Sebastián Cardello" <scardello@acpsistemas.com.ar>
To: java-l@gxtech.com.uy
Sent: Viernes, 22 de Febrero 2013 12:25:46
Subject: Re: [java-l] Archivo de texto con DFWOpen() en Linux y CRLF

Pablo:

Respecto de lo que ilustrás en los puntos 1 y 2 lo que decís es cierto.
Hace un par de largos años atrás tuve un problema similar y dado que los
archivos que se generaban eran de tamaño significativo, no podía seguir
el mecanismo que vos utilizás. Entonces se hizo una pequeña clasecita
java que abría el archivo recién generado en formato Unix (linux) y lo
transformaba a formato dos (windows). En su momento la invocamos
directamente como un call externo, pero hoy con GX X usando un external
object llamás a la funcionalidad de forma transparente y sencilla.

Te dejo un par de ej. que encontré en internet + la versión que yo
utilizaba (que está codificada a la "quick & dirty way")

* Mi clasecita: http://pastebin.com/HLxXbK1N
* Una clase interesante que convierte en ambas direcciones:
http://bit.ly/W7XhFR
* Una versión más moderna que hace la conversión inversa, pero es
interesante la implementación: http://stackoverflow.com/a/10208479

Saludos,

--
Ing. Sebastián C Cardello
ACP Ing. en Sistemas
Tel (+54 261) 4296686
Av. España 943 PB. Of. 1
Mendoza, Argentina

El 21/02/2013 11:11 a.m., Pablo Moleri escribió:
> Hola,
>
> Estoy queriendo escribir un archivo de texto con las funciones DFWOpen()
> y demás.
>
> El problema es que ejecutando en plataforma Linux el archivo queda
> generado con los saltos de línea linux (LF), cuando la interfaz que lo
> recibe solo acepta saltos de línea Windows (CRLF).
>
> La solución que hice es de este estilo:
>
> &eol = chr(13) + chr(10)    // CR LF
>
> &err = DFWOpen(&fullpath, '', '', 0, "iso-8859-1")
> ...
> &err = DFWPTxt(&Lin)// Línea 1
> &err = DFWPTxt(&eol)
> ...
> &err = DFWPTxt(&Lin)// Línea N
> &err = DFWPTxt(&eol)
>
> &err = DFWNext()// Baja todo el texto al archivo
> &err = DFWClose()
>
>
> Este enforque tiene 2 problemas:
>
>  1. Creo que queda todo el archivo en memoria y baja al archivo recién
>     en el DFWNext(), con lo cual estoy haciendo un consumo de memoria
>     innecesario.
>  2. Por más que los saltos de línea intermedios quedan como CFLF, el
>     DFWNext() crea el último salto de línea estilo linux (LF).
>
> Afortunadamente ninguno de los 2 problemas son muy importantes en mi
> caso, pero me gustaría saber si alguien conoce alguna mejor solución.
>
> Gracias,
> Pablo Moleri
>

-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20
Por consultas owner-java-l@gxtech.com.uy

0 Response to "Re: [java-l] Archivo de texto con DFWOpen() en Linux y CRLF"

Publicar un comentario