[CODE BARRE] récupérer les caractères codés
Résolu/Fermé
arnolem
-
2 mars 2006 à 12:47
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011 - 2 mars 2006 à 20:51
arnolem Messages postés 79 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 8 juillet 2011 - 2 mars 2006 à 20:51
A voir également:
- [CODE BARRE] récupérer les caractères codés
- Codes ascii - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
3 réponses
blux
Messages postés
25978
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
19 avril 2024
3 287
2 mars 2006 à 13:49
2 mars 2006 à 13:49
Salut,
le code à barres ne comprend pas de parenthèses, donc ton problème n'est pas là, mais plutôt dans le traitement que tu veux faire, il te faut passer par un module de "découpage" de la chaine.
Je suppose que les longueurs des sous-entités sont fixes, il te suffit d'utiliser les fonctions mid,left, right pour retrouver tes petits...
Ou alors, je n'ai pas compris le problème...
le code à barres ne comprend pas de parenthèses, donc ton problème n'est pas là, mais plutôt dans le traitement que tu veux faire, il te faut passer par un module de "découpage" de la chaine.
Je suppose que les longueurs des sous-entités sont fixes, il te suffit d'utiliser les fonctions mid,left, right pour retrouver tes petits...
Ou alors, je n'ai pas compris le problème...
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
856
2 mars 2006 à 16:31
2 mars 2006 à 16:31
Bonjour,
normalement, tes identifiants de données induisent la longueur des données qui les suivent :
(00) = 18 chiffres
(11) = 6 chiffres(date yymmdd)
(30) = 8 chiffres
mais parfois ne fournissent qu'un maximum :
(10) <= 20 caractères
(21) <= 20 caractères
....
pour les premiers, il suffit d'extraire les séquences de caractères avec du STXT() dans excel
pour les seconds, il faut repérer le séparateur FNC1qui délimite un message de longueur variable. Ensuite tu réutilises les STXT().
Certains identifiants de données sont codés sur plus de 2 caractères.
Pour "l'identification" de ceux-ci, tu peux passer par une table excel à 3 colonnes :
la première contiendrait l'identifiant de données
la deuxième indiquerait la taille de ce qui suit cet identifiant
la troisième pour l'aspect fixe ou variable des données
peut-être que le type de données serait utile....
sur cette base tu attaques ta chaîne de caractères avec les 2 premiers caractères, tu regardes si cette séquence est dans ta table.
si non t'en prends 3, puis 4, etc...
lorsque tu trouves ton bonheur tu extraits ta chaîne de caractères grâce aux infos de ta table excel.
tu déplaces ton pointeur et tu attaques l'identifiant de données suivant.
tu veux du code ou ça te suffit?
cordialement
normalement, tes identifiants de données induisent la longueur des données qui les suivent :
(00) = 18 chiffres
(11) = 6 chiffres(date yymmdd)
(30) = 8 chiffres
mais parfois ne fournissent qu'un maximum :
(10) <= 20 caractères
(21) <= 20 caractères
....
pour les premiers, il suffit d'extraire les séquences de caractères avec du STXT() dans excel
pour les seconds, il faut repérer le séparateur FNC1qui délimite un message de longueur variable. Ensuite tu réutilises les STXT().
Certains identifiants de données sont codés sur plus de 2 caractères.
Pour "l'identification" de ceux-ci, tu peux passer par une table excel à 3 colonnes :
la première contiendrait l'identifiant de données
la deuxième indiquerait la taille de ce qui suit cet identifiant
la troisième pour l'aspect fixe ou variable des données
peut-être que le type de données serait utile....
sur cette base tu attaques ta chaîne de caractères avec les 2 premiers caractères, tu regardes si cette séquence est dans ta table.
si non t'en prends 3, puis 4, etc...
lorsque tu trouves ton bonheur tu extraits ta chaîne de caractères grâce aux infos de ta table excel.
tu déplaces ton pointeur et tu attaques l'identifiant de données suivant.
tu veux du code ou ça te suffit?
cordialement
arnolem
Messages postés
79
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
8 juillet 2011
10
2 mars 2006 à 16:41
2 mars 2006 à 16:41
merci ,non je comprend, bon moi c'est pour faire une application en VisualBasic.net donc la partie excel ne m'intéresse pas mais pour le principe c'est presque bon.
Dans le cas ou la longueur des données est fixe, il n'y a pas de problème.
Dans le cas ou c'est variable, je récupère le FNC1, (c'est bien se qui m'est renvoyé en tant que "]", si c'est ça, pas de soucis non plus.
Pour resoudre la taille du AI lui meme, la j'ai toujours un truc à eclaircir.
- Si la chaine commence par "0123"
0 n'existe pas
01 existe
012 n'existe pas
0123 n'existe pas
--> c'est donc "01" mais est il possible que dans un cas, il y ai plusieur possibilité, par exemple que "012" soit un code existant ?
merci
Dans le cas ou la longueur des données est fixe, il n'y a pas de problème.
Dans le cas ou c'est variable, je récupère le FNC1, (c'est bien se qui m'est renvoyé en tant que "]", si c'est ça, pas de soucis non plus.
Pour resoudre la taille du AI lui meme, la j'ai toujours un truc à eclaircir.
- Si la chaine commence par "0123"
0 n'existe pas
01 existe
012 n'existe pas
0123 n'existe pas
--> c'est donc "01" mais est il possible que dans un cas, il y ai plusieur possibilité, par exemple que "012" soit un code existant ?
merci
arnolem
Messages postés
79
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
8 juillet 2011
10
2 mars 2006 à 16:54
2 mars 2006 à 16:54
Par exemple, d'après le site : http://www.eannet-france.org/fille/b/b33.htm
on a les plages suivante de 31nn à 36nn
on peux donc avoir les AI suivant :
337
3370
Dans se cas, il est impossible de différencier les deux AI dans le code suivant :
337023561
car 337 est possible mais aussi 3370
c'est donc soit une Mesures, soit un Kilos au mètre carré
on a les plages suivante de 31nn à 36nn
on peux donc avoir les AI suivant :
337
3370
Dans se cas, il est impossible de différencier les deux AI dans le code suivant :
337023561
car 337 est possible mais aussi 3370
c'est donc soit une Mesures, soit un Kilos au mètre carré
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
856
2 mars 2006 à 20:45
2 mars 2006 à 20:45
Bonsoir,
non, il ne doit pas y avoir de doublons.
D'après ton lien, effectivement, il semble qu'il y ait chevauchement mais d'après http://www.quartet.fr/DemoCB/Doc_Ean128.pdf ça ne se produit pas.
Donc je préfère le 2ème lien ! (:-)
Pour le FNC1, c'est peut-être ton caractère ], il est défini aprés le start code. J'ai vu des FNC1 représenté par des Ü, des codes 193 ou 134.
A+
non, il ne doit pas y avoir de doublons.
D'après ton lien, effectivement, il semble qu'il y ait chevauchement mais d'après http://www.quartet.fr/DemoCB/Doc_Ean128.pdf ça ne se produit pas.
Donc je préfère le 2ème lien ! (:-)
Pour le FNC1, c'est peut-être ton caractère ], il est défini aprés le start code. J'ai vu des FNC1 représenté par des Ü, des codes 193 ou 134.
A+
arnolem
Messages postés
79
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
8 juillet 2011
10
2 mars 2006 à 20:51
2 mars 2006 à 20:51
Bon ben je te remerci, je vais aller dans ce sens maintenant que j'en suis sur.
Pour le caractère, oui c'est bien le premier caractère mais il n'apparait plus depuis que j'ai reprogrammé le laser.
Encore merci a tous.
je cloture la discussion
Pour le caractère, oui c'est bien le premier caractère mais il n'apparait plus depuis que j'ai reprogrammé le laser.
Encore merci a tous.
je cloture la discussion
2 mars 2006 à 15:03
Tu a raison, les parenthèses ne sont pas codées en barre.
J'ai pensé à vérifier la chaine de caractère afin de retrouver les id et leur valeurs, le problème c'est que je ne peux pas etre sûr que les champs sont de longeur fixe, et je ne sais pas non plus si les id sont codés en 1,2,3 ou 4 caractères (par exemple 21 = serial number et 8005 = prix par unité de mesure).
Je sais qu'une chaine codée en EAN128 est formée d'un ainsi :
[Debut][FNC1][ID][DONNES]
le problème c'est que je ne récupère pas le FNC1 afin de délimiter les ID et les valeurs
2 mars 2006 à 15:28
http://www.quartet.fr/cbc128.html
http://grandzebu.net/informatique/codbar/code128.htm
Dans ton exemple, sur quels critères te bases-tu pour dire que 01, 10, 11 et 30 sont les séparateurs ?
2 mars 2006 à 16:14
Il sont présent dans la chaine mais les parenthèse ne sont pas codé, par contre j'ai cru comprendre que les champs sont de taille fixe pour certain (donc la pas de problème) et que pour les champs variable, il y avait un caractère spéciale à la fin. Donc si c'est bien ça je pense m'en sortir en faisant un petit traitement de chaine.
Par contre les variables sont des chiffres de 1,2,3, ou 4 caractère, je ne peux pas savoir que la premiere variable de ma chaine a 1, 2, 3 ou 4.
par exemple :
0112345678901234105S4781]110411133012345678
ma variable du premier champs est "01", mais ça pourrai tres bien etre 0 ou 011 ou bien 0112.
Le seule truc que j'ai trouvé c'est que dans se cas, seul la variable "01" existe, les autres ne sont pas répertorié.
mon problèmes est opur un code qui commence par :
37012569853...
on peux avoir soit "3" soit "37" soit "370" qui sont tous des code valide.
tu vois le problème ?