Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
L'un de vous aurait-il une fonction qui vérifie/calcule la clé rib (modulo 97).
J'ai fait ça dans le temps en clipper mais en ce temsp là, y'avait pas les forums !! ;-)
Hors ligne
Bonjour,
l'explication du calcul de la clé est détaillée sur : http://fr.wikipedia.org/wiki/Cl%C3%A9_RIB
Hors ligne
j'avais ca qui trainait sur mon ordi...
une fonction globale qui permet de verifier la clé rib modulo97
$PBExportHeader$clerib.srf $PBExportComments$Verification cle RIB global type clerib from function_object end type forward prototypes global function int clerib (string banque, string guichet, string compte) end prototypes global function int clerib (string banque, string guichet, string compte);string c1="",c2="",convert="1234567890ABCDEFGHI@JKLMNOPQR@@STUVWXYZ" int i long b,g,lc,rc,m,r if IsNull(banque) or IsNull(guichet) or IsNull(compte) then // messagebox("ERREUR!","Mauvais format!") return -1 end if if len(banque) <> 5 or len(guichet) <> 5 or len(compte) <> 11 then // messagebox("ERREUR!","Mauvais format!") return -1 end if if not isnumber(banque) or not isnumber(guichet) then // messagebox("ERREUR!","Mauvais format!") return -1 end if c1 = upper(compte) if pos(c1,"@") <> 0 then // messagebox("ERREUR!","Mauvais format!") return -1 end if for i = 1 to 11 c2 = c2+char(asc("0")+mod(pos(convert,mid(c1,i,1)),10)) next if not isnumber(c2) then // messagebox("ERREUR!","Mauvais format!") return -1 end if c1=mid(c2,1,6) c2=mid(c2,7,5) b=long(banque) g=long(guichet) lc=long(c1) rc=long(c2) m=mod( ( (mod(b,97)*62) + (mod(g,97)*5) + (mod(lc,97)*90) + mod(rc,97) ),97) m=mod(m*3,97) r=mod((97 - m),97) // cas particulier du reste = à 0 if r = 0 then r = 97 end if return r end function
Hors ligne