[gx-l] Problemas con la funcion DFW

407 views
Skip to first unread message

Victor Favazza

unread,
Jan 10, 2007, 10:26:26 AM1/10/07
to vb...@gxtech.com.uy, gx...@gxtech.com.uy
Hola Foro:
Estoy tratando de generar archivos secuenciales de texto utilizando la función DFWOpen y DFWClose, y al generar el sexto archivo , VB detecta un error y se cierra automaticamente. Cerrando toda la aplicacion y perdiendo toda la información.
Les muestro un código de ejemplo para esta situación:
 
Sub 'Prueba'
    For &i = 1 to 20
        &LmnHojaId = &LmnHojaId + 1
        &Path = 'D:\Texto' + trim(str(&LmnHojaId)) + '.txt'
        &ErrorTxt = DFWOpen( &Path, '', '', 1 )
//         &Texto = newline() + '</FONT> </TABLE>' + newline() //+
        //Agrega la ultima concatenacion.
//    &ErrorTxt = DFWPtxt(  &Texto )
 //    &ErrorTxt = DFWnext()
        &ErrorTxt = DFWclose()
    EndFor // &i = 1 to 20
EndSub // 'Prueba'
Si alguno utilizo esta función y sabe cual es el problema, agradeceria su ayuda.
Estoy trabajando con GX9, VB, SQL
 
Saludos, y Gracias
 

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

A/S Sergio A.Guichón

unread,
Jan 10, 2007, 11:46:28 AM1/10/07
to gx...@gxtech.com.uy
Victor:
 
¿Por que hacés el Open y Close dentro del For?
 
Lo que yo haría sería poner el Open antes del for y el close después del endfor.
Dentro del for solamente poner el comando que guarda la línea.
 
Aparte de eso, fijate que tengas "Allow non-standard functions when specifying" en la property "Functions" del modelo.
 

A/S Sergio A. Guichón
sgui...@montevideo.com.uy
Tel: 203.68.79
Ancel: 099 18.40.45

 


De: Victor Favazza [mailto:tor...@yahoo.com.ar]
Enviado el: Miércoles, 10 de Enero de 2007 12:26
Para: vb...@gxtech.com.uy; gx...@gxtech.com.uy
Asunto: [gx-l] Problemas con la funcion DFW

***********************
No se han encontrado virus en el archivo: (no filename).
Su mensaje ha sido escaneado con Trend InterScan.
No se han encontrado virus en el archivo: (no filename).
Su mensaje ha sido escaneado con Trend InterScan.
***********-***********

Victor Favazza

unread,
Jan 10, 2007, 11:42:19 AM1/10/07
to gx...@gxtech.com.uy
Sergio:
Gracias, pero te comento que lo pongo dentro del for porque necesito crear "n" archivos diferentes , todos con distintos nombres.  Genero 5 archivos bien, pero al sexto explota la ejecucion, y cuando intento abrir el sexto archivo generado, me dice que tiene un error y lo levanta vacio.
 
Saludos
 


"A/S Sergio A.Guichón" <sgui...@montevideo.com.uy> escribió:


Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
Probalo ya!

A/S Sergio A.Guichón

unread,
Jan 11, 2007, 7:05:50 AM1/11/07
to gx...@gxtech.com.uy
Ok
 
¿Por que no verificás el código de error devuelto?
 
Sub 'Prueba'
    For &i = 1 to 20
        &LmnHojaId = &LmnHojaId + 1
        &Path = 'D:\Texto' + trim(str(&LmnHojaId)) + '.txt'
        &ErrorTxt = nullvalue(&ErrorTxt)
       
&ErrorTxt = DFWOpen( &Path, '', '', 1 )
        If not null(&ErrorTxt)
            msg(str(&ErrorTxt))
            Exit
        Else
            //Agrega la ultima concatenacion.
            &ErrorTxt = nullvalue(&ErrorTxt)
            &ErrorTxt = DFWclose()
            If not null(&ErrorTxt)
                msg(str(&ErrorTxt))
                Exit
            Endif
        Endif
    EndFor // &i = 1 to 20
EndSub // 'Prueba'
 
En rojo aparecen las líneas que yo agregué. De esta forma sabés que error te dio en cada caso.
En la GXDL está el significado de cada uno de los errores.
 
 

A/S Sergio A. Guichón
sgui...@montevideo.com.uy
Tel: 203.68.79
Ancel: 099 18.40.45

 

De: Victor Favazza [mailto:tor...@yahoo.com.ar]
Enviado el: Miércoles, 10 de Enero de 2007 13:42
Para: gx...@gxtech.com.uy
Asunto: RE: [gx-l] Problemas con la funcion DFW

Victor Favazza

unread,
Jan 11, 2007, 11:41:47 AM1/11/07
to gx...@gxtech.com.uy
Sergio:
 
Ya analice todos los mensajes de error que puede llegar a generar el DFW. El problema es que no arroja ninguno de los mensajes disponibles. Sino que directamente revienta VB, en donde arroja que la memoria esta llena y no se puede leer, pero siempre con mensaje de VB.
 
