Algorithme clé EAN13

Suite à une développement sur WINDEV Mobile 26, je me suis trouvé confronté au problème de calcul de clé pour les codes EAN13. En effet, la dll n’est pas disponible en environnement mobile!!!

Je suis parti de l’algorithme de clé de Luhn avec les spécificités du calcul de l’EAN.

PROCÉDURE GetCleEAN
// Résumé : <Retourne un clé de contrôle EAN>
// Syntaxe :
//[ <Résultat> = ] GetCleEAN(<sNumber> est chaîne)
//
// Paramètres :
// sNumber (chaîne UNICODE) : <code EAN de 12 caractères>
// Valeur de retour :
// entier sur 8 octets : // clé EAN
//
// Exemple :
// GetCleEAN("123456789012")
// retourne = 8
//
PROCÉDURE GetCleEAN(sNumber est une chaîne)
nCheckSum est un entier = 0
nWeight est un entier = 0
nWeightedDigit est un entier = 0
nPos est un entier

POUR nPos = 1 _À_ Taille(sNumber)
// tous les digits impaire en partant de droite x3 sinon x1
nWeight = modulo(nPos,2) = 0 ? 1 SINON 3

nWeightedDigit = Val(Milieu(sNumber, Taille(sNumber) - nPos + 1 , 1)) * nWeight
// on fait la somme des nombres
nCheckSum+=nWeightedDigit
FIN

RENVOYER modulo(10-modulo(nCheckSum,10),10)

C’est simple non?

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*





Enter Captcha Here :