Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-10-2021
Ricardo2010 Ricardo2010 is offline
Miembro
 
Registrado: may 2010
Posts: 60
Poder: 14
Ricardo2010 Va por buen camino
Question bucle para que se ejecute una serie de instrucciones cada dos horas

Hola necesito su ayuda para la siguiente problemática, puede que se facil pero no he podido lograr que funciones
Necesito generar un bucle para que se ejecute una serie de instrucciones cada dos horas, la aplicacion en delphi 10.4 lo que he realizado es lo siguiente
Código Delphi [-]
hora_new:=hora + 1;
  ed_lleva.Text:=IntToStr(debe);//aqui indio cada cuanto debe ejecutarse
  while debe <= hay do // debe inicia en 0 hay es la cantidad total de datos a leer
  begin
    while hora<=hora_new do    // hora es integer que contiene solo la hora y hora_new es cada cuanto se debiera ejecutar
    begin
      i:=0;
      while i<30000 do    // este while lo pongo porque realmente no generar la nueva hora
      begin
         i:=i + 1;
      end;
       q_hora.Open;
       hora:=q_horaHORA.AsInteger;  // con esto tomo nuevamente la hora servidor
       q_hora.close;
    end;
    Form1.Update;
    hora_new:=hora + 1;
    Memo1.Clear;
    recorre;  // este es el codigo que debiera ejecutarse cada 2 hora

  end;

de verdad que he intentado de varias formas que se ejecute cada cierta cantidad de tiempo (horas) pero no logro que funcione , favor su ayuda

Última edición por dec fecha: 21-10-2021 a las 09:14:05. Razón: Cambiar etiqueta CODE por etiqueta DELPHI
Responder Con Cita
  #2  
Antiguo 21-10-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aparte de las etiquetas que te ha solucionado [dec], no olvides poner también títulos descriptivos.
Recuerda nuestra guía de estilo, gracias.
Responder Con Cita
  #3  
Antiguo 21-10-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Ricardo2010 Ver Mensaje
Necesito generar un bucle para que se ejecute una serie de instrucciones cada dos horas, la aplicacion en delphi 10.4 lo que he

Una duda. ¿Has probado a implementarlo con un TTimer?
Creo que para estas cosas es mucho más sencillo.


En cuanto al bucle, veo que coges la hora del servidor con esto:

Código Delphi [-]
hora:=q_horaHORA.AsInteger;


Pero en ningun sitio veo que la compares con otra hora para saber si han poasado 2 horas o no. No acabo de entender la lógica.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 22-10-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
No tengo claro si necesitas hacerlo de esa forma concreta por algún motivo. Yo entiendo del enunciado que quieres ejecutar un código cada 2 horas. Leyendo el código y como quieres hacerlo dentro de un bucle y ya sabemos lo que pasa con los bucles infinitos se trata de ejecutar una sentencia cada dos horas mientras no se cumpla con una condición de ruptura. De tu código deduzco que esa condición de ruptura es debe <= hay.


Código Delphi [-]
 while debe <= hay do // debe inicia en 0 hay es la cantidad total de datos a leer
 begin
    //2 (horas) * 3600 (segundos/hora) * 1000 (milisegundos en un segundo)  =7200000 (milisegundos a "dormir" la ejecución.
    sleep(7200000); 
    recorre; // este es el código que debiera ejecutarse cada 2 horas
 end;


A mí también me parece mejor utilizar un ttimer para este tipo de cosas. De todas formas si necesitas la hora del servidor, consultar horas en bd y realmente lo que necesitas es una diferencia entre horas este sistema supongo que no te servirá. Como siempre, espero que recorre se encargue de incrementar debe hasta que iguale o supere el valor de hay en algún momento.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con instrucciones para reparar bug en C++builder 6 aguml C++ Builder 3 26-02-2015 21:00:00
Deseo hacer sumatoria de las horas que calcula el Bucle georkis PHP 4 08-03-2012 20:44:52
ejecutar codigo de delphi cada 24 horas richy08 Lazarus, FreePascal, Kylix, etc. 13 07-06-2010 16:38:22
metodos para hacer que una forma solo se ejecute una vez DEPROE Varios 7 18-11-2004 19:48:25
Instrucciones para utilizar los cajeros automáticos desde el auto delphi.com.ar Humor 6 01-04-2004 21:39:26


La franja horaria es GMT +2. Ahora son las 19:13:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi