In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Me Saca de la Aplicaci
Me Saca de la Aplicaci
Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que sea
el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar ningún
mensaje!!!
Antes que nada decir que compilado con la PR6b funciona perfectamente.
Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Por lo que he podido averiguar, este proceso si se hace hasta 2342 registros
+ o - funciona correctamente...
Cuando és la consulta por más registros, se bloquea el Form, no refresca los
objetos que hay en su interior y ademas, si cierro la ventana me lanza GPF
code = c0000005
Acces violation
RUNFORM(0)
TAPPLICATION:RUN(189)
MAIN(28)
....
While FITXADOR->( !Eof() )
::oProgressBar1:nValue := nI++
ProcessMessages()
Aadd( aItems, { FITXADOR->CODI,;
FITXADOR->NUMERO,;
DtoC( FITXADOR->DIAINICI ) + " "+
FITXADOR->HORAINICI,;
FITXADOR->HORAFINAL,;
FITXADOR->HORES,;
FITXADOR->TRE,;
FITXADOR->LINIA,;
If( FITXADOR->S, "S", "N" ),;
FITXADOR->NOTES,;
FITXADOR->( Recno() ),;
FITXADOR->DIA } )
nHores += FITXADOR->TRE
nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
FITXADOR->HORES ) - 1 ) )
nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
If n == 0
Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
Else
::aItemsCodi[ n, 2 ] += FITXADOR->TRE
Endif
*A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
If n == 0
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
Else
::aItemsOR[ n, 2 ] += FITXADOR->TRE
Endif
n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
If n == 0
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
Else
::aItemsData[ n, 2 ] += FITXADOR->TRE
Endif
***
FITXADOR->( DbSkip() )
EndDo
FITXADOR->( DbCloseArea() )
....
He puesto este mismo Form en un nuevo proyecto y me funciona correctamente.
¿Sera por el tamaño del ejecutable???
¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
los 2,58Mb que tengo en mi aplicación????
No se que hacer...
Lo que falla es Ascan()
Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
al Array, FUNCIONA correctamente.
El Ascan() se me come los recursos!!!
Gracias.
Un Saludo,
Xevi.
el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar ningún
mensaje!!!
Antes que nada decir que compilado con la PR6b funciona perfectamente.
Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Por lo que he podido averiguar, este proceso si se hace hasta 2342 registros
+ o - funciona correctamente...
Cuando és la consulta por más registros, se bloquea el Form, no refresca los
objetos que hay en su interior y ademas, si cierro la ventana me lanza GPF
code = c0000005
Acces violation
RUNFORM(0)
TAPPLICATION:RUN(189)
MAIN(28)
....
While FITXADOR->( !Eof() )
::oProgressBar1:nValue := nI++
ProcessMessages()
Aadd( aItems, { FITXADOR->CODI,;
FITXADOR->NUMERO,;
DtoC( FITXADOR->DIAINICI ) + " "+
FITXADOR->HORAINICI,;
FITXADOR->HORAFINAL,;
FITXADOR->HORES,;
FITXADOR->TRE,;
FITXADOR->LINIA,;
If( FITXADOR->S, "S", "N" ),;
FITXADOR->NOTES,;
FITXADOR->( Recno() ),;
FITXADOR->DIA } )
nHores += FITXADOR->TRE
nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
FITXADOR->HORES ) - 1 ) )
nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
If n == 0
Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
Else
::aItemsCodi[ n, 2 ] += FITXADOR->TRE
Endif
*A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
If n == 0
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
Else
::aItemsOR[ n, 2 ] += FITXADOR->TRE
Endif
n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
If n == 0
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
Else
::aItemsData[ n, 2 ] += FITXADOR->TRE
Endif
***
FITXADOR->( DbSkip() )
EndDo
FITXADOR->( DbCloseArea() )
....
He puesto este mismo Form en un nuevo proyecto y me funciona correctamente.
¿Sera por el tamaño del ejecutable???
¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
los 2,58Mb que tengo en mi aplicación????
No se que hacer...
Lo que falla es Ascan()
Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
al Array, FUNCIONA correctamente.
El Ascan() se me come los recursos!!!
Gracias.
Un Saludo,
Xevi.
Me Saca de la Aplicaci
Confirmo que se debe a Ascan()
¿Será la optimización de código que hicieron en xHarbour???
¿Porqué digo que confirmo que es culpa de Ascan???
Pues mirad... he cambiado el código de los Ascans 2 y 3 por For...Next
For n:=1 to Len(::aItemsOR)
If ::aItemsOR[n,1] = FITXADOR->NUMERO
::aItemsOR[ n, 2 ] += FITXADOR->TRE
n := -1
Exit
EndIf
Next
If n # -1
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
EndIf
For n:=1 to Len(::aItemsData)
If ::aItemsData[n,1] = FITXADOR->DIAINICI
::aItemsData[ n, 2 ] += FITXADOR->TRE
n := -1
Exit
EndIf
Next
If n # -1
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
EndIf
Y FUNCIONA PERFECTAMENTE !!!
¿cómo podría optimizar esto y utilizar FOR EACH... Next, que según creo es
más rápido ???
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
442beb54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que
> sea el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar
> ningún mensaje!!!
>
> Antes que nada decir que compilado con la PR6b funciona perfectamente.
>
> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
> Por lo que he podido averiguar, este proceso si se hace hasta 2342
> registros + o - funciona correctamente...
> Cuando és la consulta por más registros, se bloquea el Form, no refresca
> los objetos que hay en su interior y ademas, si cierro la ventana me lanza
> GPF
> code = c0000005
> Acces violation
> RUNFORM(0)
> TAPPLICATION:RUN(189)
> MAIN(28)
>
>
>
> ...
> While FITXADOR->( !Eof() )
> ::oProgressBar1:nValue := nI++
> ProcessMessages()
>
> Aadd( aItems, { FITXADOR->CODI,;
> FITXADOR->NUMERO,;
> DtoC( FITXADOR->DIAINICI ) + " "+
> FITXADOR->HORAINICI,;
> FITXADOR->HORAFINAL,;
> FITXADOR->HORES,;
> FITXADOR->TRE,;
> FITXADOR->LINIA,;
> If( FITXADOR->S, "S", "N" ),;
> FITXADOR->NOTES,;
> FITXADOR->( Recno() ),;
> FITXADOR->DIA } )
>
> nHores += FITXADOR->TRE
> nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
> FITXADOR->HORES ) - 1 ) )
> nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
>
> n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
> If n == 0
> Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
> Else
> ::aItemsCodi[ n, 2 ] += FITXADOR->TRE
> Endif
>
> *A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
> n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
> If n == 0
> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
> Else
> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
> Endif
>
> n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
> If n == 0
> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
> Else
> ::aItemsData[ n, 2 ] += FITXADOR->TRE
> Endif
> ***
> FITXADOR->( DbSkip() )
> EndDo
>
> FITXADOR->( DbCloseArea() )
> ...
>
> He puesto este mismo Form en un nuevo proyecto y me funciona
> correctamente.
> ¿Sera por el tamaño del ejecutable???
> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
> los 2,58Mb que tengo en mi aplicación????
>
> No se que hacer...
>
> Lo que falla es Ascan()
> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
> al Array, FUNCIONA correctamente.
>
> El Ascan() se me come los recursos!!!
>
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
¿Será la optimización de código que hicieron en xHarbour???
¿Porqué digo que confirmo que es culpa de Ascan???
Pues mirad... he cambiado el código de los Ascans 2 y 3 por For...Next
For n:=1 to Len(::aItemsOR)
If ::aItemsOR[n,1] = FITXADOR->NUMERO
::aItemsOR[ n, 2 ] += FITXADOR->TRE
n := -1
Exit
EndIf
Next
If n # -1
Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
EndIf
For n:=1 to Len(::aItemsData)
If ::aItemsData[n,1] = FITXADOR->DIAINICI
::aItemsData[ n, 2 ] += FITXADOR->TRE
n := -1
Exit
EndIf
Next
If n # -1
Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
EndIf
Y FUNCIONA PERFECTAMENTE !!!
¿cómo podría optimizar esto y utilizar FOR EACH... Next, que según creo es
más rápido ???
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
442beb54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que
> sea el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar
> ningún mensaje!!!
>
> Antes que nada decir que compilado con la PR6b funciona perfectamente.
>
> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
> Por lo que he podido averiguar, este proceso si se hace hasta 2342
> registros + o - funciona correctamente...
> Cuando és la consulta por más registros, se bloquea el Form, no refresca
> los objetos que hay en su interior y ademas, si cierro la ventana me lanza
> GPF
> code = c0000005
> Acces violation
> RUNFORM(0)
> TAPPLICATION:RUN(189)
> MAIN(28)
>
>
>
> ...
> While FITXADOR->( !Eof() )
> ::oProgressBar1:nValue := nI++
> ProcessMessages()
>
> Aadd( aItems, { FITXADOR->CODI,;
> FITXADOR->NUMERO,;
> DtoC( FITXADOR->DIAINICI ) + " "+
> FITXADOR->HORAINICI,;
> FITXADOR->HORAFINAL,;
> FITXADOR->HORES,;
> FITXADOR->TRE,;
> FITXADOR->LINIA,;
> If( FITXADOR->S, "S", "N" ),;
> FITXADOR->NOTES,;
> FITXADOR->( Recno() ),;
> FITXADOR->DIA } )
>
> nHores += FITXADOR->TRE
> nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
> FITXADOR->HORES ) - 1 ) )
> nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
>
> n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
> If n == 0
> Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
> Else
> ::aItemsCodi[ n, 2 ] += FITXADOR->TRE
> Endif
>
> *A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
> n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
> If n == 0
> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
> Else
> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
> Endif
>
> n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
> If n == 0
> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
> Else
> ::aItemsData[ n, 2 ] += FITXADOR->TRE
> Endif
> ***
> FITXADOR->( DbSkip() )
> EndDo
>
> FITXADOR->( DbCloseArea() )
> ...
>
> He puesto este mismo Form en un nuevo proyecto y me funciona
> correctamente.
> ¿Sera por el tamaño del ejecutable???
> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
> los 2,58Mb que tengo en mi aplicación????
>
> No se que hacer...
>
> Lo que falla es Ascan()
> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
> al Array, FUNCIONA correctamente.
>
> El Ascan() se me come los recursos!!!
>
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
>
Me Saca de la Aplicaci
Xevi,
> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Estoy al 99,99% seguro de que no es eso
Quizás se esté quedando sin memoria, pero no lo creo.
> He puesto este mismo Form en un nuevo proyecto y me funciona
> correctamente.
> ¿Sera por el tamaño del ejecutable???
Estoy al 100% seguro de que tampoco es esto
> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
> los 2,58Mb que tengo en mi aplicación????
Añadiendo código, aunque no haga nada. Pero no creo que vayan por ahí los
tiros.
> Lo que falla es Ascan()
> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
> al Array, FUNCIONA correctamente.
>
> El Ascan() se me come los recursos!!!
Si te funciona con la PR6 entonces es posible que el problema sea de
xHarbour, que también lo hemos actualizado para la PR7.
Por favor, intenta reducir el problema en un ejemplo pequeño para
asegurarnos. Si no puedes, envíame el proyecto completo y las tablas que
estás usando. Comprende que para solucionar el problema necesitamos
reproducirlo, tanto si el origen del mismo está en Xailer como en xHarbour.
--
Un saludo,
José F. Giménez
> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
Estoy al 99,99% seguro de que no es eso

