Bonjour,
Cette petite source vous permettra de calculer une clé RIB
En entrée, vous transmettez un pointeur de chaine
21 caractères minimum, le RIB fourni peut contenir la clé, elle ne sera pas touchée ni vérifiée...
en sortie, renvoie 1 si le calcul a eu lieu, et dans la chaine (3 caractères minimum) pointée par le second argument, on place... la clé
Source / Exemple :
long atoln(int n, const char* s) {
long v=0;
char* p = s;
while(n-->0)
v = v*10 + *(p++)-'0';
return v;
}
unsigned int computeRIBkey(char* s, char* key) {
int i;
char r[21];
if (!s || !key)
return 0;
for (i=0; i<21; i++)
if(s[i]>='0' && s[i]<='9')
r[i] = s[i];
else if(s[i]>='a' && s[i]<='z')
r[i] = '1' + (s[i]-'a')%9;
else if(s[i]>='A' && s[i]<='Z')
r[i] = '1' + (s[i]-'A')%9;
else
return 0;
i = 97-((89*atoln(5, r) + 15*atoln(5, r+5) + 3*atoln(11, r+10))%97);
if (i<10)
key[0] = '0';
else
key[0] = '0'+i/10;
key[1] = '0'+i%10;
key[2] = 0;
return 1;
}
Conclusion :
Après avoir beaucoup utilisé ce site, j'ai piqué la formule ici :
http://marlot.org/util/calcul-de-la-cle-rib.php
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.