Test de validité ean13

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 924 fois - Téléchargée 15 fois

Contenu du snippet

Bonjour,

Voici une petite fonction qui permet de calculer l'intégrité d'un code barre EAN13.

Remarque : Les MDDs (Marques De Distributeur) peuvent être reconnues comme invalide.

Pour réaliser cette fonction j'espère avoir bien compris la méthode provenant du site GS1 (voir en bas de page) :

http://www.gs1.org/barcodes/support/check_digit_calculator

Pour la suite, je dois effectuer des tests sur une fonction de décodage poids/prix à partir d'un code barre de supermarché...

Source / Exemple :


Function EAN13_CheckDigit(input:string):Boolean;

Var
X,KeyCalc:integer;
int_extract: Array of integer;

begin
 keycalc:=0;
 setlength(int_extract,length(input));

 For x:=0 to length(input)-1 do
   int_Extract[x]:=strtoint(input[x+1]);

 For x:=0 to length(input)-2 do
   if odd(x) then keycalc:=keycalc+int_extract[x]*3 else
     keycalc:=keycalc+int_extract[x];

 keycalc:=10-(keycalc mod 10);

 if int_extract[12]=keycalc then result:=true else
 result:=false;
end;

Conclusion :


Après divers essais ceci semble fonctionner, veuillez bien lire la remarque sur les MDDs...

Bon coding.

A voir également

Ajouter un commentaire

Commentaires

ACHPI32
Messages postés
50
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
9 mai 2009
-
Le composant CODE BARRE39-EAN13-EAN8 de Dvarrel effectue le calcul de la clé de contrôle.
nakos91
Messages postés
13
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
11 novembre 2010
-
Si les marques MDD utilisent des EAN13 ils répondront obligatoirement à la norme sinon ce ne sont pas des EAN , les codes ne feront 13 caractères.
ACHPI32
Messages postés
50
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
9 mai 2009
-
Bonsoir,

Sans certitude de la marque MDD, il me semble que j'ai eu un invalide avec un produit U, ayant bien 13 caractères donc sous forme d'EAN.

Je n'ai pas eu de soucis avec les marques.

Bon coding
nakos91
Messages postés
13
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
11 novembre 2010
-
je suis responsable des systèmes d'encaissement pour des supermarchés mais pas système U; mais je peux t'affirmer que tout code barre à 13 chiffres est un ean 13 sauf si c'est un code à 6 ou 8 ou 10 chiffres que tu complètes à 13 chiffres avec des 0 devant, là, la règle n'est pas la même car en fait ce sont des codes UPC que tu transformes en EAN13
ACHPI32
Messages postés
50
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
9 mai 2009
-
Bah la tu vois c'est le genre de réponse que j'aime bien ! (ceci dit je garde un réserve quand même) ;-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.