Quizás se esté quedando sin memoria, pero no lo creo.
> He puesto este mismo Form en un nuevo proyecto y me funciona
> correctamente.
> ¿Sera por el tamaño del ejecutable???
Estoy al 100% seguro de que tampoco es esto

> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
> los 2,58Mb que tengo en mi aplicación????
Añadiendo código, aunque no haga nada. Pero no creo que vayan por ahí los
tiros.
> Lo que falla es Ascan()
> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE añada
> al Array, FUNCIONA correctamente.
>
> El Ascan() se me come los recursos!!!
Si te funciona con la PR6 entonces es posible que el problema sea de
xHarbour, que también lo hemos actualizado para la PR7.
Por favor, intenta reducir el problema en un ejemplo pequeño para
asegurarnos. Si no puedes, envíame el proyecto completo y las tablas que
estás usando. Comprende que para solucionar el problema necesitamos
reproducirlo, tanto si el origen del mismo está en Xailer como en xHarbour.
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
Hecho con FOR EACH... y os aseguro que es IM PRESIONANTE !!!
Se me ha reducido la velocidad en un 30 o 40%... en el proceso más largo!!!
Són unos 7000 registros, por lo que no se, pero en procesos mucho mas
largos... hay que hechar mano de FOR EACH...NEXT
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
442bf154$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Confirmo que se debe a Ascan()
> ¿Será la optimización de código que hicieron en xHarbour???
>
> ¿Porqué digo que confirmo que es culpa de Ascan???
> Pues mirad... he cambiado el código de los Ascans 2 y 3 por For...Next
>
> For n:=1 to Len(::aItemsOR)
> If ::aItemsOR[n,1] = FITXADOR->NUMERO
> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
> n := -1
> Exit
> EndIf
> Next
> If n # -1
> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
> EndIf
> For n:=1 to Len(::aItemsData)
> If ::aItemsData[n,1] = FITXADOR->DIAINICI
> ::aItemsData[ n, 2 ] += FITXADOR->TRE
> n := -1
> Exit
> EndIf
> Next
> If n # -1
> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
> EndIf
>
>
> Y FUNCIONA PERFECTAMENTE !!!
>
>
> ¿cómo podría optimizar esto y utilizar FOR EACH... Next, que según creo es
> más rápido ???
>
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
> 442beb54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que
>> sea el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar
>> ningún mensaje!!!
>>
>> Antes que nada decir que compilado con la PR6b funciona perfectamente.
>>
>> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
>> Por lo que he podido averiguar, este proceso si se hace hasta 2342
>> registros + o - funciona correctamente...
>> Cuando és la consulta por más registros, se bloquea el Form, no refresca
>> los objetos que hay en su interior y ademas, si cierro la ventana me
>> lanza GPF
>> code = c0000005
>> Acces violation
>> RUNFORM(0)
>> TAPPLICATION:RUN(189)
>> MAIN(28)
>>
>>
>>
>> ...
>> While FITXADOR->( !Eof() )
>> ::oProgressBar1:nValue := nI++
>> ProcessMessages()
>>
>> Aadd( aItems, { FITXADOR->CODI,;
>> FITXADOR->NUMERO,;
>> DtoC( FITXADOR->DIAINICI ) + " "+
>> FITXADOR->HORAINICI,;
>> FITXADOR->HORAFINAL,;
>> FITXADOR->HORES,;
>> FITXADOR->TRE,;
>> FITXADOR->LINIA,;
>> If( FITXADOR->S, "S", "N" ),;
>> FITXADOR->NOTES,;
>> FITXADOR->( Recno() ),;
>> FITXADOR->DIA } )
>>
>> nHores += FITXADOR->TRE
>> nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
>> FITXADOR->HORES ) - 1 ) )
>> nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
>>
>> n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
>> If n == 0
>> Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
>> Else
>> ::aItemsCodi[ n, 2 ] += FITXADOR->TRE
>> Endif
>>
>> *A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
>> n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
>> If n == 0
>> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
>> Else
>> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
>> Endif
>>
>> n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
>> If n == 0
>> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
>> Else
>> ::aItemsData[ n, 2 ] += FITXADOR->TRE
>> Endif
>> ***
>> FITXADOR->( DbSkip() )
>> EndDo
>>
>> FITXADOR->( DbCloseArea() )
>> ...
>>
>> He puesto este mismo Form en un nuevo proyecto y me funciona
>> correctamente.
>> ¿Sera por el tamaño del ejecutable???
>> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
>> los 2,58Mb que tengo en mi aplicación????
>>
>> No se que hacer...
>>
>> Lo que falla es Ascan()
>> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE
>> añada al Array, FUNCIONA correctamente.
>>
>> El Ascan() se me come los recursos!!!
>>
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
Se me ha reducido la velocidad en un 30 o 40%... en el proceso más largo!!!
Són unos 7000 registros, por lo que no se, pero en procesos mucho mas
largos... hay que hechar mano de FOR EACH...NEXT
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
442bf154$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Confirmo que se debe a Ascan()
> ¿Será la optimización de código que hicieron en xHarbour???
>
> ¿Porqué digo que confirmo que es culpa de Ascan???
> Pues mirad... he cambiado el código de los Ascans 2 y 3 por For...Next
>
> For n:=1 to Len(::aItemsOR)
> If ::aItemsOR[n,1] = FITXADOR->NUMERO
> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
> n := -1
> Exit
> EndIf
> Next
> If n # -1
> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
> EndIf
> For n:=1 to Len(::aItemsData)
> If ::aItemsData[n,1] = FITXADOR->DIAINICI
> ::aItemsData[ n, 2 ] += FITXADOR->TRE
> n := -1
> Exit
> EndIf
> Next
> If n # -1
> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
> EndIf
>
>
> Y FUNCIONA PERFECTAMENTE !!!
>
>
> ¿cómo podría optimizar esto y utilizar FOR EACH... Next, que según creo es
> más rápido ???
>
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
> 442beb54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Tengo un Form que al ejecutar una consulta, dependiendo de el tamaño que
>> sea el período que consulte, ME LANZA FUERA DE LA APLICACIÓN sin lanzar
>> ningún mensaje!!!
>>
>> Antes que nada decir que compilado con la PR6b funciona perfectamente.
>>
>> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
>> Por lo que he podido averiguar, este proceso si se hace hasta 2342
>> registros + o - funciona correctamente...
>> Cuando és la consulta por más registros, se bloquea el Form, no refresca
>> los objetos que hay en su interior y ademas, si cierro la ventana me
>> lanza GPF
>> code = c0000005
>> Acces violation
>> RUNFORM(0)
>> TAPPLICATION:RUN(189)
>> MAIN(28)
>>
>>
>>
>> ...
>> While FITXADOR->( !Eof() )
>> ::oProgressBar1:nValue := nI++
>> ProcessMessages()
>>
>> Aadd( aItems, { FITXADOR->CODI,;
>> FITXADOR->NUMERO,;
>> DtoC( FITXADOR->DIAINICI ) + " "+
>> FITXADOR->HORAINICI,;
>> FITXADOR->HORAFINAL,;
>> FITXADOR->HORES,;
>> FITXADOR->TRE,;
>> FITXADOR->LINIA,;
>> If( FITXADOR->S, "S", "N" ),;
>> FITXADOR->NOTES,;
>> FITXADOR->( Recno() ),;
>> FITXADOR->DIA } )
>>
>> nHores += FITXADOR->TRE
>> nH += Val( Left( AllTrim( FITXADOR->HORES ), At( "H",
>> FITXADOR->HORES ) - 1 ) )
>> nM += Val( Right( AllTrim( FITXADOR->HORES ), 3 ) )
>>
>> n := Ascan( ::aItemsCodi, {|x| x[ 1 ] == FITXADOR->CODI } )
>> If n == 0
>> Aadd( ::aItemsCodi, { FITXADOR->CODI, FITXADOR->TRE } )
>> Else
>> ::aItemsCodi[ n, 2 ] += FITXADOR->TRE
>> Endif
>>
>> *A partir de este código es cuando si lo incluyo ME LANZA FUERA !!!
>> n := Ascan( ::aItemsOR, {|x| x[ 1 ] == FITXADOR->NUMERO } )
>> If n == 0
>> Aadd( ::aItemsOR, { FITXADOR->NUMERO, FITXADOR->TRE } )
>> Else
>> ::aItemsOR[ n, 2 ] += FITXADOR->TRE
>> Endif
>>
>> n := Ascan( ::aItemsData, {|x| x[ 1 ] == FITXADOR->DIAINICI } )
>> If n == 0
>> Aadd( ::aItemsData, { FITXADOR->DIAINICI, FITXADOR->TRE } )
>> Else
>> ::aItemsData[ n, 2 ] += FITXADOR->TRE
>> Endif
>> ***
>> FITXADOR->( DbSkip() )
>> EndDo
>>
>> FITXADOR->( DbCloseArea() )
>> ...
>>
>> He puesto este mismo Form en un nuevo proyecto y me funciona
>> correctamente.
>> ¿Sera por el tamaño del ejecutable???
>> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
>> los 2,58Mb que tengo en mi aplicación????
>>
>> No se que hacer...
>>
>> Lo que falla es Ascan()
>> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE
>> añada al Array, FUNCIONA correctamente.
>>
>> El Ascan() se me come los recursos!!!
>>
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>>
>
>
Me Saca de la Aplicaci
Jose,
De momento me funciona bárbaro con FOR EACH.
Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera de
la aplicación...
Personalmente, como no toco nada de código, estoy seguro que se trata de la
función Ascan()
Me encantaría poder hacer un ejemplo que se produjera esta situación...
Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
nuevo, y funciona correctamente...
Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que ese
sample reprodujera el error.
Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
cada interacción del bucle, pues estaría bien de poder saber si es eso.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442bf1cf$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
>
> Estoy al 99,99% seguro de que no es eso
> Quizás se esté quedando sin memoria, pero no lo creo.
>
>
>> He puesto este mismo Form en un nuevo proyecto y me funciona
>> correctamente.
>> ¿Sera por el tamaño del ejecutable???
>
> Estoy al 100% seguro de que tampoco es esto
>
>
>> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
>> los 2,58Mb que tengo en mi aplicación????
>
> Añadiendo código, aunque no haga nada. Pero no creo que vayan por ahí los
> tiros.
>
>
>> Lo que falla es Ascan()
>> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE
>> añada al Array, FUNCIONA correctamente.
>>
>> El Ascan() se me come los recursos!!!
>
> Si te funciona con la PR6 entonces es posible que el problema sea de
> xHarbour, que también lo hemos actualizado para la PR7.
>
> Por favor, intenta reducir el problema en un ejemplo pequeño para
> asegurarnos. Si no puedes, envíame el proyecto completo y las tablas que
> estás usando. Comprende que para solucionar el problema necesitamos
> reproducirlo, tanto si el origen del mismo está en Xailer como en
> xHarbour.
>
> --
> Un saludo,
>
> José F. Giménez
>
De momento me funciona bárbaro con FOR EACH.
Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera de
la aplicación...
Personalmente, como no toco nada de código, estoy seguro que se trata de la
función Ascan()
Me encantaría poder hacer un ejemplo que se produjera esta situación...
Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
nuevo, y funciona correctamente...
Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que ese
sample reprodujera el error.
Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
cada interacción del bucle, pues estaría bien de poder saber si es eso.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442bf1cf$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Por lo que deduzco es que SE QUEDA SIN RECURSOS!!!
>
> Estoy al 99,99% seguro de que no es eso

