Problemas con el código QR

369 views
Skip to first unread message

adem adem

unread,
Sep 21, 2023, 3:40:24 PM9/21/23
to publice...@googlegroups.com
Hola a todos,

Me gustaría pedir sus sugerencias en relación a un problema que estoy enfrentando. Estoy trabajando en la integración de un código QR en la aplicación que estoy desarrollando. Actualmente, estoy utilizando la clase FoxBarcodeQR para generar códigos QR y, por otro lado, estoy utilizando el programa Zbar para escanear códigos entrantes.

El problema en cuestión surge cuando escaneo un código QR, obtengo un valor, pero al intentar generar el mismo código a partir de ese valor, las dos imágenes de los códigos QR resultantes no coinciden. He identificado dónde se encuentra el problema, pero no estoy seguro de cómo solucionarlo.

Para aclarar la situación, adjunto algunas imágenes y un pequeño ejemplo. Agradecería mucho sus sugerencias y ayuda para resolver este desafío. ¡Gracias!"f1.jpgf2.jpgf3.bmpf4.jpg

Para escanear hay que instalar el programa Zbar, en el enlace os adjunto el ejemplo junto con el programa Zbar.

Un saludo

Marcelo Barberis

unread,
Sep 21, 2023, 4:04:39 PM9/21/23
to publice...@googlegroups.com
Hola buenas tardes, te comento que descargue tu ejemplo y ejecute y los QR son iguales en mi ejemplo que realize, pienso que en lo que tu expones se ve que el txt contiene QR Code: www.google.com y en mi caso le puse solo www.google.com

Sin título.jpg

quizas pues debas cambiar el codigo, otra cosa que no realize es instalar el programa Zbar lo que hize fue solo copiar la misma direccion en ambos cuadros para ver si mostraba dos QR diferente, por lo que puedo entender segun lo que tu expones son diferentes las direcciones en la parte de arriba pones un texto y en la parte de abajo pones un texto diferente, por eso pienso que se generan dos QR diferentes.



--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAMbvQjFKkXg%2Bb2kRCuYwN8%3Df73x%2BGhX2ZtrE5gQNy9YMQfaR1g%40mail.gmail.com.


--
Marcelo Barberis Gutierrez
Sistemas Informaticos
Villa Montes - Bolivia
Telef.: +591-76830544

adem adem

unread,
Sep 21, 2023, 4:56:24 PM9/21/23
to publice...@googlegroups.com
en el textbox ===> https://www.google.com
en editbox ===>  QR-Code:https://www.google.com

lo que tenes que hacer es: escribir  https://www.google.com   en el textbox, generar el código, tomarle una foto con el celular, y luego escanea lo.
Te va a parecer  lo siguiente:
en el textbox ===> https://www.google.com ==> con este siembolo
en editbox ===>  QR-Code:https://www.google.com
si generas el codigo en el textbox con este valor "https://www.google.com " te van a salir imagenes identicas, pero en realidad la verdadera imagen es la que tienes en el celular,
para confirmar lo que digo , vacía el textbox y escribe de nuevo "https://www.google.com y compara,.
lo que intento decir es : la variable "cString" en el timer1 no lleva el valor correcto.

adem adem

unread,
Sep 21, 2023, 5:02:20 PM9/21/23
to publice...@googlegroups.com
Hola Marcelo, mande el correo con lo simbolo s que me salen , pero resulta que gmail lo ha corregido de manera automática, así lo he copiado en word y tomé esta foto
Nueva imagen de mapa de bits.bmp
Un saludo

Marcelo Barberis

unread,
Sep 22, 2023, 12:38:17 AM9/22/23
to publice...@googlegroups.com
hola volvi a realizar la prueba y de igual manera me aparecen los dos QR iguales, use el texto que sugeriste https://www.google.com   lo puese en el textbox de arriba y tambien en el archivo de texto y me aparecen los dos QR iguales, quizas debas cambiar el codigo fuente y que no escriba  QR-Code, porque si tu haces que escriba  QR-Code:  https://www.google.com  es obio que el QR resultante sera diferente porque los string que contiene ambos textbox no son iguales.

Sin título.jpg
     

HernanCano

unread,
Sep 22, 2023, 1:47:57 AM9/22/23
to Comunidad de Visual Foxpro en Español
Estás armando un huracán dentro de un vaso de agua.

1. En la lectura aparece el prefijo "QR-Code:" que --por si no te habías dado cuenta-- traduce "Código QR:", lo cual significa  que lo q se ha leido es un código QR. Y que puedes eliminar ese prefijo --de forma automática por parte de tu aplicación que es la que lee-- luego de leer el QR.

2. En la imagen 3 estás mostrando en la parte superior un caracter "extraño para vos", pero que sólo es el Enter de cambio de línea, caracter que también puedes obviar al leer (dado que es un sólo renglón).

El jueves, 21 de septiembre de 2023 a la(s) 14:40:24 UTC-5, 76xad...escribió:
Hola a todos,

adem adem

unread,
Sep 22, 2023, 6:04:07 AM9/22/23
to publice...@googlegroups.com
Buenos días Hernan;
puedes indicarme como los estas quitando el prefijo "QR-Code:", porque veo que ati no aparece en el editbox después de escanear.
Además mencionaste que puedo eliminarlo de forma automática la app, yo lo que hice es: aplicar esta línea en el timer1:
 nPos   = STRTRAN(ALLTRIM(cString), "QR-Code:", "")
Un Saludo.



--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

HernanCano

unread,
Sep 22, 2023, 1:59:38 PM9/22/23
to Comunidad de Visual Foxpro en Español
>> ...yo lo que hice es: aplicar esta línea en el timer1:
>>  nPos   = STRTRAN(ALLTRIM(cString), "QR-Code:", "")

