ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

fonction de calcul d'une clé rib   



L'auteur

eric leissler
France France
Membre Simple
# 0000002784
enregistré le 06/03/2010
http://www.aumeric.fr
68 ans
LEISSLER Eric
85290 MORTAGNE SUR SEVRE
de la société AUMERIC LOGICIELS
Fiche personnelle


Note des membres
20/20
1 vote


Contributions > 01 - PRG : Programmation > Calculs de clefs et Checksums (rib, iban, ...)

fonction de calcul d'une clé rib
# 0000000054
ajouté le 15/11/2004 09:38:11 et modifié le 24/05/2010
consulté 15750 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0
FPW 2.6

Description

Juste une petite fonction a qui l'on envoie un numéro de compte et

qui retourne la clé rib

parce que j'en avais besoin, et que je n'ai pas trouvé.

Donc si elle peut rendre service.

atoutfoxment votre

Eric

Code source :
function clerib(nu_compte)
local premier,deuxieme,troisime,prerest,deuxrest,troisrest,valretour
***********************************************************************
*  la fonction doit recevoir le numéro de compte en parametres
*  5 digits pour le code établissement
*  5 digits pour le code guichet
*  11 digits pour le numéro de compte   soit 21 digits au total
*  la clé rib est renvoyé par la fonction en numérique
*
*  Pour les comptes CCP les lettres sont remplacées par des chiffres
*  selon la convention ci_dessous
*
*    A=1   j=1 b=2 k=2 etc..etc
***********************************************************************

* changement des lettres en chiffres grace à la fonction strtran
m.nu_compte=ChrTran(m.nu_compte,"AJBKSCLTDMUENVFOWGPXHQYIRZ","11222333444555666777888999")
* vérification du numéro de compte 21 digits en tout
if len(m.nu_compte)#21
  messagebox(" Numéro de compte non valide")
  return "0"
endif
m.valretour="0"
* calcul de la clé
m.nu_compte=m.nu_compte+"00"
m.premier=substr(m.nu_compte,1,7)
m.deuxieme=substr(m.nu_compte,8,8)
m.troisieme=substr(m.nu_compte,16,8)
m.prerest=alltrim(str(mod(val(m.premier),97)))
m.deuxieme=m.prerest+m.deuxieme
m.deuxrest=alltrim(str(mod(val(m.deuxieme),97)))
m.troisieme=m.deuxrest+m.troisieme
m.troisrest=alltrim(str(mod(val(m.troisieme),97)))

m.valretour=97-val(m.troisrest)
m.valretour=alltrim(str(m.valretour))

return m.valretour

Commentaires
le 21/11/2004, eric leissler a écrit :
BONJOUR A TOUS
La fonction de calcul de la clé rib fonctionne également pour le calcul de la clé IBAN .
Ce n'est donc pas typiquement francais mais européen.
Plusieurs pays utilisent de standard, c'est le cas beaucoup de pays africains, dont la Mauritanie.


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3