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 21-08-2010
schdamian schdamian is offline
Registrado
 
Registrado: abr 2010
Posts: 7
Poder: 0
schdamian Va por buen camino
error al comparar caracteres

Hola a todos, no sabia bien que titulo ponerle a este hilo, el tema es el siguiente, estoy trabajando con impresora fiscal epson lx-300, delphi 2009 y un componente TComPort para escribir y leer el puerto serie. Envio los comandos al puerto serie segun el protocolo Epson, el problema viene al intentar leer la respuesta, todas las respuestas comienzan con el caracter 02 en Hexa (es decir chr($02) ) para lo cual despues de escribir el comando al puerto hago un while de esta forma:

Código Delphi [-]
leer_inicio:= '';
while ( leer_inicio <> chr($02) ) do // mientas no lea el comienzo de la respuesta
begin
   ComPort1.ReadStr(leer_inicio,1);   // leer_inicio es la var donde quiero que guarde lo que lee
   // y el param 1 es la cantidad de caracteres que debo leer.
end;
// si estoy aca es porque lei el inicio del comando que me
// envia el controlador fiscal asi que ya puedo leer el resto
// de la respuesta para analizarla


el problema viene a que muchas veces el controlador fiscal responde con otros caracteres que no son el chr($02) y pueden ser el chr($14) chr($12) chr($15) entre otros, y delphi me tirar un error al leer eso caracteres, el error no dice mucho solo tiene un signo de admiracion !, pero se da al leer caracteres y compararlos con chr($02).
por ahora lo solucione parcialmente poniendo un sleep(1000) o 2mil o mas antes de empezar el while para evitar leer esos caracteres y darle tiempo a que llegue un chr($02) el problema es que a veces el controlador fiscal se demora un poco mas en dejar la respuesta en el puerto, he llegado a tener el error hasta haciedo un sleep(7500) en algunos comandos que requieren mas tiempo pero no es la solucion porque a veces el chr($02) aparece en menos de 1 segundo y no puedo esperar 4 o 5 para garantizar la lectura.

si a alguien le se le ocurre algo para darme una mano con este tema, desde ya muchas gracias. 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
Comparar caracteres de una cadena cslbcn OOP 3 10-07-2010 13:18:27
Comparar cadenas de caracteres sacadas de un fichero papulo Varios 20 22-12-2006 14:43:33
Error codificación caracteres en web papulo PHP 11 17-11-2006 16:11:25
UDF Parametro Error May 256 Caracteres Abel Garcia Firebird e Interbase 2 24-07-2006 07:32:02
Comparar caracteres tecleados con los de una cadena Calculador Varios 1 16-01-2005 18:36:35


La franja horaria es GMT +2. Ahora son las 13:59:41.


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