> Quizás se esté quedando sin memoria, pero no lo creo.
>
>
>> He puesto este mismo Form en un nuevo proyecto y me funciona
>> correctamente.
>> ¿Sera por el tamaño del ejecutable???
>
> Estoy al 100% seguro de que tampoco es esto

>
>
>> ¿Cómo puedo incrementar el tamaño de un proyecto nuevo, para que me ocupe
>> los 2,58Mb que tengo en mi aplicación????
>
> Añadiendo código, aunque no haga nada. Pero no creo que vayan por ahí los
> tiros.
>
>
>> Lo que falla es Ascan()
>> Si comento los dos últimos Ascan() y le pongo que n:=0 y así SIEMPRE
>> añada al Array, FUNCIONA correctamente.
>>
>> El Ascan() se me come los recursos!!!
>
> Si te funciona con la PR6 entonces es posible que el problema sea de
> xHarbour, que también lo hemos actualizado para la PR7.
>
> Por favor, intenta reducir el problema en un ejemplo pequeño para
> asegurarnos. Si no puedes, envíame el proyecto completo y las tablas que
> estás usando. Comprende que para solucionar el problema necesitamos
> reproducirlo, tanto si el origen del mismo está en Xailer como en
> xHarbour.
>
> --
> Un saludo,
>
> José F. Giménez
>
Me Saca de la Aplicaci
Xevi,
> De momento me funciona bárbaro con FOR EACH.
> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
> de la aplicación...
>
> Personalmente, como no toco nada de código, estoy seguro que se trata de
> la función Ascan()
Yo no estaría tan seguro. El problema podría venir de otro lado y fallar en
AScan() simplemente porque esa función haga algo concreto que explote el
error previo. Pero no tiene porqué ser AScan() la culpable.
> Me encantaría poder hacer un ejemplo que se produjera esta situación...
> Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
> nuevo, y funciona correctamente...
> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
> ese sample reprodujera el error.
Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
importa que me envies el proyecto completo para revisarlo. Si hay algún
problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
> Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
> cada interacción del bucle, pues estaría bien de poder saber si es eso.
En cada iteración no, pero puedes ir viendo en el administrador de tareas
cómo evoluciona el consumo de memoria.
Por otro lado... me gustaría que probaras un par de cosas, primero por
separado y después las dos al mismo tiempo:
1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
variables locales y asignalas a las DATAs al final del bucle. Es decir, en
vez de usar AScan( ::aItemsCodi, ... ), create una variable local aItemsCodi
y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle puedes poner
::aItemsCodi := aItemsCodi
2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
elemento, así:
aSizeAlloc( aItems, 64 )
--
Un saludo,
José F. Giménez
> De momento me funciona bárbaro con FOR EACH.
> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
> de la aplicación...
>
> Personalmente, como no toco nada de código, estoy seguro que se trata de
> la función Ascan()
Yo no estaría tan seguro. El problema podría venir de otro lado y fallar en
AScan() simplemente porque esa función haga algo concreto que explote el
error previo. Pero no tiene porqué ser AScan() la culpable.
> Me encantaría poder hacer un ejemplo que se produjera esta situación...
> Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
> nuevo, y funciona correctamente...
> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
> ese sample reprodujera el error.
Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
importa que me envies el proyecto completo para revisarlo. Si hay algún
problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
> Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
> cada interacción del bucle, pues estaría bien de poder saber si es eso.
En cada iteración no, pero puedes ir viendo en el administrador de tareas
cómo evoluciona el consumo de memoria.
Por otro lado... me gustaría que probaras un par de cosas, primero por
separado y después las dos al mismo tiempo:
1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
variables locales y asignalas a las DATAs al final del bucle. Es decir, en
vez de usar AScan( ::aItemsCodi, ... ), create una variable local aItemsCodi
y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle puedes poner
::aItemsCodi := aItemsCodi
2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
elemento, así:
aSizeAlloc( aItems, 64 )
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
José,
> aSizeAlloc( aItems, 64 )
>
>
¿aSizeAlloc?
Saludos,
José Luis Capel
> aSizeAlloc( aItems, 64 )
>
>
¿aSizeAlloc?
Saludos,
José Luis Capel
Me Saca de la Aplicaci
José Luis,
>> aSizeAlloc( aItems, 64 )
>>
>>
>
>
> ¿aSizeAlloc?
;-)))
¿Te acuerdas de la optimización que hizo Walter Negro en el aumento del
tamaño de los arrays? Pues al final se ha quedado en esto. No me terminó de
gustar esta solución, pero mejor eso que nada.
--
Un saludo,
José F. Giménez
>> aSizeAlloc( aItems, 64 )
>>
>>
>
>
> ¿aSizeAlloc?
;-)))
¿Te acuerdas de la optimización que hizo Walter Negro en el aumento del
tamaño de los arrays? Pues al final se ha quedado en esto. No me terminó de
gustar esta solución, pero mejor eso que nada.
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
He probado las dos opciones que me has indicado, pero me sigue tirando fuera
de la aplicación.
Intentaré prepararte TODA la aplicación en OBJs y el PRG que produce el
error...
Si se trata de un error de xHarbour habrá que depurarlo, no se puede dejar
así.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: [email=442bfc00@ozsrvnegro.ozlan.local...]442bfc00@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> De momento me funciona bárbaro con FOR EACH.
>> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
>> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
>> de la aplicación...
>>
>> Personalmente, como no toco nada de código, estoy seguro que se trata de
>> la función Ascan()
>
> Yo no estaría tan seguro. El problema podría venir de otro lado y fallar
> en AScan() simplemente porque esa función haga algo concreto que explote
> el error previo. Pero no tiene porqué ser AScan() la culpable.
>
>
>> Me encantaría poder hacer un ejemplo que se produjera esta situación...
>> Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
>> nuevo, y funciona correctamente...
>> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
>> ese sample reprodujera el error.
>
> Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
> importa que me envies el proyecto completo para revisarlo. Si hay algún
> problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
>
>
>> Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
>> cada interacción del bucle, pues estaría bien de poder saber si es eso.
>
> En cada iteración no, pero puedes ir viendo en el administrador de tareas
> cómo evoluciona el consumo de memoria.
>
> Por otro lado... me gustaría que probaras un par de cosas, primero por
> separado y después las dos al mismo tiempo:
>
> 1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
> variables locales y asignalas a las DATAs al final del bucle. Es decir, en
> vez de usar AScan( ::aItemsCodi, ... ), create una variable local
> aItemsCodi y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle
> puedes poner ::aItemsCodi := aItemsCodi
>
> 2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
> elemento, así:
>
> aSizeAlloc( aItems, 64 )
>
>
> --
> Un saludo,
>
> José F. Giménez
>
de la aplicación.
Intentaré prepararte TODA la aplicación en OBJs y el PRG que produce el
error...
Si se trata de un error de xHarbour habrá que depurarlo, no se puede dejar
así.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: [email=442bfc00@ozsrvnegro.ozlan.local...]442bfc00@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> De momento me funciona bárbaro con FOR EACH.
>> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
>> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
>> de la aplicación...
>>
>> Personalmente, como no toco nada de código, estoy seguro que se trata de
>> la función Ascan()
>
> Yo no estaría tan seguro. El problema podría venir de otro lado y fallar
> en AScan() simplemente porque esa función haga algo concreto que explote
> el error previo. Pero no tiene porqué ser AScan() la culpable.
>
>
>> Me encantaría poder hacer un ejemplo que se produjera esta situación...
>> Pero es complicado, como te he dicho el mismo Prg lo tengo en un proyecto
>> nuevo, y funciona correctamente...
>> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
>> ese sample reprodujera el error.
>
> Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
> importa que me envies el proyecto completo para revisarlo. Si hay algún
> problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
>
>
>> Si hay alguna forma de que pueda "medir" los recursos que tengo libres en
>> cada interacción del bucle, pues estaría bien de poder saber si es eso.
>
> En cada iteración no, pero puedes ir viendo en el administrador de tareas
> cómo evoluciona el consumo de memoria.
>
> Por otro lado... me gustaría que probaras un par de cosas, primero por
> separado y después las dos al mismo tiempo:
>
> 1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
> variables locales y asignalas a las DATAs al final del bucle. Es decir, en
> vez de usar AScan( ::aItemsCodi, ... ), create una variable local
> aItemsCodi y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle
> puedes poner ::aItemsCodi := aItemsCodi
>
> 2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
> elemento, así:
>
> aSizeAlloc( aItems, 64 )
>
>
> --
> Un saludo,
>
> José F. Giménez
>
Me Saca de la Aplicaci
Algo mas he conseguido...
Con tus dos opciones que me has indicado, lanza el error que adjunto con la
imagen
He preparado el Sample que te envio por Mail para investigar...
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
[email=442c47cd@ozsrvnegro.ozlan.local...]442c47cd@ozsrvnegro.ozlan.local...[/email]
> He probado las dos opciones que me has indicado, pero me sigue tirando
> fuera
> de la aplicación.
>
> Intentaré prepararte TODA la aplicación en OBJs y el PRG que produce el
> error...
>
> Si se trata de un error de xHarbour habrá que depurarlo, no se puede dejar
> así.
>
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
> del grup de discussió: [email=442bfc00@ozsrvnegro.ozlan.local...]442bfc00@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> De momento me funciona bárbaro con FOR EACH.
>>> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
>>> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
>>> de la aplicación...
>>>
>>> Personalmente, como no toco nada de código, estoy seguro que se trata de
>>> la función Ascan()
>>
>> Yo no estaría tan seguro. El problema podría venir de otro lado y fallar
>> en AScan() simplemente porque esa función haga algo concreto que explote
>> el error previo. Pero no tiene porqué ser AScan() la culpable.
>>
>>
>>> Me encantaría poder hacer un ejemplo que se produjera esta situación...
>>> Pero es complicado, como te he dicho el mismo Prg lo tengo en un
>>> proyecto
>>> nuevo, y funciona correctamente...
>>> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
>>> ese sample reprodujera el error.
>>
>> Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
>> importa que me envies el proyecto completo para revisarlo. Si hay algún
>> problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
>>
>>
>>> Si hay alguna forma de que pueda "medir" los recursos que tengo libres
>>> en
>>> cada interacción del bucle, pues estaría bien de poder saber si es eso.
>>
>> En cada iteración no, pero puedes ir viendo en el administrador de tareas
>> cómo evoluciona el consumo de memoria.
>>
>> Por otro lado... me gustaría que probaras un par de cosas, primero por
>> separado y después las dos al mismo tiempo:
>>
>> 1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
>> variables locales y asignalas a las DATAs al final del bucle. Es decir,
>> en
>> vez de usar AScan( ::aItemsCodi, ... ), create una variable local
>> aItemsCodi y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle
>> puedes poner ::aItemsCodi := aItemsCodi
>>
>> 2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
>> elemento, así:
>>
>> aSizeAlloc( aItems, 64 )
>>
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
Attached files
Con tus dos opciones que me has indicado, lanza el error que adjunto con la
imagen
He preparado el Sample que te envio por Mail para investigar...
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> ha escrit al missatge del grup de discussió:
[email=442c47cd@ozsrvnegro.ozlan.local...]442c47cd@ozsrvnegro.ozlan.local...[/email]
> He probado las dos opciones que me has indicado, pero me sigue tirando
> fuera
> de la aplicación.
>
> Intentaré prepararte TODA la aplicación en OBJs y el PRG que produce el
> error...
>
> Si se trata de un error de xHarbour habrá que depurarlo, no se puede dejar
> así.
>
>
> Un Saludo,
> Xevi.
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
> del grup de discussió: [email=442bfc00@ozsrvnegro.ozlan.local...]442bfc00@ozsrvnegro.ozlan.local...[/email]
>> Xevi,
>>
>>> De momento me funciona bárbaro con FOR EACH.
>>> Tengo comentado el código donde evaluo con Ascan... y sólo de pasar a
>>> comentar el código FOR EACH... NEXT y utilizar el Ascan() me lanza fuera
>>> de la aplicación...
>>>
>>> Personalmente, como no toco nada de código, estoy seguro que se trata de
>>> la función Ascan()
>>
>> Yo no estaría tan seguro. El problema podría venir de otro lado y fallar
>> en AScan() simplemente porque esa función haga algo concreto que explote
>> el error previo. Pero no tiene porqué ser AScan() la culpable.
>>
>>
>>> Me encantaría poder hacer un ejemplo que se produjera esta situación...
>>> Pero es complicado, como te he dicho el mismo Prg lo tengo en un
>>> proyecto
>>> nuevo, y funciona correctamente...
>>> Si quieres te lo puedo enviar, pero como bien dices, lo bueno sería que
>>> ese sample reprodujera el error.
>>
>> Sí, desde luego. Pero incluso si no consigues reducir el problema, no me
>> importa que me envies el proyecto completo para revisarlo. Si hay algún
>> problema oculto en xHarbour me interesa mucho descubrirlo y solucionarlo.
>>
>>
>>> Si hay alguna forma de que pueda "medir" los recursos que tengo libres
>>> en
>>> cada interacción del bucle, pues estaría bien de poder saber si es eso.
>>
>> En cada iteración no, pero puedes ir viendo en el administrador de tareas
>> cómo evoluciona el consumo de memoria.
>>
>> Por otro lado... me gustaría que probaras un par de cosas, primero por
>> separado y después las dos al mismo tiempo:
>>
>> 1) En vez de usar directamente arrays que son DATAs de la clase, utiliza
>> variables locales y asignalas a las DATAs al final del bucle. Es decir,
>> en
>> vez de usar AScan( ::aItemsCodi, ... ), create una variable local
>> aItemsCodi y usa AScan( aItemsCodi, ... ). Una vez que termine el bucle
>> puedes poner ::aItemsCodi := aItemsCodi
>>
>> 2) Cambia el tamaño de bloque del array principal, antes de añadir ningún
>> elemento, así:
>>
>> aSizeAlloc( aItems, 64 )
>>
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
Attached files
Me Saca de la Aplicaci
Xevi,
buenas noticias! Ya está solucionado!
Me ha costado casi toda la mañana, pero por fin lo he encontrado. Es un bug
nuestro, del módulo del debugger (tu proyecto está compilado con información
de debugger). Como ya te dije, no siempre es lo que parece, y en este caso
la función AScan() no tenía ninguna culpa
Por favor, añade este .obj a tu proyecto y pruebalo.
--
Un saludo,
José F. Giménez
Attached files Debugger.zip (6.5 KB)Â
buenas noticias! Ya está solucionado!
Me ha costado casi toda la mañana, pero por fin lo he encontrado. Es un bug
nuestro, del módulo del debugger (tu proyecto está compilado con información
de debugger). Como ya te dije, no siempre es lo que parece, y en este caso
la función AScan() no tenía ninguna culpa

