Ver Mensaje Individual
  #2  
Antiguo 30-07-2008
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Reputación: 20
waly2k1 Va por buen camino
Otra ayudita sobre el tema ?

Buenas muchachos, estoy con un problemita no tan complicado
pero me supera un poco, lo que pretendo de este codigo es extraer
solo las letras y nros. que puedan venir del puerto, y no así los caracteres
raros o ruidos que pueda venir. El tema se me complica porque al
preguntar si es Nro. o letra desconozco las funciones de
conversión de tipos, y PChar <> PAnsiChar y sigue la lista de errores..

El tema en cuestión es la lectura de un lector de tarjeta por proximidad,
hasta funciona!!!, pero nose que caracteres puedan venir en otras tarjetas
o simplemente ruidos como lo mencionaba anteriormente.

Código:
procedure TfrmLector.ComPortRxChar(Sender: TObject; Count: Integer);
var
    sLect:string;
    cChar:Char;
    i:integer;
begin
    Sleep(1000); // Porque sino se activa nuevamente el evento mientras estoy procesando
    ComPort.ReadStr( sLect, 20 ); // A mi me interesan 12 caracteres que pueden ser letras o nros.
    
    sLectura := UpperCase( sLect );                    // es una variable global, pq Delphi no maneja variables estáticas
    sLectura := ReplaceSTR( sLectura, Chr(13), '');
    sLectura := ReplaceSTR( sLectura, Chr(10), '');
    sLectura := ReplaceSTR( sLectura, '', '');
    sLectura := ReplaceSTR( sLectura, '', '');
    sLectura := ReplaceSTR( sLectura, '', '');

    // Aquí iría rutina para filtrar solo letras y nros., 
    // ya que nose que otros caracteres pueden venir, del tipo for i :=1 to length(sLectura)


    lblRTarjeta.Caption := sLectura;
end;
Bueno es todo, saludos y desde ya muchas gracias!!!
Walter
Responder Con Cita