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.
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.