Por favor, añade este .obj a tu proyecto y pruebalo.
--
Un saludo,
José F. Giménez
Attached files Debugger.zip (6.5 KB)Â
Me Saca de la Aplicaci
Jose,
Si añado este obj...
GPF (Code = c0000005):
Access violation
MAIN(0)
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: [email=442d2967@ozsrvnegro.ozlan.local...]442d2967@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> buenas noticias! Ya está solucionado!
>
> Me ha costado casi toda la mañana, pero por fin lo he encontrado. Es un
> bug
> nuestro, del módulo del debugger (tu proyecto está compilado con
> información
> de debugger). Como ya te dije, no siempre es lo que parece, y en este caso
> la función AScan() no tenía ninguna culpa
>
> Por favor, añade este .obj a tu proyecto y pruebalo.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
Attached files
Si añado este obj...
GPF (Code = c0000005):
Access violation
MAIN(0)
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: [email=442d2967@ozsrvnegro.ozlan.local...]442d2967@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> buenas noticias! Ya está solucionado!
>
> Me ha costado casi toda la mañana, pero por fin lo he encontrado. Es un
> bug
> nuestro, del módulo del debugger (tu proyecto está compilado con
> información
> de debugger). Como ya te dije, no siempre es lo que parece, y en este caso
> la función AScan() no tenía ninguna culpa

