Hola chicos. Como parte de otro programa que estoy haciendo, he tenido que diseñar un sistema de programación de tareas al estilo Cron de Unix.

He extraido esta parte de la aplicacion completa ya que me parece muy util y didactico.
El sistema funciona basicamente con 2 funciones que van includos en el proyecto como globales, nibble y checkcron.
El funcionamiento es llamar a checkcron(cadena cron) en un timer cada segundo, una llamada por cada linea de cronjob.
La unica diferencia con el formato cron de UNIX es que ademas implemento segundos en la cadena, unix solo gestiona minutos.
El formato es el siguiente:
[seg] [minuto] [hora] [dia] [mes] [dia de la semana] [valor]
donde:
[seg]: (0-59)
[minuto]: (0-59)
[hora]: (0-23)
[dia]: (0-31)
[mes]: (1-12)
[dia de la semana]: (0-7) (0=domingo, 1=lunes, 2=martes...)
[valor]: es un string, normalmente pongo aqui el nombre de una funcion que es llamada con pcall (descomentar en la funcion checkcron())
En el ejemplo se comporta evaluando el codigo fuente de la variable codigo[valor] puediendo ser valor un numero
Se pueden ademas especificar combinaciones usando "," por ejemplo 10,20
Tambien se pueden definir rangos usando "-" por ejemplo 10-20 (genera 10,11,12,...,20)
Ademas se pueden combinar los 2 sistemas por ejemplo 1,10,20-30,40,50
El caracter * especifica que ese valor se cumple "SIEMPRE"
Mirar el screenshot para ver ejemplos
Descargar: http://www.zshare.net/download/83993009c97de581/
Recuerda que el ejemplo hay que darle al boton cron para que funcione

He extraido esta parte de la aplicacion completa ya que me parece muy util y didactico.
El sistema funciona basicamente con 2 funciones que van includos en el proyecto como globales, nibble y checkcron.
El funcionamiento es llamar a checkcron(cadena cron) en un timer cada segundo, una llamada por cada linea de cronjob.
La unica diferencia con el formato cron de UNIX es que ademas implemento segundos en la cadena, unix solo gestiona minutos.
El formato es el siguiente:
[seg] [minuto] [hora] [dia] [mes] [dia de la semana] [valor]
donde:
[seg]: (0-59)
[minuto]: (0-59)
[hora]: (0-23)
[dia]: (0-31)
[mes]: (1-12)
[dia de la semana]: (0-7) (0=domingo, 1=lunes, 2=martes...)
[valor]: es un string, normalmente pongo aqui el nombre de una funcion que es llamada con pcall (descomentar en la funcion checkcron())
En el ejemplo se comporta evaluando el codigo fuente de la variable codigo[valor] puediendo ser valor un numero
Se pueden ademas especificar combinaciones usando "," por ejemplo 10,20
Tambien se pueden definir rangos usando "-" por ejemplo 10-20 (genera 10,11,12,...,20)
Ademas se pueden combinar los 2 sistemas por ejemplo 1,10,20-30,40,50
El caracter * especifica que ese valor se cumple "SIEMPRE"
Mirar el screenshot para ver ejemplos
Descargar: http://www.zshare.net/download/83993009c97de581/
Recuerda que el ejemplo hay que darle al boton cron para que funcione