GeneXus - Sobre variables y txt

 
Vista:

Sobre variables y txt

Publicado por Esteban (17 intervenciones) el 25/07/2007 23:26:12
Hola, yo quiero realizar lo siguiente:
Tengo en una transaccion un evento enter llamado 'prueba', que al hacerle clic lea un archivo txt, en este caso provee con un solo campo, y que me muestre ese campo. Este es el codigo.

Event 'prueba'
&i = dfropen("prueba.txt", 1024, "\t")

do while DFRNext( ) = 0

&i = DFRGNum(&ID_PERSONA)

If &i=0

msg('&i')

endif

enddo

&i = DFRClose( )

EndEvent // 'prueba'

pero al hacerle el Build all, en la parte de "Warnings" me aparece esto
"spc0047 Variable I not defined; N(10.2) assumed.
spc0047 Variable ID_PERSONA not defined; N(10.2) assumed."

Supongo que tengo que definir las variables, por lo que puedo intuir pero ¿la tengo que definir aquí o en otro lado? o lo que sería mejor ¿la tengo que definir? Porque estoy más perdido que turco en la neblina y ya no se para donde disparar.

Uso la version 9 y java.

Bueno, me despido desde ya muchas gracias.

Atte. esgu.

PD: lei en este foro los temas que figuraban los txt pero no aparecia nada de esto.
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:Sobre variables y txt

Publicado por PabloF (275 intervenciones) el 26/07/2007 13:48:06
Exactamente. Las advertencias que te muestra la especificacion son relativas a que no has definido las variables, lo cual no seria un error muy grave pues generalmente autodefine el tamaño de las mismas.

Tu problema es esta sentencia DFRGNum(&ID_PERSONA) que importa los datos del TXT, pero teniendo en cuenta el tamaño de la variable que recibira el dato. Para clarificar el tema, si &ID_PERSONA esta definido como numerico de 5 caracteres sin decimales, el DFRGNum leera 5 caracteres del TXT y eso lo importara a la variable de referencia.

Conclusion: La variable debe estar definida al tamaño de los datos que va a importar.

Saludos PF
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:Sobre variables y txt

Publicado por Leandro (146 intervenciones) el 26/07/2007 13:49:14
Si, tenes que definir las variables dentro de cada objeto, y no resiste ningun análisis mas. No es este el caso, pero si no definis las variables, mas de una vez tu programa no va a andar.
Una cosa que veo en ese código es que no ejecutas el DFRNext( ) dentro del while. Sinceramente no se si se ejecutará cuando lo pones en la condición del while, pero no creo que sea la mejor forma. Yo pondria asi

DFRNext( ) = 0
do while &retorno = 0
&i = DFRGNum(&ID_PERSONA)
If &i=0
msg('&i')
DFRNext( ) = 0
endif
enddo
&i = DFRClose( )

De esta forma, el último DFRNext() devuelve -4 si todo fue correcto y saldrá. Exitos.
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:Sobre variables y txt

Publicado por Esteban (17 intervenciones) el 27/07/2007 19:48:36
Gracias PabloF y Leandro por haber respondido a mi pregunta.

Te comento Leandro que me da el siguiente error, cuando quiero guardar los cambios: "Invalid expression
(Events, Line 3, col 12)"

Es donde se encuentra DFRNext( ) = 0

No se que puede estar faltándome.

Bueno, muchas gracias a ambos por su amabilidad y hasta luego.

Atte. Esgu.
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:Sobre variables y txt

Publicado por Leandro (146 intervenciones) el 27/07/2007 20:31:36
El error es porque escribi te di una Estupidez se código (Se ve que ese día estaba en otra, mis disculpas). El código que yo uso para leer un archivo sería asi.

&Retorno = DFROpen(&archivo)
if &Retorno = 0 // Exito.
----&Retorno = DFRNext( )
----do while &retorno = 0
---------&i = DFRGNum(&ID_PERSONA)
---------If &i=0
------------msg('&i')
------------&Retorno = DFRNext( )
--------endif
----enddo
endif
&Retorno = DFRClose( )

Exitos.
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:Sobre variables y txt

Publicado por Esteban (17 intervenciones) el 27/07/2007 22:00:30
No te preocupés, te entiendo perfectamente.

Lo probé el nuevo codigo que me diste y te cuento que en el mensaje msg('&i') me aparece en la pantalla &i y no el dato que contiene la variable.

Cosa de mandinga.

Bueno, me despido y gracias por responderme.

Atte. Esgu.
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:Sobre variables y txt

Publicado por Esteban (17 intervenciones) el 02/08/2007 19:14:39
Leandro te comento que le encontre la forma para que en el mensaje coloque el valor que tiene &i, es así como lo hice

msg(concat('valor de i', &i, ' '))


Esgu.
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