>
> Por favor, añade este .obj a tu proyecto y pruebalo.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
Attached files
Me Saca de la Aplicaci
Xevi,
> Si añado este obj...
>
> GPF (Code = c0000005):
> Access violation
>
> MAIN(0)
Por favor, asegúrate de que estás añadiendolo correctamente y de que no
estás usando ningún otro .obj antiguo de Xailer. Por otro lado, prueba
también a recompilar *completamente* el proyecto sin información de
debugger, con y sin este .obj
--
Un saludo,
José F. Giménez
> Si añado este obj...
>
> GPF (Code = c0000005):
> Access violation
>
> MAIN(0)
Por favor, asegúrate de que estás añadiendolo correctamente y de que no
estás usando ningún otro .obj antiguo de Xailer. Por otro lado, prueba
también a recompilar *completamente* el proyecto sin información de
debugger, con y sin este .obj
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
Jose,
Tenía incluido el obj Printer.obj
Le he dejado SOLO el Debugger.obj y he "reconstruido" el proyecto...
Tengo marcada la casilla "Información Debugger", y lanza el GPF.
Este GPF se lanza nada mas arrancar la aplicación... no muestra ni el primer Form.
Desmarco la casilla "Información Debugger", y no lanza el GPF.
Y ya no me lanza fuera de la aplicación!!!
Se ejecuta el código que tengo utilizando Ascan()
El problema del GPF por lo visto es marcando "Informacion Debugger"
Saco el fichero Debugger.obj, "reconstruyo" el proyecto...
Marco la casilla "Información Debugger", y no lanza el GPF.
Pero me lanza fuera de la aplicación con el código utilizando Ascan()
Desmarco la casilla "Información Debugger", y no lanza el GPF.
Se ejecuta el código que tengo utilizando Ascan()
El problema de que me saque fuera por lo visto es marcando "Informacion Debugger"
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge del grup de discussió: [email=442d4731@ozsrvnegro.ozlan.local...]442d4731@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Si añado este obj...
>>
>> GPF (Code = c0000005):
>> Access violation
>>
>> MAIN(0)
>
> Por favor, asegúrate de que estás añadiendolo correctamente y de que no
> estás usando ningún otro .obj antiguo de Xailer. Por otro lado, prueba
> también a recompilar *completamente* el proyecto sin información de
> debugger, con y sin este .obj
>
> --
> Un saludo,
>
> José F. Giménez
>
>
--
Tenía incluido el obj Printer.obj
Le he dejado SOLO el Debugger.obj y he "reconstruido" el proyecto...
Tengo marcada la casilla "Información Debugger", y lanza el GPF.
Este GPF se lanza nada mas arrancar la aplicación... no muestra ni el primer Form.
Desmarco la casilla "Información Debugger", y no lanza el GPF.
Y ya no me lanza fuera de la aplicación!!!
Se ejecuta el código que tengo utilizando Ascan()
El problema del GPF por lo visto es marcando "Informacion Debugger"
Saco el fichero Debugger.obj, "reconstruyo" el proyecto...
Marco la casilla "Información Debugger", y no lanza el GPF.
Pero me lanza fuera de la aplicación con el código utilizando Ascan()
Desmarco la casilla "Información Debugger", y no lanza el GPF.
Se ejecuta el código que tengo utilizando Ascan()
El problema de que me saque fuera por lo visto es marcando "Informacion Debugger"
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge del grup de discussió: [email=442d4731@ozsrvnegro.ozlan.local...]442d4731@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Si añado este obj...
>>
>> GPF (Code = c0000005):
>> Access violation
>>
>> MAIN(0)
>
> Por favor, asegúrate de que estás añadiendolo correctamente y de que no
> estás usando ningún otro .obj antiguo de Xailer. Por otro lado, prueba
> también a recompilar *completamente* el proyecto sin información de
> debugger, con y sin este .obj
>
> --
> Un saludo,
>
> José F. Giménez
>
>
--
Me Saca de la Aplicaci
Xevi,
ya hemos encontrado el nuevo GPF. Ignacio está subiendo el nuevo instalable
a la página. Por favor, prueba con la nueva PR7a.
Y perdona por las molestias.
--
Un saludo,
José F. Giménez
ya hemos encontrado el nuevo GPF. Ignacio está subiendo el nuevo instalable
a la página. Por favor, prueba con la nueva PR7a.
Y perdona por las molestias.
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
Jose,
Nada de moléstias... eso no es nada comparado con lo que recibo de todos
vosotros!!!
Esperaré a que esté subida la PR7a... pues el enlace que hay en el mensaje
de Nueva versión no funciona, supongo que porque lo está acabando de
modificar Ignacio.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d6ec8$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> ya hemos encontrado el nuevo GPF. Ignacio está subiendo el nuevo
> instalable a la página. Por favor, prueba con la nueva PR7a.
>
> Y perdona por las molestias.
>
> --
> Un saludo,
>
> José F. Giménez
>
Nada de moléstias... eso no es nada comparado con lo que recibo de todos
vosotros!!!
Esperaré a que esté subida la PR7a... pues el enlace que hay en el mensaje
de Nueva versión no funciona, supongo que porque lo está acabando de
modificar Ignacio.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d6ec8$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
> ya hemos encontrado el nuevo GPF. Ignacio está subiendo el nuevo
> instalable a la página. Por favor, prueba con la nueva PR7a.
>
> Y perdona por las molestias.
>
> --
> Un saludo,
>
> José F. Giménez
>
Me Saca de la Aplicaci
Xevi,
> Nada de moléstias... eso no es nada comparado con lo que recibo de todos
> vosotros!!!
Gracias por tu paciencia
> Esperaré a que esté subida la PR7a... pues el enlace que hay en el mensaje
> de Nueva versión no funciona, supongo que porque lo está acabando de
> modificar Ignacio.
Ya está subido.
--
Un saludo,
José F. Giménez
> Nada de moléstias... eso no es nada comparado con lo que recibo de todos
> vosotros!!!
Gracias por tu paciencia

