FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Pocket PC Como interrumpir un bucle?
Posts: 365
Joined: Sat Oct 08, 2005 07:59 PM
Como interrumpir un bucle?
Posted: Thu Nov 30, 2006 05:43 PM
Tengo un bot贸n y un bucle Do while, en el que hago las mediciones. Quisiera que al pulsar el bot贸n terminase el bucle. Ahora lo hago as铆:

@ r,c, Button "Stop"..... ACTION lOk := .F. 
lOk := .T.
Do While lOk
     MiFuncionDeMedir()
     ....
Enddo


Pero reacciona muy lentamente. O sea: Entre la pulsaci贸n del bot贸n y el fin del bucle pasan algunos segundos. 驴Hay alguna forma de hacer un Break inmediato? Existe alguna funci贸n del API de windows o algo as铆? Gracias

Rafael
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como interrumpir un bucle?
Posted: Thu Nov 30, 2006 06:03 PM
Rafael,

Prueba a llamar a SysRefresh() en el bucle:
Do While lOk 
     MiFuncionDeMedir() 
     SysRefresh() 
Enddo
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 365
Joined: Sat Oct 08, 2005 07:59 PM
Como interrumpir un bucle?
Posted: Thu Nov 30, 2006 07:19 PM

Antonio:
Tengo varios SysRefreh() tanto en el bucle como en MiFuncion(). La variable lOk est谩 declarada como P煤blica.

M谩s o menos la cosa funciona. "Pastosa", pero funciona. S贸lo quer铆a saber si hab铆a alguna funci贸n escondida por ah铆 que permitiese forzar una interrupci贸n m谩s 谩gil, algo as铆 como una interrupci贸n por teclado...

Gracias

Rafael

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como interrumpir un bucle?
Posted: Fri Dec 01, 2006 12:48 PM

Rafael,

Ese proceso lo est谩s haciendo en bases de datos en la tarjeta de memoria ? Procura hacerlo en ram, no en la tarjeta.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 365
Joined: Sat Oct 08, 2005 07:59 PM
Como interrumpir un bucle?
Posted: Fri Dec 01, 2006 01:01 PM

Antonio:
El proceso consiste simplemente en capturar unos strings de seis cifras que llegan via RS-232 a un ritmo de uno cada diez segundos. Una vez capturado, lo grabo en un Dbf. Programa y datos los tengo en la tarjeta de memoria, en la misma carpeta. Intentar茅 pasarlos a RAM.

Por cierto, ahora abro las tablas como USE CurDir()+"\Tabla.dbf". Si pongo el programa en RAm pero mantendo las dbfs en la tarjeta, como he de acceder a ella? Quiero decir: Ya no ser谩 Curdir(), no?

Saludos,

Rafael

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como interrumpir un bucle?
Posted: Fri Dec 01, 2006 01:06 PM

Rafael,

Las tarjetas de memoria son algo lentas en acceso a escritura. Procura poner las DBFs en ram. Para usarlas puedes seguir usando CurDir(), si las tienes en donde est茅 la aplicaci贸n (en RAM tambi茅n). Si no es el caso, especifica su path "carpeta...".

Cuando el proceso termine, c贸pialas a la tarjeta de memoria, en caso de que necesites llevarte la tarjeta a otra parte.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 139
Joined: Fri Apr 07, 2006 09:16 PM
Estoy interado en esto
Posted: Mon Dec 04, 2006 01:12 PM

Como puedo colocar las bases de datos en RAM.

gracias

imjcc@mjccsl.com

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como interrumpir un bucle?
Posted: Mon Dec 04, 2006 01:35 PM

> Como puedo colocar las bases de datos en RAM.

tenlas en cualquier directorio que no sea "SD card" 贸 "Tarjeta Memoria"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 139
Joined: Fri Apr 07, 2006 09:16 PM
Gracias
Posted: Mon Dec 04, 2006 01:47 PM

Gracias

Continue the discussion