Calculer la clef d'un RIB

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Calculer la clef d'un RIB

Message par Flype »

Voici quelques fonctions bancaires :

1/ vérifie la validité d'un RIB
2/ vérifie la validité d'un N° CB

Code : Tout sélectionner

Procedure.b RIB_Valider(rib.s)  ; Retourne Vrai si la clé du RIB est correcte. 
  
  rib = UCase(rib)
  rib = ReplaceString(rib," ","") 
  rib = ReplaceString(rib,".","") 
  rib = ReplaceString(rib,"-","")
  
  rib = ReplaceString(rib,"A","1") 
  rib = ReplaceString(rib,"B","2") 
  rib = ReplaceString(rib,"C","3") 
  rib = ReplaceString(rib,"D","4") 
  rib = ReplaceString(rib,"E","5") 
  rib = ReplaceString(rib,"F","6") 
  rib = ReplaceString(rib,"G","7") 
  rib = ReplaceString(rib,"H","8") 
  rib = ReplaceString(rib,"I","9") 
  rib = ReplaceString(rib,"J","1") 
  rib = ReplaceString(rib,"K","2") 
  rib = ReplaceString(rib,"L","3") 
  rib = ReplaceString(rib,"M","4") 
  rib = ReplaceString(rib,"N","5") 
  rib = ReplaceString(rib,"O","6") 
  rib = ReplaceString(rib,"P","7") 
  rib = ReplaceString(rib,"Q","8") 
  rib = ReplaceString(rib,"R","9") 
  rib = ReplaceString(rib,"S","2") 
  rib = ReplaceString(rib,"T","3") 
  rib = ReplaceString(rib,"U","4") 
  rib = ReplaceString(rib,"V","5") 
  rib = ReplaceString(rib,"W","6") 
  rib = ReplaceString(rib,"X","7") 
  rib = ReplaceString(rib,"Y","8") 
  rib = ReplaceString(rib,"Z","9") 
  
  d1 = Val(Mid(rib,01,7)) 
  d2 = Val(Mid(rib,08,7)) 
  d3 = Val(Mid(rib,15,7)) 
  d4 = Val(Mid(rib,22,2))
  
  If d4 = (97-(62*d1+34*d2+3*d3)%97) 
    ProcedureReturn #True 
  EndIf 
  
EndProcedure 
Procedure.b CB_Valider(cb.s)    ; Retourne Vrai si le n° CB est correcte. 
  
  cb = UCase(cb) 
  cb = ReplaceString(cb," ","") 
  cb = ReplaceString(cb,".","") 
  cb = ReplaceString(cb,"-","") 
  
  For i=1 To 16 
    d = Val(Mid(cb,i,1)) 
    somme + d 
    If (i%2) 
      somme + d 
      If d >= 5 
        somme + 1 
      EndIf 
    EndIf 
  Next 
  
  If (somme%10)=0 
    ProcedureReturn #True 
  EndIf 
  
EndProcedure

Debug RIB_Valider ("11111-22222-12345678901-32") 
Debug RIB_Valider ("22222-33333-01234567890-09") 
Debug RIB_Valider ("12345-56789-12345678901-67") 

Debug CB_Valider("0000-0000-0000-0000")
ps:
les numéros cités en exemples sont totalement factices.
essayez plutot le votre, c'est toujours plus sympa :wink:
Dernière modification par Flype le lun. 24/oct./2005 18:20, modifié 4 fois.
Image
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Ca marche!
Anonyme

Message par Anonyme »

Nickel! J'ai fait une sorte de calculateur de n° de CB valide, j'ai enregistrer
toutes les n° de CB dans un .txt ; Le fichier fait 4,22 Go (4 534 042 624 octets) & le pc à planté cette nuit, donc je ne sais pas si le programme avait fini de calculer.

@++
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

t'aurais pus optimiser ta fnction RIB_Formater().
Une boucle avec un for i = 1 to 26 et des modulo
Mais sinon sympa :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

lionel_om a écrit :t'aurais pus optimiser ta fnction RIB_Formater().
Une boucle avec un for i = 1 to 26 et des modulo
Mais sinon sympa :wink:
apparament nan
en tout cas pas avec simplement des modulos parce que ca ne se répete pas tant que ca

Dri ;)
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Message par Frenchy Pilou »

calcule la clef d'un RIB
Quelle est l'utilité :?:
A quoi cela sert-il pour le vulgus pecus ?
Est-ce border line ?
Est beau ce qui plaît sans concept :)
Speedy Galerie
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Frenchy Pilou a écrit :
calcule la clef d'un RIB
Quelle est l'utilité :?:
A quoi cela sert-il pour le vulgus pecus ?
Est-ce border line ?
idem pour moi #jaune
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Dr. Dri a écrit : apparament nan
en tout cas pas avec simplement des modulos parce que ca ne se répete pas tant que ca
AH oué, j'ai regardé trop vite !!! :lol:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Frenchy Pilou a écrit :
calcule la clef d'un RIB
Quelle est l'utilité :?:
A quoi cela sert-il pour le vulgus pecus ?
Est-ce border line ?
à rien c vrai, vérifier la validité suffit, je l'avais ajouté pour trouver les clefs valides des pseudo RIB cités en exemples. voilà.

au fait vulgus pecus je comprends... :P
par contre pourquoi 'border line' désolé mais ca veut dire quoi ?

ps: j'ai changé le source du début du post. :wink:
Image
Répondre