> Esperaré a que esté subida la PR7a... pues el enlace que hay en el mensaje
> de Nueva versión no funciona, supongo que porque lo está acabando de
> modificar Ignacio.
Ya está subido.
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
Jose.
Con la PR7a PERFECTO!!!
Con o sin Debugger!!!
Ya podemos irnos de Finde tranquilitos, jejeje.
Por cierto...
¿que ventajas aporta compilar con o sin debugger???
¿He notado que sin Debugger el exe "vuela"???
Para entregar la aplicación... ¿compilo el proyecto sin debugger???
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d70ad$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Nada de moléstias... eso no es nada comparado con lo que recibo de todos
>> vosotros!!!
>
> Gracias por tu paciencia
>
>
>> Esperaré a que esté subida la PR7a... pues el enlace que hay en el
>> mensaje de Nueva versión no funciona, supongo que porque lo está acabando
>> de modificar Ignacio.
>
> Ya está subido.
>
> --
> Un saludo,
>
> José F. Giménez
>
Con la PR7a PERFECTO!!!
Con o sin Debugger!!!
Ya podemos irnos de Finde tranquilitos, jejeje.
Por cierto...
¿que ventajas aporta compilar con o sin debugger???
¿He notado que sin Debugger el exe "vuela"???
Para entregar la aplicación... ¿compilo el proyecto sin debugger???
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d70ad$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Nada de moléstias... eso no es nada comparado con lo que recibo de todos
>> vosotros!!!
>
> Gracias por tu paciencia

