Bonjour à tous,
J'ai une application de vente qui est lit les code à bar des produits pour les identifier. Jusqu 'a là tout va bien sauf que ,il commence à y voir des produits avec les code QR est j'arrive pas à les déchiffrés.
Bonjour à tous,
J'ai une application de vente qui est lit les code à bar des produits pour les identifier. Jusqu 'a là tout va bien sauf que ,il commence à y voir des produits avec les code QR est j'arrive pas à les déchiffrés.
Question bête je m'en excuse ; tu as un scanner 2D ?
C'est une même question cruciale !
Pour avoir maintenu un BackOffice Transversale d'une société alimentant évidemment un POS sur un millier de point de vente, à 1-3 caisses par magasin, ouais passer du Code128C/EAN8/EAN13 vers un QRCode, c'est juste un budget colossal chez DataLogic pour changer tout le parc de douchette classique vers des douchettes 2D (sans compter la logistique et quelques sous-traitants)
voila une réponse encore plus bête, et je m'excuse pas parce que vous m'avez jugé là d'où vous êtes sans aucun outils. Vous parler de scanner 2D? mais chez moi il y que des scnanner chinois sans pilote. Déjà pour les code à bar, j'ai été obligé de reconvertir manuellement les retours des lecteurs code à bar. C'est pareil, pour les Code QR sauf que, je sais que pour les code qr, il ya d'autres informations transmise avec et je voudrais comprendre la trame émit par le code QR comme pour mon exple : des Codes alphabitiques.Question bête je m'en excuse ; tu as un scanner 2D ?
Au moins une webcam ?
Un scanner 2D à l'instar d'un 1D envoie des scancode comme le fait un clavier. Il n'y aucune différence au niveau PC ou application. En bref, c'est du texte.
Le plus simple si tu veux savoir ce que contiennent tes codes QR et que tu n'es pas encore équipé d'un scanner 2D (là une lecture dans le bloc-notes suffirait), prend une photo et charge-là dans ce décodeur.
Bonjour,
ZXing fournit aussi un exemple d'application Delphi pour lire l'image d'un QRCode
A+
Charly
je ne comprend pas ta réponse
mais tu as deux façons de faire
1) utiliser un scanner qui sait déchiffrer des QRCodes lui-même et il est vu par le PC comme un clavier qui va envoyer des séquences de touches, et pour cela il faut qu'il soit correctement configuré
2) utiliser une caméra pour obtenir une image du QRCode et faire le décodage sur le PC
https://github.com/Spelt/ZXing.Delphi
Ben non, j'estime que ce n'est pas un question aussi bête que ça.
Je me bats à chaque fois avec chekkal qui ne nous fourni jamais toutes les informations nécessaires en une seule fois.
Ne serait-ce que la version de Delphi qu'il utilise, l'environnement (FMX/VCL), l'OS etc.
Il croit que tout les lecteurs sont à côté de lui et se rappelle de son environnement particulier (et particulier est le moins que l'on puisse écrire)
Comme l'a répondu Paul la question vague offre deux possibilité
1) utiliser un scanner
2) utiliser une caméra
et même la réponse de chekkal
est étrange, comment, est-il question d'écrire un driver ?mais chez moi il y que des scnanner chinois sans pilote.
donc @aimer_delphi qui écrit
J'espère qu'il s'agissait d'une boutade et non d'une réaction sérieuseVraiment je ne savais pas qu'il existe ce genre de gens sur notre fameux forum. et en plus c'est un Rédacteur/Modérateur vraiment , c'est honteux .
@aimer_Delphi : je ne vois rien de honteux dans le post d'AndnotOr ? peux tu préciser ta pensée ? Qu'y a t il de mal à poser cette question qui peut orienter les réponses ?
A+
Charly
bonjour,
voila, je vai poser la question de la manière la plus simple "bête" , et comme toujours pour mon cas j'aime la pratique pas la théorie. Voilà, j'ai devant mois un produit cosmétique contenant les deux codes (code à bar, code qr), pour le code à bar je sais comment le déchiffrer (&=1,é=2,"=3...ect), mais pour le code qr je ne sais pas comment il faut récupérer la code du produit seulement puisque c'est ce qui m'intéresse vue que le code qr peut contenir d'autres informations.
Bonjour
Et bien, COMME D'HABITUDE, c'est complètement à côté de la plaque.
Cela voudrait donc dire que vous savez lire ce code QR mais que vous ne savez pas en traiter l'information contenue, ce n'est absolument pas ce que laissait entendre votre demande initiale où beaucoup ont compris que vous vouliez décoder le code QR
Du coup, on se penchait sur le comment : avec quel matériel, quelle version de Delphi, en bref quel environnement.
Dans ce nouveau post vous nous répondez que vous voulez extraire une chaine d'un texte obtenu à partir de la lecture d'un code QR !
Encore faudra t-il que ces informations soient normalisées chaque marque pouvant faire ce qu'elle veut j'ai comme un doute !
Dans ce cas nous fournir un échantillon de lecture c'est à dire ce que donne au minimum la lecture d'une dizaine de QR de différentes marques
Ma réponse personnelle sera alors certainement d'utiliser les expressions régulières et là, la version de Delphi a toute son importance D7 demandra des unités à télécharger tandis que les dernières versions ne demandront qu'une utilisation de l'unité system.regularexpressions. Vous comprendrez donc L'IMPORTANCE de l'indication de la version de Delphi utilisée. De même que l'importance d'un "jeu d'essai" pour pouvoir proposer une expression régulière ou du moins vérifier cette possibilité
NB.Alors là j'en reste ébahi qu'un lecteur code barre ne soit pas configurable me dépasse, d'ailleurs on ne sait même pas s'il s'agit d'un lecteur USB ou série ni même sa marque, chinois c'est vague et souvent même les marques connues sont fabriquées en Chine.pour le code à bar je sais comment le déchiffrer (&=1,é=2,"=3...ect)
Idem d'ailleurs pour le lecteur QR
Une tempête dans un verre d'eau...
Euh! Pas moi
Mais à l'arrivée ce n'est ni un problème de décodage, ni un problème de structure mais plutôt de réglage du scanner. Bon passons !..
Puisque chekkal ne trouve plus la doc (!), voilà une p'tite routine qui va convertir ce qui est reçu en fonction des réglages Windows (ici manifestement un clavier Français/France d'après &=1, etc. mais on s'en fiche) dans une autre locale (je suppose clavier US ($409), réglage par défaut du scanner ?)
Utilisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 procedure SwitchCharLayout(var Key :char; aKeyboardLayout :dword = $409); var KL :hKL; Data :word; VK :byte; Shift :boolean; ScanCode :byte; KeyState :TKeyboardState; Output :string; begin KL := LoadKeyboardLayout(IntToHex(aKeyboardLayout, 8), 0); // Décodage complet pour le traitement maj/min, VK seul pas suffisant Data := VkKeyScan(Key); VK := Lo(Data); Shift := Hi(Data) and 1 = 1; ZeroMemory(@KeyState, SizeOf(KeyState)); KeyState[VK] := $80; if Shift then KeyState[VK_SHIFT] := $80; ScanCode := MapVirtualKey(VK, MAPVK_VK_TO_VSC); VK := MapVirtualKeyEx(ScanCode, MAPVK_VSC_TO_VK, KL); SetLength(Output, 10); SetLength(Output, ToUnicodeEx(VK, ScanCode, KeyState, PChar(Output), Length(Output), $4, KL)); if Length(Output) > 0 then Key := Output[1] else Key := #0; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin SwitchCharLayout(Key); end;
Grand classique de l'utilisation d'un mauvais clavier, la proposition de Andnotor pour gérer la conversion d'un clavier US vers clavier FR, en plus en générique surtout avec un OS avec une locale Algérie qui doit être différente.
Curieux que votre douchette ne soit pas fourni avec un Cahier de Code (maintenant un PDF envoyé par mail),
Toute la configuration se fait par le scan d'une suite de code pour adapter les types de code autorisés, adapter la sortie (clavier, caractère de contrôle) ...
Il y a souvent rien de plus que quelques mots en anglais et le code en dessous, c'est sûr si c'est brut en chinois, savoir à quoi correspond chaque code de configuration est défi
Souvent le QRCode quand il est à côté d'un EAN13 par exemple, contient en réalité une URL sur le site de la marque, si ils ont poussé la logique l'URL pointe sur l'adresse de la fiche produit, pour réduire la taille du code, cela utilise des URL compactées qui font la direction vers l'URL réel ... du coup le QRCode ne contient pas de données produit mais juste un alias qui ne servira pas à grande chose en dehors d'un navigateur Web
Il y a une confusion entre
- le support de la donnée : QRCode
- la signification de la donnée : le texte contenu dans le QRCode
Et si l'on peut vous conseiller pour un périphérique de lecture du support pour en extraire la donnée, si vous n'avez pas les spécifications du fabricant de ce qu'il a choisi de mettre dans son QRCode, vous n'irez pas loin
Par exemple, dans l'univers de la logistique, il existe le GS1-128 (UCC/EAN-128) c'est en fait une structuration de la donnée contenu dans le Code128
Les lunetiers ou la pharmacie utilise du GS1 Datamatrix c'est à dire la norme de structuration de la donnée GS1 contenu dans un code DataMatrix
Votre problématique entre le QRCode et le code à barre sur le produit cosmétique ne semble au même niveau !
Sur le code à barre, vous semblez juste avoir un problème mineur de clavier
Sur le QRCode, vous semblez avoir un problème plus important car vous ne connaissez pas la signification de la donnée
Avez-vous un exemple ?
Un bout de texte retourné par votre scanner de QRCode ?
Une photo du QR Code, on verra vite ce qu'il contient !
alors jusque "j'ai devant moi un produit cosmétique contenant les deux codes"...je comprend
mais comment déchiffres-tu le code à bar ? à la main ? avec un lecteur ? avec une API ? avec une zone de saisie qui reçoit les séquences de caractères ?
et pour le QRCode comment comptes-tu faire ? ton scanner sait-il lire un QRCode, via une API ? une saisie clavier ?
la conversion &=1, é=2 c'est typiquement un problème de réglage de scanner qui envoie des séquences pour une clavier US
un QRCode contiendra également des lettres, mais s'il a le même défaut tu auras une inversion de AZ et QW et de , et M
Bonsoir,
Je vous fournirais une image du produit avec le code à bar et le Code QR dés que je serais sur site, cependant Shaillletroll à compris mon problème
Voilà maintenant, comment savoir si le Code QR comporte ou non le code du produit?Souvent le QRCode quand il est à côté d'un EAN13 par exemple, contient en réalité une URL sur le site de la marque, si ils ont poussé la logique l'URL pointe sur l'adresse de la fiche produit, pour réduire la taille du code, cela utilise des URL compactées qui font la direction vers l'URL réel ... du coup le QRCode ne contient pas de données produit mais juste un alias qui ne servira pas à grande chose en dehors d'un navigateur Web
bonjour,
voici une capture d'image sur un produit contenant les deux codes en même temps
Perso je ne vous demande pas une photo, mais ce qui est lu et pas seulement sur un article d'une seule marque mais plutôt divers articles
exemple pour une boite de doliprane j'ai ceci :
_010340093694612517220424102620720
sans connaitre l'encodage utilisé par les fournisseurs pharmaceutiques dur de trouver un code GTIN (d'ailleurs il n'y en a plus) toutefois à côté de ce code il y a écrit
03400936946125
LOT 2620720
EXP 04-2022
première constatation le premier numéro en contient 14 chiffres donc ce n'est pas un code GTIN13 (ou EAN13) (que j'ai mis en bleu), maintenant, comme cela débute par un 0
deuxième constatation il semble possible de récupéré le numero de lot (que j'ai mis en rouge)
en vert il y a un 2204 qui ressemble au numéro de lot
Mais ce n'est que de la devinette pas une chose exacte
un autre produit (même fabricant) donne
_01034009301730461723043010KT8483_2110647347788028
PC 03400930173046
SN 10647347788028
LOT KT8483
EXP 04/2023
La déduction que j'ai faite semble donc à peu près correcte si on étudie la parie en bleu en faisant abstraction du 0 pour être conforme à du GTIN13 on a 13 chiffres dont un de contôle, j'ai pu vérifié que le code de contrôle était correct
du coup, il est fort probable que ce fournisseur dont lde code serait 340093 (cf https://fr.wikipedia.org/wiki/EAN_13) utilise du GTIN14
à partir de ces informations il est alors possible de créer un expression régulière permettant d'obtenir le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part '^.{4}(\d{13})'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager