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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Leer EAN128

Hola a tod@s.

Como ya habréis visto ando liado con temas de lecturas de códigos EAN128 y me encuentro con un problema.

Cuando leo un EAN13 no hay mayor historia porque cuando llega el salto de linea sabemos que el código ha sido leido y hacemos las operaciones que queramos pero el tema en el EAN128 es distinto, al picar en el código llegan varios grupos de datos separados por saltos de linea y cada "trozo" del código significa una cosa, p.e: si leemos el código siguiente en un memo:

(01)98412254011278(3102)002660(15)140326(10)07814

nos llegará de la siguiente manera:

0198412254011278
3102002660
15140326
1007814

¿Cual es el problema? que al ir caracteres de saltos de linea dentro del código no sé cómo averiguar cuando acaba un código y empieza el siguiente que lean.

Se me ha ocurrido que cuando pase un tiempo determinado (corto) sin recibir nada de el código como leido o intentar ver si cuando van llegando "grupos" de números hay algo en el buffer del teclado pero no lo tengo claro.

¿Alguna idea?

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 02-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hace mucho tiempo que no lo uso, pero creo recordar que el componente barcode lee los ean128.
Pongo algunos enlaces del componente y de ejemplos de instalación y uso:
http://www.activebarcode.com/howto/delphi.html
https://www.dlsoft.com/developers/ba...for_delphi.htm
http://stilius.net/tbarcode/
Responder Con Cita
  #3  
Antiguo 03-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Gracias. Les echaré un vistazo aunque primero intentaré arreglármelas sin componentes externos.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 03-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Casimiro.

Estos links están muy bien pero son para generar códigos de barras, no para leerlos. Sigo dandole vueltas al tema, pondré un post a ver si alguien sabe si hay manera de averiguar si en un momento determinado hay algo pendiente por descargar del buffer de teclado.

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #5  
Antiguo 03-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿El controlador del lector de códigos de barras que tienes lee ean128?
Responder Con Cita
  #6  
Antiguo 03-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿El controlador del lector de códigos de barras que tienes lee ean128?
Si, eso ya lo he activado.
__________________
Be water my friend.
Responder Con Cita
  #7  
Antiguo 03-11-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Los primeros número significan algo: http://es.wikipedia.org/wiki/GS1-128...plicaci%C3%B3n
Quizás podrías saber cuando empieza un nuevo código. Por ejemplo, cuando el prefijo sea 01.
Código Delphi [-]
// Mientras haya líneas en el Memo
while (Memo.Lines.Count > 0) do
begin
  Finalizar := False;
  Lectura := '';

  // Trabajo con la primera linea, borrandola después de tratarla
  // Si es el comienzo de un código nuevo, salgo del bucle.
  while ((not Finalizar) and (Memo.Lines.Count > 0)) do
  begin
    // Concateno la primera linea del Memo al resultado
    Lectura := Lectura + Memo.Lines[0];

    // Si La linea es el comienzo de un nuevo código salgo
    // Sino borro la linea leida
    if (copy(Memo.Lines[0], 1, 2) = '01') then
      Finalizar := True;
    else
      Memo.Lines.Delete(0);
  end;
  
  // Proceso el código leido
  Procesar(Lectura);
end;
Responder Con Cita
  #8  
Antiguo 04-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Gracias duilioisola por tus comentarios. Mi problema no es saber cuando empieza el código sino cuando ha acabado porque no hay nada que informe de cuando ha acabado de leer el código puesto que los retornos de carro se van enviando con cada grupo de números tal y como puse en el primer post.

Esto de los ean 128 es un mundo y puede ir incluida (o no) mucha información que va separada en grupos acabando en un retorno de carro. El problema es que cuando se acaba de enviar el último grupo de números (que no se sabe a qué corresponde) se envía un retorno de carro y punto, o sea, no se puede determinar cuando se ha acabado de leer.

Al final he optado por modificar la configuración de la pistola (cosa que no quería) para que envía un caracter raro al final del código y así poder procesarlo.

Gracias de nuevo y un saludo
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 04-11-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por newtron Ver Mensaje
Al final he optado por modificar la configuración de la pistola (cosa que no quería) para que envía un caracter raro al final del código y así poder procesarlo.
No entiendo mucho del asunto, pero, creo que dicha configuración es obligatoria. A no ser que la "pistola" venga ya configurada para enviar algún caracter "de control", tú mismo has comprobado que no puedes leer el código de barras si no cuentas con dicho caracter.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 04-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Hola,



No entiendo mucho del asunto, pero, creo que dicha configuración es obligatoria. A no ser que la "pistola" venga ya configurada para enviar algún caracter "de control", tú mismo has comprobado que no puedes leer el código de barras si no cuentas con dicho caracter.
Pues no sé si será obligatorio, el caso es que por defecto el lector de código de barras (pistola ) no envía nada especial al final del código para poder detectar que ha sido enviado por completo. No sé, la verdad es que no he sabido solucionar el tema de otra manera, que no es que pase nada pero no me gusta ir cambiando las configuraciones por defecto de los "chismes".

Saludos
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 05-11-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Qué estás usando para leer el código de barras? Por ejemplo, el componente TCompPort, te permite "jugar" con no pocas opciones que acaso pudieras utilizar para leer el código de barras sin tocar la configuración del dispositivo. No sé si merecerá la pena que te compliques la vida, pero, tal vez podrías instalar este componente y echarle un vistazo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 05-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola de nuevo.

El lector de código de barras es usb y lo que hace es enviar al buffer de teclado lo que lee, ahora mismo lo que hago es recoger esos datos en un memo. El componente TComPort ya lo uso para conectar básculas y "chismes" al pc por el puerto serie pero no creo que se pueda utilizar para capturar las lecturas del lector de código de barras, igual estoy equivocado.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #13  
Antiguo 05-11-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que sí que es posible usar el componente "TCompPort" para capturar códigos de barra. Lo que ignoro es hasta qué punto depende del software y/o del hardware. Pero lo cierto es que dicho componente ofrece no pocas opciones que acaso puedas "tocar" de manera que el trabajo resulte más sencillo, es decir, que no sea necesario configurar la "pistola", sino que a través de software puedas hacerlo todo. De todas formas, tampoco me hagas mucho caso, o, pruébalo sólo si tienes tiempo, en fin.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #14  
Antiguo 05-11-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
Hola,

Creo que sí que es posible usar el componente "TCompPort" para capturar códigos de barra. Lo que ignoro es hasta qué punto depende del software y/o del hardware. Pero lo cierto es que dicho componente ofrece no pocas opciones que acaso puedas "tocar" de manera que el trabajo resulte más sencillo, es decir, que no sea necesario configurar la "pistola", sino que a través de software puedas hacerlo todo. De todas formas, tampoco me hagas mucho caso, o, pruébalo sólo si tienes tiempo, en fin.
No tengo problema en probarlo, ya te digo que uso ese componente y no me cuesta ningún trabajo. El problema es que para ponerse a la "escucha" pide un puerto que creo que debe de ser un puerto serie, no sé si se podrá "jugar" con eso, le echaré un vistazo.

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
Respuesta



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
Ean128 davidgaldo Impresión 17 16-06-2010 18:15:41
Leer XML cmm07 Varios 4 02-02-2010 14:36:05
Leer Xml chrids506 Internet 4 31-03-2008 12:55:14
Codigo EAN128 davidgaldo Varios 2 16-11-2005 16:09:40
Leer *.res dmagui Varios 5 04-10-2005 22:40:32


La franja horaria es GMT +2. Ahora son las 11:53:18.


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