>
>
>> Esperaré a que esté subida la PR7a... pues el enlace que hay en el
>> mensaje de Nueva versión no funciona, supongo que porque lo está acabando
>> de modificar Ignacio.
>
> Ya está subido.
>
> --
> Un saludo,
>
> José F. Giménez
>
Me Saca de la Aplicaci
Xevi,
> Con la PR7a PERFECTO!!!
> Con o sin Debugger!!!
Estupendo!
> Ya podemos irnos de Finde tranquilitos, jejeje.
;-)
> Por cierto...
> ¿que ventajas aporta compilar con o sin debugger???
Para usar el debugger tienes que compilar con información de debugger
necesariamente. Si no lo has probado todavía, te aconsejo que lo hagas. Te
aseguro que te puede ahorrar muchas horas de trabajo depurando los
programas. Echa un vistazo a:
http://objetopersistente.blogspot.com/2 ... er-pre-rel ease-7-omg.html
(aunque parece que las imágenes no están saliendo hoy, René???).
> ¿He notado que sin Debugger el exe "vuela"???
Con debugger siempre será un poco más lento, el ejecutable un poquito más
grande y consumirá un poco más de memoria. No obstante, la diferencia de
velocidad es muy poca en comparación con otros debugger.
Yo siempre programo con el debugger activado, y cuando voy a preparar el
ejecutable para llevar al cliente, lo desactivo y recompilo el proyecto.
> Para entregar la aplicación... ¿compilo el proyecto sin debugger???
Sin debugger por supuesto!
--
Un saludo,
José F. Giménez
> Con la PR7a PERFECTO!!!
> Con o sin Debugger!!!
Estupendo!
> Ya podemos irnos de Finde tranquilitos, jejeje.
;-)
> Por cierto...
> ¿que ventajas aporta compilar con o sin debugger???
Para usar el debugger tienes que compilar con información de debugger
necesariamente. Si no lo has probado todavía, te aconsejo que lo hagas. Te
aseguro que te puede ahorrar muchas horas de trabajo depurando los
programas. Echa un vistazo a:
http://objetopersistente.blogspot.com/2 ... er-pre-rel ease-7-omg.html
(aunque parece que las imágenes no están saliendo hoy, René???).
> ¿He notado que sin Debugger el exe "vuela"???
Con debugger siempre será un poco más lento, el ejecutable un poquito más
grande y consumirá un poco más de memoria. No obstante, la diferencia de
velocidad es muy poca en comparación con otros debugger.
Yo siempre programo con el debugger activado, y cuando voy a preparar el
ejecutable para llevar al cliente, lo desactivo y recompilo el proyecto.
> Para entregar la aplicación... ¿compilo el proyecto sin debugger???
Sin debugger por supuesto!
--
Un saludo,
José F. Giménez
Me Saca de la Aplicaci
Jose,
Creo que tendré que acostumbrarme a las nuevas herramientas...
Así de pronto, es impresionante la información que podemos obtener con el
Debugger!!!
Os felicito!!!
Por cierto...
La variable Public APPDATA no se me despliega el Tree!!!
Es una variable que utilizo para mis variables que necesito en la
aplicación... y no entiendo porque no puedo ver el arbol, como se ve
APPLICATION, PRINTER o SCREEN.
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d73c6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Con la PR7a PERFECTO!!!
>> Con o sin Debugger!!!
>
> Estupendo!
>
>> Ya podemos irnos de Finde tranquilitos, jejeje.
>
>
>
>> Por cierto...
>> ¿que ventajas aporta compilar con o sin debugger???
>
> Para usar el debugger tienes que compilar con información de debugger
> necesariamente. Si no lo has probado todavía, te aconsejo que lo hagas. Te
> aseguro que te puede ahorrar muchas horas de trabajo depurando los
> programas. Echa un vistazo a:
> http://objetopersistente.blogspot.com/2 ... er-pre-rel ease-7-omg.html
> (aunque parece que las imágenes no están saliendo hoy, René???).
>
>> ¿He notado que sin Debugger el exe "vuela"???
>
> Con debugger siempre será un poco más lento, el ejecutable un poquito más
> grande y consumirá un poco más de memoria. No obstante, la diferencia de
> velocidad es muy poca en comparación con otros debugger.
>
> Yo siempre programo con el debugger activado, y cuando voy a preparar el
> ejecutable para llevar al cliente, lo desactivo y recompilo el proyecto.
>
>> Para entregar la aplicación... ¿compilo el proyecto sin debugger???
>
> Sin debugger por supuesto!
>
> --
> Un saludo,
>
> José F. Giménez
>
Creo que tendré que acostumbrarme a las nuevas herramientas...
Así de pronto, es impresionante la información que podemos obtener con el
Debugger!!!
Os felicito!!!
Por cierto...
La variable Public APPDATA no se me despliega el Tree!!!
Es una variable que utilizo para mis variables que necesito en la
aplicación... y no entiendo porque no puedo ver el arbol, como se ve
APPLICATION, PRINTER o SCREEN.
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> ha escrit al missatge
del grup de discussió: 442d73c6$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Xevi,
>
>> Con la PR7a PERFECTO!!!
>> Con o sin Debugger!!!
>
> Estupendo!
>
>> Ya podemos irnos de Finde tranquilitos, jejeje.
>
>

