Accueil > Forum > > > > Urgent projet fin d'études thème:Construire le code barre.
Urgent projet fin d'études thème:Construire le code barre.
vendredi 25 mars 2005 à 10:34:18 |
Urgent projet fin d'études thème:Construire le code barre.

amazir
|
Chèr amis j'ai un projet fin d'études dont je ne sais pas oû commencer .Veuillez m'aider, merci infiniment.
Projet
Enonce:
Le principe est le suivant: on considère dans cet exemple le système EAN-13(Europeen Article Numbring) standardise au niveau européen en 1997. C'est un système a 13 chiffres. Les chiffres 1 et 2 indiquent le pays, (la France: de 30 a 39, Maroc 61) les chiffres 3,4,5,6 et 7 indiquent le fabricant du pays. Cela signifie 99999 entreprises différentes possibles. Les chiffres 8,9,10,11 et 12 indiquent le produit du fabricant (99999 produits possibles). Le 13e est un chiffre de vérification-II est calcule comme suit:
Si l'on numérote les 12 chiffres depuis la gauche, on ajoute tous les chiffres d'ordre impairs, cela donne la variable a; on additionne tous les chiffres d'ordre pairs cela donne la variable b; puis on calcule a+3b, on soustrait ce résultat du prochain plus grand multiple de 10 et cela donne le 13e chiffre.
Exemple:
La bouteille d'eau minérale de 150 cl de marque Sidi Ali s'écrira dans le système EAN-13 6111035000058. 6 et 1 indiquent le pays, le Maroc; 11035 le fabricant " Les Eaux Minérales d'Oulmes";00005 le produit.
Indications:
Pour calculer a on considère les positions impairs. Cela signifie 6 + 1 + 0 + 5 + 0 + 0 = 12.
Pour la variable b on prend les positions paires, cela signifie 1 + 1 + 3 + 0 + 0 + 5 = 10.
a + 3b = 42. Or, 50 est le plus grand multiple de 10 le plus proche de 42.
50 - 42 = 8, donc le 13e chiffre est la valeur 8.
La façon dont on code a partir de ces chiffres est la suivante: on considère une clé. La clé est donnée par le premier chiffre. Ici, dans notre exemple, il s'agit du nombre . On considère alors la ligne correspondante (ici, 6) dans la table de décodage des codes barres. On a dans la ligne correspondante la description du 13e chiffre.
Ainsi le 13e chiffre de la ligne 6 nous indique la clé ABBBAA.
Les six chiffres suivants sont pris dans la table conformément a la clé. Dans l'exemple, les chiffres suivants seront pris dans les lignes des chiffres(111035) et dans les colonnes A, B, puis B, puis B, puis A, puis A. Chacune de ces entrées dans la table est sous la forme de sept bits. Il y aura donc 6x7= 42 bits qui seront codes de cette façon-la. Ensuite, les six chiffres restant(000058) sont codes en prenant les entrées dans la colonne C et on obtient 42 bits supplémentaires. Afin de permettre de repérer les positions de début, de milieu et de fin. On ajoute la séquence 101 au début, 01010 au milieu, et 101 a la fin. On aura donc un total de 95 bits qui représentent le code.
au niveau graphique, il s'agira tout simplement de considérer que, dans cette suite de 95 bits, les 0 correspondent a un espace vide et les 1 a une ligne ou bande noire.
La table de code est données ci-dessous :
|
Chiffre |
Groupe A |
Groupe B |
Groupe C |
13e chiffre |
|
0 |
0001101 |
0100111 |
1110010 |
AAAAAA |
|
1 |
0011001 |
0110011 |
1100110 |
AABABB |
|
2 |
0010011 |
0011011 |
1101100 |
AABBAB |
|
3 |
0111101 |
0100001 |
1000010 |
AABBBA |
|
4 |
0100011 |
0011101 |
1011100 |
ABAABB |
|
5 |
0110001 |
0111001 |
1001110 |
ABBAAB |
|
6 |
0101111 |
0000101 |
1010000 |
ABBBAA |
|
7 |
0111011 |
0010001 |
1000100 |
ABABAB |
|
8 |
0110111 |
0001001 |
1001000 |
ABABBA |
|
9 |
0001011 |
0010111 |
1110100 |
ABBABA |
Travail a faire :
Pour construire le code barre, il faut demander à l’utilisateur de taper les douze premiers chiffres, puis de vérifier le treizième .
Ensuite, il faut utiliser la table de codage pour convertir en 95 bits ces 13 chiffres.
Pour la représentation graphique, il suffit de faire une boucle qui parcourt le code et d’indiquer une barre verticale pour les bits à 1. Afin d’être sur que l’écran représente correctement les informations, il faudra ajuster la taille à l’écran.
|
|
vendredi 25 mars 2005 à 19:42:09 |
Re : Urgent projet fin d'études thème:Construire le code barre.