Esa es la forma de quitarlo: ya lo hiciste. ¿Cómo es posible que preguntes?



borrable1.png
borrable1.png

adem adem

unread,
Sep 22, 2023, 4:19:35 PM9/22/23
to publice...@googlegroups.com
Hola Hernan; Agradezco muchísimo la sugerencia, la ayuda, y sobre todo tu tiempo.
Puede que entendí mal, pensé que hay una forma de quitarlo desde Origen, desde "La app Zbar".
Fijando en la imagen que adjuntaste, di cuenta, que me diste la solución.  Creo que no es comparable quitar el  "QR-Code:" aplicando esta línea : nPos = STRTRAN(ALLTRIM(cString), "QR-Code:", "")
que con las líneas que Usted aplicó:

**MessageBox(M.cString)
M.cString = alltrim(M.cString)
M.cString = alltrim(M.cString,chr(13)+chr(10),chr(13))
M.cString = alltrim(M.cString,chr(13)+chr(13),chr(13))
If upper(left(alltrim(M.cString),8))==upper("QR-Code:")
   M.cString = alltrim(substr(alltrim(M.cString),9))
Endif

Ahora si, todo en orden, De nuevo Te doy la gracias, 🙏 , y a toda esta gente maravillosa que esta en este grupo.
En el botón ESCANEAR, Cambie el código con lo siguiente:
*-----------------------------------------------------------------------------
lcFicheroAbrir = Addbs(Fullpath(Curdir())) + "capturaqr.txt"
Comando = Addbs(Fullpath(Curdir())) + "zbar.bat"
TRY
   DELETE FILE (lcFicheroAbrir)
   DECLARE INTEGER ShellExecute IN shell32.dll ;
      INTEGER hwnd,;
      STRING lpOperation, ;
      STRING lpFile, ;
      STRING lpParameters, ;
      STRING lpDirectory, ;
      INTEGER nShowCmd
   ShellExecute(0, "open", Comando, "", "", 0)
CATCH
   MESSAGEBOX("Posiblemente ya tiene abierta la utilidad ZBAR")
ENDTRY
thisform.chkautomatico.enabled = .t.
thisform.chkautomatico.Value = .t.
*--------------------------------------------------------------------------------
con el fin de quitar el CMD, esto por si alguien usa esta ejemplo.
Un Cordial saludo.
 

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

HernanCano

unread,
Sep 22, 2023, 7:01:46 PM9/22/23
to Comunidad de Visual Foxpro en Español
Tanto el oShell.Run como el ShellExecute funcionan igual.

¿Cuál fue tu motivación para cambiarlo?

adem adem

unread,
Sep 23, 2023, 7:49:07 AM9/23/23
to publice...@googlegroups.com
Buenos días Hernan;
Lo he cambiado por un motivo sencillo, aunque se puede lograr ocultar el cmd de muchas maneras incluido con oShell.Run o cambiar la línea de código en el archivo zbar.bat
La foncion oShell.Run de Visual FoxPro no proporciona directamente un parámetro para ocultar la ventana en cambio, en cambio, el parámetro nShowCmd: En la ShellExecute, si se establece en 0, lo oculta
diferencia...! y según he leído
ShellExecute  proporciona un mayor control sobre cómo se ejecuta  programas externos en comparación con oShell.Run aunque en mi caso no es necesario.
oShell.Run: cuando ejecuta un programa o un archivo, espera a que la aplicación se complete antes de continuar la ejecución del código VFP.
En otras palabras, VFP esperará a que el programa o archivo ejecutado termine antes de que pueda continuar con el siguiente código.
ShellExecute: cuando abre un archivo o ejecuta un programa, no espera.  y permite que la aplicación externa se ejecute en segundo plano mientras el código de VFP continúa ejecutándose.
Creo que la diferencia está en cómo manejan la ejecución de aplicaciones externas.
En fin, soy solo un alumno que acaba de empezar, y espero aprender de ustedes mucho más,
Un Cordial saludo.

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

HernanCano

unread,
Sep 23, 2023, 7:31:06 PM9/23/23
to Comunidad de Visual Foxpro en Español
Interesante.
Anotado.
Gracias por compartir.

olga lidia arias guzman

unread,
Dec 29, 2023, 1:21:57 PM12/29/23
to Comunidad de Visual Foxpro en Español
Buenas tardes, una consulta para saber si de plano me cambio a usar ZINT de no haber otra solución.  Actualmente también uso 
FoxBarcodeQR
  para generar códigos QR en mis aplicaciones, corriendo en VFPA 10.1 a 32 bits...  me gustaría aprovechar todo el potencial de VFPA 10.1 o 10.2, pero a 64 bits... Ya tengo todas las "librerías" necesarias para poder compilar en 64 bits MENOS, algo que sustituya a foxbarcodeqr... esto porque los DLL que usa están en 32 bits y no puedo utilizar la opción de generar el código usando la API de Google para no depender de internet... estuve viendo por ahí una opción publicada en estos grupos que hicieron con kodenet, pero tampoco quisiera usarla... entonces la pregunta es:  ¿Hay en "algún lugar" versión de 64 bits de los dlls que usa FoxBarcodeQR?  En lo personal creo que Chen ha hecho un trabajo excepcional y por eso le pago mi anualidad, pero siento que para aprovechar todo su trabajo, la opción de 64 bits es "the wat to go" como dicen los gringos.  De antemano muchas gracias por su orientación y que tengan felicies fiestas!!
Reply all
Reply to author
Forward
0 new messages