>
>> Por cierto...
>> ¿que ventajas aporta compilar con o sin debugger???
>
> Para usar el debugger tienes que compilar con información de debugger
> necesariamente. Si no lo has probado todavía, te aconsejo que lo hagas. Te
> aseguro que te puede ahorrar muchas horas de trabajo depurando los
> programas. Echa un vistazo a:
> http://objetopersistente.blogspot.com/2 ... er-pre-rel ease-7-omg.html
> (aunque parece que las imágenes no están saliendo hoy, René???).
>
>> ¿He notado que sin Debugger el exe "vuela"???
>
> Con debugger siempre será un poco más lento, el ejecutable un poquito más
> grande y consumirá un poco más de memoria. No obstante, la diferencia de
> velocidad es muy poca en comparación con otros debugger.
>
> Yo siempre programo con el debugger activado, y cuando voy a preparar el
> ejecutable para llevar al cliente, lo desactivo y recompilo el proyecto.
>
>> Para entregar la aplicación... ¿compilo el proyecto sin debugger???
>
> Sin debugger por supuesto!
>
> --
> Un saludo,
>
> José F. Giménez
>
Me Saca de la Aplicaci
Xevi,
> Creo que tendré que acostumbrarme a las nuevas herramientas...
> Así de pronto, es impresionante la información que podemos obtener con el
> Debugger!!!
>
> Os felicito!!!
Gracias
> Por cierto...
> La variable Public APPDATA no se me despliega el Tree!!!
> Es una variable que utilizo para mis variables que necesito en la
> aplicación... y no entiendo porque no puedo ver el arbol, como se ve
> APPLICATION, PRINTER o SCREEN.
Me temo que AppData tiene algunas limitaciones para que se pueda ver en el
debugger. No obstante, lo revisaremos por si fuera posible hacer algo al
respecto.
--
Un saludo,
José F. Giménez
> Creo que tendré que acostumbrarme a las nuevas herramientas...
> Así de pronto, es impresionante la información que podemos obtener con el
> Debugger!!!
>
> Os felicito!!!
Gracias

> Por cierto...
> La variable Public APPDATA no se me despliega el Tree!!!
> Es una variable que utilizo para mis variables que necesito en la
> aplicación... y no entiendo porque no puedo ver el arbol, como se ve
> APPLICATION, PRINTER o SCREEN.
Me temo que AppData tiene algunas limitaciones para que se pueda ver en el
debugger. No obstante, lo revisaremos por si fuera posible hacer algo al
respecto.
--
Un saludo,
José F. Giménez