No se bien como funciona las funciones DFW y DFR, pero parece que no liberan la memoria una vez que cerraste el archivo que se queria leer o escribir. Entonces al hacer varios seguidos, la memoria se llena de basura, hasta el punto en que impide el funcionamiento de VB.
 
Saludos y Gracias nuevamente.
 
 


Victor Favazza <tor...@yahoo.com.ar> escribió:

A/S Sergio A.Guichón

unread,
Jan 11, 2007, 2:31:25 PM1/11/07
to gx...@gxtech.com.uy
Victor:
 
Típico de VB, no libera nada hasta que cierra el programa.
Probá de hacer todo lo referente a la apertura del archivo y la grabación en un procedure aparte, es decir:
 
Haces el for, la asignación de variables y llamás a un prc que haga el dfwopen, dfwwrite, dfwclose, pasandole por parámetro todo lo necesario para que lo haga.
 

A/S Sergio A. Guichón
sgui...@montevideo.com.uy
Tel: 203.68.79
Ancel: 099 18.40.45

 

De: Victor Favazza [mailto:tor...@yahoo.com.ar]
Enviado el: Jueves, 11 de Enero de 2007 13:42
Para: gx...@gxtech.com.uy
Asunto: RE: [gx-l] Problemas con la funcion DFW

Luis Manuel Espinosa Granados

unread,
Jan 11, 2007, 1:32:08 PM1/11/07
to vb...@gxtech.com.uy
Tienes que setear tu work panel o procedure como main.

//Saludos



Date: Wed, 10 Jan 2007 15:26:26 +0000
From: tor...@yahoo.com.ar
To: vb...@gxtech.com.uy; gx...@gxtech.com.uy
Subject: [vb-l] Problemas con la funcion DFW


Hola Foro:
Estoy tratando de generar archivos secuenciales de texto utilizando la función DFWOpen y DFWClose, y al generar el sexto archivo , VB detecta un error y se cierra automaticamente. Cerrando toda la aplicacion y perdiendo toda la información.
Les muestro un código de ejemplo para esta situación:
 
Sub 'Prueba'
    For &i = 1 to 20
        &LmnHojaId = &LmnHojaId + 1
        &Path = 'D:\Texto' + trim(str(&LmnHojaId)) + '.txt'
        &ErrorTxt = DFWOpen( &Path, '', '', 1 )
//         &Texto = newline() + '</FONT> </TABLE>' + newline() //+
        //Agrega la ultima concatenacion.
//    &ErrorTxt = DFWPtxt(  &Texto )
 //    &ErrorTxt = DFWnext()
        &ErrorTxt = DFWclose()
    EndFor // &i = 1 to 20
EndSub // 'Prueba'
Si alguno utilizo esta función y sabe cual es el problema, agradeceria su ayuda.
Estoy trabajando con GX9, VB, SQL
 
Saludos, y Gracias
 
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar


Llama a tus amigos de PC a PC: ¡Es GRATIS! Pruébalo

Victor Favazza

unread,
Jan 12, 2007, 8:39:26 AM1/12/07
to gx...@gxtech.com.uy
Sergio:
       Ya intente sacar todo lo referente a DFW a otros reportes o procedure. pero sigue reventando. Al final, utilice codigo visual puro para hacerlo funcionar, aunque sea por ahora. Y me permite generar todos los archivos que quiera.
 
Un ejemplo: 
Sub 'Prueba'

    For &i = 1 to 20
        &LmnHojaId = &LmnHojaId + 1
        &Path = 'D:\Texto' + trim(str(&LmnHojaId)) + '.txt'

//        &ErrorTxt = DFWOpen( &Path, '', '', 1 )
 
    VB OPen [!&path!] for output access write as #1

        &Texto = newline() + '</FONT> </TABLE>' + newline() //+
        //Agrega la ultima concatenacion.
//    &ErrorTxt = DFWPtxt(  &Texto )
      VB Print #1,[!&Texto!]
 
//    &ErrorTxt = DFWnext()
//        &ErrorTxt = DFWclose()
 
    VB Close #1

    EndFor // &i = 1 to 20
EndSub // 'Prueba'
 
Asi que debe ser un problema de GX, o no se. Pero necesitaba seguir, hasta que se pueda solucionar.
 
Gracias

A/S Sergio A.Guichón

unread,
Jan 12, 2007, 11:57:10 AM1/12/07
to gx...@gxtech.com.uy
Victor:
Te diría que, al parecer podría ser un problema del generador. Pasalo directamente a soporte, ya que si es un problema del generador, se podría arreglar.
 

A/S Sergio A. Guichón
sgui...@montevideo.com.uy
Tel: 203.68.79
Ancel: 099 18.40.45

 

De: Victor Favazza [mailto:tor...@yahoo.com.ar]
Enviado el: Viernes, 12 de Enero de 2007 10:39
Reply all
Reply to author
Forward
0 new messages