Posts filed under 'D'

Verrification de code EAN8/13 en D

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:
  1. bool eanCheck(string ean) {
  2.     int summ = 0;
  3.    
  4.     if(ean.length != 13 && ean.length !=8) return false;
  5.    
  6.     int n = ean.length - 1;
  7.     for(int i=0; i<n; i+=2) {
  8.         if (ean[i] <48 || ean[i]> 57) return false;
  9.         summ += ean[i] - 48;
  10.     }
  11.     for(int i=1; i<n; i+=2) {
  12.         if (ean[i] <48 || ean[i]> 57) return false;
  13.         summ += 3 * (ean[i] - 48);
  14.     }
  15.    
  16.     summ = 10 - (summ % 10);
  17.    
  18.     if (summ == ean[n] - 48) return true;
  19.     else return false;
  20. }

Note: pour fonctionner, ce programme requiet une entrée dans un charset compatible ASCII (iso-8859-* ou utf-8 par exemple)

Add comment March 6th, 2008


Calendar

September 2008
M T W T F S S
« Aug    
1234567
891011121314
15161718192021
22232425262728
2930  

Posts by Month

Posts by Category