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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2013
n03l n03l is offline
Miembro
 
Registrado: feb 2007
Posts: 73
Poder: 18
n03l Va por buen camino
Optimizar codigo

Saludos, tengo un pequeño codigo que recorre una tabla y va enviando comandos a un dispositivo USB a traves del componente TComport.... el codigo que tengo me funsiona bien, ya que cada vez que envio un comando al disposivo USB hago una pausa de 10seg para esperar la respuesta del dispositivo.

el problema esque el tiempo de respuesta es variado es decir podria devolver la respuesta en 3eg o en 7seg y la manera como yo lo hago estoy perdiendo tiempo ya q espero 10seg para asegurar la respuesta q debo almacenar en una tabla

el codigo que uso es el siguiente
Código Delphi [-]
for I := 0 to FrmPrincipal.Tabla.RecordCount - 1 do
begin
       FrmPrincipal.ComPort.WriteStr('ENVIO EL COMANDO A DISPOSITIVO USB');
        Sleep(10000); // hago una pausa para esperar la respuesta del dispositivo
         Application.ProcessMessages;
   
        if FrmPrincipal.resp='ERROR' then
      begin
        FrmPrincipal.Tabla.Edit;
        FrmPrincipal.Tabla.FieldByName('ESTADO').AsString:='ERROR';
        FrmPrincipal.Tabla.Post;
        
      end //fin resp error
      else
      if FrmPrincipal.resp='OK' then
      begin
        FrmPrincipal.Tabla.Edit;
        FrmPrincipal.Tabla.FieldByName('ESTADO').AsString:='EXITO';
        FrmPrincipal.Tabla.Post;
       
      end; //fin resp ok

FrmPrincipal.Tabla.Next;
end;


Tambien e tratado de agregarle un while para de esta manera avanzar cuando se obtenga una respuesta pero no camina de esa forma

Código Delphi [-]
FrmPrincipal.resp:='';
for I := 0 to FrmPrincipal.Tabla.RecordCount - 1 do
begin
       FrmPrincipal.ComPort.WriteStr('ENVIO EL COMANDO A DISPOSITIVO USB');
    //    Sleep(10000); // hago una pausa para esperar la respuesta del dispositivo
         Application.ProcessMessages;
     while (FrmPrincipal.resp<>'') do
begin    
        if FrmPrincipal.resp='ERROR' then
      begin
        FrmPrincipal.Tabla.Edit;
        FrmPrincipal.Tabla.FieldByName('ESTADO').AsString:='ERROR';
        FrmPrincipal.Tabla.Post;
        
      end //fin resp error
      else
      if FrmPrincipal.resp='OK' then
      begin
        FrmPrincipal.Tabla.Edit;
        FrmPrincipal.Tabla.FieldByName('ESTADO').AsString:='EXITO';
        FrmPrincipal.Tabla.Post;
       
      end; //fin resp ok
end;//fin de while

FrmPrincipal.Tabla.Next;
end;

aver si alguien me echa una manito para optimizar este codigo. saludos
Responder Con Cita
 



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
optimizar el codigo en menos lineas darkbits Varios 5 19-07-2013 13:32:40
optimizar el codigo para no tener lo mismo mas de 5 veces en el proyecto darkbits Varios 6 28-10-2012 02:28:05
Ayuda como Optimizar Código JerS OOP 3 24-06-2011 05:59:44
optimizar codigo acrophet Varios 5 16-01-2011 23:28:39
Optimizar el sgte codigo BlueSteel Varios 9 14-08-2007 22:33:24


La franja horaria es GMT +2. Ahora son las 16:02:46.


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