GhislainLavoie
|
Salut! J'ai fait un script qui t'aideras certainement a avancé. Pour ce qui est de l'ajustement de la taille de l'écran, je n'ai pas trop saisie.
<html> <head> <title>Untitled</title>
<STYLE type="text/css"> .n0 {background-color:#ffffff;height:40px;width:2px;float:left;} .n1 {background-color:#000000;height:40px;width:2px;float:left;} </STYLE> <script type="text/javascript"> var bitsCode = new Array(10); bitsCode[0] = new Array('0001101','0100111','1110010','000000'); bitsCode[1] = new Array('0011001','0110011','1100110','001011'); bitsCode[2] = new Array('0010011','0011011','1101100','001101'); bitsCode[3] = new Array('0111101','0100001','1000010','001110'); bitsCode[4] = new Array('0100011','0011101','1011100','010011'); bitsCode[5] = new Array('0110001','0111001','1001110','011001'); bitsCode[6] = new Array('0101111','0000101','1010000','011100'); bitsCode[7] = new Array('0111011','0010001','1000100','010101'); bitsCode[8] = new Array('0110111','0001001','1001000','010110'); bitsCode[9] = new Array('0001011','0010111','1110100','011010'); function EAN13() { cb = document.form.codeBarre.value; divEAN = document.getElementById("EAN13CODE"); divEAN.innerHTML=""; codes = new Array(); for (var i=a=b=0;i<12;i++) { codes[i] = eval(cb.charAt(i)); if (i%2) b+=codes[i]; else a+=codes[i]; } codes[12] = 10-((a+(b*3))%10); var bits = getBits(codes); bit = bits.split(""); for (var i=0;i<bit.length;i++) { el = document.createElement("div"); el.className = 'n'+bit[i]; divEAN.appendChild(el); } } function getBits(codes) { var bits = "101"; var cle = bitsCode[codes[0]][3].split(""); for (var i=1;i<7;i++) bits += bitsCode[codes[i]][cle[i-1]]; bits += "01010"; for (var i=7;i<13;i++) bits += bitsCode[codes[i]][2]; bits += "101"; return (bits); }
</script> </head> <body> <form name="form"> <input name="codeBarre" type="text" value="611103500005"> <input type="button" value="Valider" onclick="EAN13()"> </form> <div id="EAN13CODE"></div> </body> </html>
A+, Ghislain
|
|
vendredi 25 mars 2005 à 20:39:43 |
Re : Urgent projet fin d'études thème:Construire le code barre.

GhislainLavoie
|
Oups... un petit bug! Remplacer cet ligne : codes [12] = 10-((a+(b*3))%10);
par ceci :
reste = ((a+(b*3))%10); codes[12] = 10-(reste==0?10:reste);
A+, Ghislain
|
|
samedi 26 mars 2005 à 16:55:27 |
Re : Urgent projet fin d'études thème:Construire le code barre.

GhislainLavoie
|
Bonjour!
J'ai eu le temps de fignoler le script pour l'affichage des nombres et allonger les lignes séparatrices.
<html> <head> <title>Untitled</title> <STYLE type="text/css"> .n0 {background-color:#ffffff;height:40px;width:1px;float:left;} .n1 {background-color:#000000;height:40px;width:1px;float:left;} .l1 {background-color:#000000;height:50px;width:1px;float:left;} .nombre {position:absolute;font-size:14px;font-family:times new roman} .nombre1 {position:relative;font-size:14px;font-family:times new roman;float:left;top:40px;} .barreCode {position:absolute;top:50px;left:50px;} </STYLE> <script type="text/javascript"> var bitsCode = new Array(10); bitsCode[0] = new Array('0001101','0100111','1110010','000000'); bitsCode[1] = new Array('0011001','0110011','1100110','001011'); bitsCode[2] = new Array('0010011','0011011','1101100','001101'); bitsCode[3] = new Array('0111101','0100001','1000010','001110'); bitsCode[4] = new Array('0100011','0011101','1011100','010011'); bitsCode[5] = new Array('0110001','0111001','1001110','011001'); bitsCode[6] = new Array('0101111','0000101','1010000','011100'); bitsCode[7] = new Array('0111011','0010001','1000100','010101'); bitsCode[8] = new Array('0110111','0001001','1001000','010110'); bitsCode[9] = new Array('0001011','0010111','1110100','011010'); function EAN13() { cb = document.form.codeBarre.value; if (isNaN(cb)||cb.length!=12) {alert("Un nombre de 12 chiffres seulement");return false;} divEAN = document.getElementById("EAN13CODE"); divEAN.innerHTML=""; codes = new Array(); for (var i=a=b=0;i<12;i++) { codes[i] = eval(cb.charAt(i)); if (i%2) b+=codes[i]; else a+=codes[i]; } reste = (a+(b*3))%10; codes[12] = 10-(reste==0?10:reste); var bits = getBits(codes); bit = bits.split(""); el = document.createElement("div"); el.innerHTML= cb.charAt(0); el.className = "nombre1"; divEAN.appendChild(el); for (var i=0;i<bit.length;i++) { el = document.createElement("div"); longue =( i==0||i==2||i==46||i==48||i==92||i==94); el.className = (longue?'l':'n')+bit[i]; divEAN.appendChild(el); if (i==3||i==50) { el2 = document.createElement("div"); el2.innerHTML=(i==3)?cb.substr(1,6):cb.substr(7,6)+codes[12]; el2.className = "nombre"; el2.style.left = el.offsetLeft+"px"; el2.style.top = el.offsetHeight+"px"; divEAN.appendChild(el2); } } } function getBits(codes) { var bits = "101"; var cle = bitsCode[codes[0]][3].split(""); for (var i=1;i<7;i++) bits += bitsCode[codes[i]][cle[i-1]]; bits += "01010"; for (var i=7;i<13;i++) bits += bitsCode[codes[i]][2]; bits += "101"; return (bits); }
</script> </head> <body> <form name="form"> <input name="codeBarre" type="text" maxlength="12" value="611103500005"> <input type="button" value="Valider" onclick="EAN13()"> </form> <div class="barreCode" id="EAN13CODE"></div> </body> </html>
A+, Ghislain
|
|
lundi 28 mars 2005 à 12:48:47 |
Re : Urgent projet fin d'études thème:Construire le code barre.

amazir
|
Bonjour; C'est trés gentil pour votre aide, si j'aurai besoin de quelque chose puis je vous contacter? Voici mon e-mail: taofiq_f@hotmail.commerci infiniment.
|
|
mardi 2 mai 2006 à 15:53:58 |
Re : Urgent projet fin d'études thème:Construire le code barre.

bachir18111982
|
Bonjour
si j'ai une image qui contient des barres codes , comment je peux decoder cette image.je travaille mon projet sur le vb.net Veuillez m'aider, merci infiniment.
|
|
Cette discussion est classée dans : code, chiffre, chiffres, bits, 13e
Répondre à ce message
Sujets en rapport avec ce message
Ne permettre la saisie QUE des chiffres (et touches tab, suppr, backspace, ...) [ par buzza01 ]
Bonjour, je viens vous voir car je n'arrive pas à faire en sorte que "ma" fonction ne permette la saisie [u]que[/u] de chiffres. Il y a une fonctio
seulement deux chiffres apres la virgule. [ par souvent ]
Bonjour, je voudrais limiter l'insertion d'un chiffre jusqu'a deux chiffres apres la virgule, mon code marche mais si je veux rajouter un chiffre avan
Calcule Numéro de Sécurité Sociale [ par Morocco13 ]
Bonjour, ci-dessous un code qui calcule la clé du numéro de sécurité sociale français.Il n'y a aucun problème dans le code, mais ma question serait do
message de confirmation [ par marocmarocmaroc ]
Bonjour,j'ai créé un code sert à eviter les doublons dans ma table voilà le code { $connect=mysql_connect("localhost", "root", "") or die ("Eche
code pour editeur de texte avec prise en charge du copier/coller gardant la mise en forme [ par lolhangman ]
Bonjour, je cherche du code pour faire un editeur de texte qui prend en charge le copier coller avec la mise en forme et les image. Comme c'est fait
Bulles d'aide du site code source [ par matta6666 ]
BonjourVous avez de superbes bulles d'aide sur votre site au rubrique <
Popup en javascript pour acrobat pro [ par corail51110 ]
Bonjour à tous, Le code javascript utilisé dans acrobat étant différent de celui utilisé pour le web, j'ai un petit soucis :J'ai un plan de commune
PROBLEME DIV [ par elmarko ]
Salut,je sors juste d'une formation rapide sur "dream/code html/css" de base... et j'ai besoin d'une explication sur l'attribution d'un comportement à
comment recuperer le code source [ par cuiere ]
salut,je suis nouveau dans le domaine du web,et j ai une question:comment pourrai je recuperer le code source d une page web proteger par un mot de pa
Chemin vers une page PHP [ par Peoxus ]
Bonjour, Je ne sais pas si c'est bien ici que je dois poser ma question stupide. J'ai suivi le tuto http://www.tutorialspoint.com/ajax/ajax_database
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|