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