Sunday, May 08, 2005

modulo 10

Calcul du chiffre-clé d'après le modulo 10, récursif

Pour le calcul du chiffre de contrôle dans des données des banques ou de la poste, un algorithme nommé "modulo 10 récursif" est parfois utilisé. La documentation des banques que j'ai vue présente un graphique démentiel et incompréhensible pour ce calcul. C'est utilisé dans des machins comme les bulletins "ESR", "BESR", "BVR", les numéros de compte etc.

Voilà une version toute simple en Perl, adaptée à partir des versions C et Basic de cette page.

sub mod10 {
# take number without control digit, return control digit
my @nums = split //, shift;
my @T = (0, 9, 4, 6, 8, 2, 7, 1, 3, 5);
my $n = 0;

for (@nums) {
$n = $T[ ($n + $_) % 10 ];
}
return (10 - $n) % 10;
}

C'était finalement tout simple. Les gens des banques doivent être des gens bizarres...

Labels:

3 Comments:

Anonymous Anonymous said...

Salut,

Cool d'avoir trouver ce code ... mais je cherche un version php, qui générerai completement les numéro de BVR. T'aurai pas une idée ?

Merci d'avance

19 August, 2006 00:21  
Anonymous Anonymous said...

Bonjour

Je cherche un logiciel installable sur le poste de la bibli pour calculer des clés Modulo10. est-ce que vous en connaissez, svp ?

Sinon, il y a cette page qui peut vous intéresser :
http://www.kalix.ch/bvr/

25 May, 2007 09:41  
Anonymous Clément said...

C'est un peu du "déterrage", mais peut-être que ça pourra aider quelqu'un: une classe en PHP qui génère entièrement la ligne de codage BVR > http://devandco.info/index.php/code/2-php/10-generating-bvr-number-for-swiss-postal-payment

05 January, 2012 17:03  

Post a Comment

<< Home