Verrification de code EAN8/13 en D
March 6th, 2008
Voici une fonction écrite en D qui dit si oui ou non la chaine soumise en entrée est un code EAN correct : on verrifie le nombre de caractères, que tout les caractères sont bien des chiffres, et on regarde que la checksumm est bien la bonne.
C:
-
bool eanCheck(string ean) {
-
int summ = 0;
-
-
if(ean.length != 13 && ean.length !=8) return false;
-
-
int n = ean.length - 1;
-
for(int i=0; i<n; i+=2) {
-
if (ean[i] <48 || ean[i]> 57) return false;
-
summ += ean[i] - 48;
-
}
-
for(int i=1; i<n; i+=2) {
-
if (ean[i] <48 || ean[i]> 57) return false;
-
summ += 3 * (ean[i] - 48);
-
}
-
-
summ = 10 - (summ % 10);
-
-
if (summ == ean[n] - 48) return true;
-
else return false;
-
}
Note: pour fonctionner, ce programme requiet une entrée dans un charset compatible ASCII (iso-8859-* ou utf-8 par exemple)
Entry Filed under: Programmation, D
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed