anonymous Log in
Search
Recents:
v3.0
gx-l
TXT file con caracteres raros
12/20/11 09:32 PM

Augusto Santana

Replies:  4

Hola
Lo que necesito es generar un archivo de Texto, entre comillas, separados
por comas.
Para ello, defini un procedure que tiene estas cracterisiticas:
OUTPUT: Only to file
Text mode en el layout
En las rules:
Output_File("c:\mytest.txt", "txt") ;
printer('Generic/txt'); DONDE ESTA IMPRESORA
ESTA DEFINIDA COMO SOLO TEXTO
Cuando se genera el archivo, en el aparecen carcacteres de control "raros"
Me puede ayudar alguien a limpiar eso o a evitarlo ?
Mi ambiente es GX Ev 1 U7, C#, Interface WIN, MS SQL 2005
Gracias !
Augusto
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,1
Por consultas owner-gx-l@gxtech.com.uy
Replies

Diego Kesselman

12/20/11 10:45 PM
Posiblemente sean caracteres de final de linea o final de pagina.
Has intentado leer el archivo con tu programa "destino"? Muchos programas los ignoran.
Saludos
Diego E. KESSELMAN
----------

rdiaz

12/20/11 10:54 PM
Ese caracter es de salto de pagina, en el texto debes reemplazar el caracter por un espacio nulo ''

Ing. Martin colmener

12/20/11 11:53 PM

Lo que sucede es que mandas a un archivo la impresión que normalmente iria a
una impresora, y lo que ves son los caracteres de control como: retorno de
carro, salto e linea, etc.
Tienes que crear un archivo de texto y agregar los datos.
Te paso un extracto de un aporte de baje de la web, finalmente no lotuilize
pero aprendi algo nuevo. Quiza a ti te sirva.
Se trata de crear un archivo txt y agregarle lineas.

Aquí va:

Lo que devere hacer en genexus sera crear un archivo txt , osea generar un
archivo txt desde genexus y que este archivo txt contenga comando TPL que
permitan imprimir, simple verdad , bueno entonces como genero un txt desde
genexus?????
Facil :)
este codigo ira en el EVents de un webpanels
Event 'imprimir' // todo esto va dentro de un boton
&i = DFWOpen("c:\comandoszebraT.txt", ",", ' ') // direccionamos la unidad
en la que queremos que se cree mi archivo txt y le damos el nombre con el
que quiero que se
&i = dfwptxt(' ') // linea en blanco //cree
&i = dfwnext( ) // salto de linea
&i = dfwptxt(' ') // linea en blanco
&i = dfwnext( ) //salto de linea
&i = dfwptxt('N') // comienzo de comando zebra
&i = dfwnext( )
&i = dfwptxt( ' A50,300,0,3,2,2,R, "Example6" ' )
&i = dfwnext( )
&i = dfwptxt('P1') // fin de comandos zebra
&i = dfwnext( )
&i = dfwclose() // fin de creacion de txt
DO 'IMPRI' // llamo a un evento sub que me ejecuta el archivo bat para la
impresion
EndEvent
Sub 'impri'
&M = shell('C:\Printexe.bat',1) // llamo al archivo bat que me ejcuta mi
impresion :)
load
EndSub
hasta este punto no deeria tener problemas jejjejejejeje que tal espero que
todo este yendo bien hasta ahora
INSERTANDO VARIABLES A MI CODIGO DE CREACION DE ARCHIVO TXT
Bien hasta ahora solo he impreso "Example6" en codigo de barras verdad (si
leiste el manual podras hacer muchas mas cosas :)) pero no ideal es imprimir
lo que tu quieras
dentro de ese espacio que esta reservado para el texto .
Pues bien manos a la obra , recordemos que lo que vaya dentro de ese espacio
entre comillas que tenemos en los comandos TPL es de tipo caracter , asi que
cualquier cosa que quiera insertar alli tendra que ser de tipo caracter , si
quiero poner un numero tendre que convertirlo a caracter.
pero .................. no es asi de facil colocar mi variable y punto .....
yo tambien me desilcione en primera instancia sin embargo me faltaba algo
,que
la variable que deseaba que vaya en ese espacio este contenida en otra
variable de tipo caracter y de tamaño 4 , por uqe???? , la verdad hasta
ahora no se la razon pero de que funciono funciono aqui va el ejemplo
tengo la variable &nombre que es de tipo caracter de 30
lo que devere hacer para ingresarlo a mi codigo sera
crear una variable &nom de tipo caracter de 4 y almacenar la variable
&nombre en &nom de esta manera
&nom = substr(&nombre,1,30)
listo eso es todo si quisiera rebajar el tamaño de letra simplemente bajo el
numero de letras recorridas de 30 a 25 o a10 no se lo que les de la gana je.
de esa manera esto quedaria asi:
Event 'imprimir' // todo esto va dentro de un boton
&nom = substr(&nombre,1,30) // insertando variable de 30 en una de 4
jajajajaj increible , si alguien me explica por que pasa esto gracias¡¡¡¡
&i = DFWOpen("c:\comandoszebraT.txt", ",", ' ') // direccionamos la unidad
en la que queremos que se cree mi archivo txt y le damos el nombre con el
que quiero que se
&i = dfwptxt(' ') // linea en blanco //cree
&i = dfwnext( ) // salto de linea
&i = dfwptxt(' ') // linea en blanco
&i = dfwnext( ) //salto de linea
&i = dfwptxt('N') // comienzo de comando zebra
&i = dfwnext( )
&i = dfwptxt( ' A50,300,0,3,2,2,R, " ' + &NOM + ' " ' ) // tomar detalle de
como ingresa la variable al espacio las comillas y el signo mas y todo eso
&i = dfwnext( )
&i = dfwptxt('P1') // fin de comandos zebra
&i = dfwnext( )
&i = dfwclose() // fin de creacion de txt
DO 'IMPRI' // llamo a un evento sub que me ejecuta el archivo bat para la
impresion
EndEvent

Augusto Santana

12/21/11 07:43 PM
Hola
Gracias a todos los que me ayudaron:
ANduvo perfecto con la funcion DFWOpen y los otros.
Augusto
2011/12/20 Diego E. KESSELMAN <diegokesselman@gmail.com>
> **
> Posiblemente sean caracteres de final de linea o final de pagina.
> Has intentado leer el archivo con tu programa "destino"? Muchos programas
> los ignoran.
> Saludos
> Diego E. KESSELMAN
> ------------------------------
> *


Back to gx-l