Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Lector Codigo de Barra (https://www.clubdelphi.com/foros/showthread.php?t=65773)

mjjj 12-01-2010 14:30:24

Lector Codigo de Barra
 
Hola gente del foro, una preguntita.

Tengo un lector de codigo de barra que funciona como un teclado.
Necesito desarrollar un software que pueda detectar "en cualquier momento" la entrada de datos desde el lector de CB, y asignarlo a una variable de string publica.


Como puedo detectar la entrada de datos desde el lector, si este funciona como un teclado, y luego de copiar el texto emula un enter en el teclado.

Será que podré detectar el boton enter?

Bueno, espero que me puedan ayudar.

Gracias

cecam 12-01-2010 15:49:17

Nosotros tambien usamos lectores de codigo de barras (Metrologic) y estos se pueden programar añadiendo prefijos y sufijos para que simulen la pulsación de teclas . . .

En nuestro caso, simulamos que antes de hacer el envio de caracteres envie un F1 . . .

Mirate el manual . . .

No obstante depende de lo que quieras detectar/hacer.

Saludos!

mjjj 12-01-2010 16:19:45

ya lo tengo solucionado,

lo que me ocurre ahora, es que el codigo de barra tiene algunos guiones entre sus caracteres, el problema es que el guion (-), me lo detecta como una comilla ('), por lo tanto por codigo, quiero reemplazar la comilla por un guion.

el problema es que la funcion stringreplace, pone entre comillas lo que quiero cambio...

quedaria algo asi.

Código Delphi [-]
StringReplace(SEDIT2.TEXT,''','-',[]);

como puedo hacer esto?

cecam 12-01-2010 16:26:41

En vez de stringreplace, usamos una funcion propia
Código:

function StrTran( const cText, cOrigen, cDesti:string ):string;
var
  nPos:Integer;
begin
  Result := cText;
  if cOrigen<>cDesti then
  begin
      nPos:=Pos(cOrigen, Result);
      while (nPos>0) do
      begin
        Result := Copy( Result, 1, (nPos-1))+cDesti+Copy( Result, nPos+Length(cOrigen), Length(Result) );
        nPos:=Pos(cOrigen, Result);
      end;
  end;
end;

Saludos!!

anubis 12-01-2010 16:27:23

Bueno, algo estuve viendo sobre los codigo de barras.
Parece que en el lector se puede configurar con diferents paquetes de codigos (creo que se llaman asi) los ansi. Si eso no entra dentro de lo posible, tambien en delphi en vez de reemplazar codigo ascii podrias usar su valor numerico, nose si esto te funcionaria.

editado:sorry, me adelante, olvida lo que dije, mejor la solucion de cecam ;)

cocute 12-01-2010 17:55:46

Cita:

Empezado por mjjj (Mensaje 350537)
ya lo tengo solucionado,

lo que me ocurre ahora, es que el codigo de barra tiene algunos guiones entre sus caracteres, el problema es que el guion (-), me lo detecta como una comilla ('), por lo tanto por codigo, quiero reemplazar la comilla por un guion.

el problema es que la funcion stringreplace, pone entre comillas lo que quiero cambio...

quedaria algo asi.

Código Delphi [-]
StringReplace(SEDIT2.TEXT,''','-',[]);

como puedo hacer esto?

aunque no vayas a usar esto para que lo sepas para otra vez en esos casos tienes que poner la comilla dos veces osea:
Código PHP:

StringReplace(SEDIT2.TEXT,'''','-',[]); 


mjjj 12-01-2010 20:51:59

la idea de la doble comilla no resulta, les voy a poner un ejemplo.

Lo que tengo es: CO'611'892'AF
Necesito: CO-611-892-AF

El la funcionen que ponen, que significan las distintas variables.
Me servirá la función?

Gracias

rgstuamigo 12-01-2010 22:17:23

Cita:

Empezado por mjjj (Mensaje 350575)
la idea de la doble comilla no resulta, les voy a poner un ejemplo.

Lo que tengo es: CO'611'892'AF
Necesito: CO-611-892-AF

Gracias

Pues haslo asi:
Código Delphi [-]
Resultado:=StringReplace(Edit1.Text,'''','-',[rfReplaceAll]);
O asi tambien;)
Código Delphi [-]
Resultado:=StringReplace(Edit1.Text,chr(39),'-',[rfReplaceAll]);
Saludos...:)


La franja horaria es GMT +2. Ahora son las 03:57:45.

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