Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

CONVERSION RIB IBAN

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Questions, suggestions, vie du forum, divers
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
ctalhouet



Inscrit le: 05 Juin 2007
Messages: 45

MessagePosté le: Sam 12 Jan 2013, 07:47:44    Sujet du message: CONVERSION RIB IBAN Répondre en citant

Bonjour
Recherche PGM RPV ( 2 3 4 free) pour convertir des rib en IBAN ( quelques milliers)

C TALHOUET
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
cimmelé



Inscrit le: 28 Mar 2007
Messages: 34
Localisation: Rennes(35)

MessagePosté le: Dim 13 Jan 2013, 20:03:42    Sujet du message: Conversion RIB IBAN Répondre en citant

*========================================================================.
* getIBAN Transforme RIB en structure IBAN *
*========================================================================'
H Nomain indent( '| ' )

*------------------------------------------------------------------------*
* Déclaration des fichiers *
*------------------------------------------------------------------------*

/COPY QPROLESRC,getIBAN


* ********************************************************************** *
* getIBAN
*
* On reįoit en paramčtres :
* pPays = 'FR'
* pBBAN
* - Code Banque 5c
* - Code Guicher 5c
* - Compte 11c
* - Clé 2c
*
* On retourne la structure IBAN FR.........................
* ********************************************************************** *
PgetIBAN b Export

* ---------------------------------------------------------------------- *
* Déclaration de l'interface *
* ---------------------------------------------------------------------- *
DgetIBAN pi 34a
D pPAYS 2a
D pBBAN 30a
*----
* Variables et constantes *
*----
*
DāTbNum S 1A DIM(10)
DāTbLettre S 1A DIM(26)
*
DāCstNum S 10A INZ('0123456789')
DāCstLettre S 26A INZ('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
*
DāCstMaj S 26A INZ('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
DāCstMin S 26A INZ('abcdefghijklmnopqrstuvwxyz')
*
D āDsIBAN DS
D āPays 2A
D āCle 2A
D āBBAN 30A
*
D āI S 2S 0
D āJ S 2S 0
*
D āTmpIBAN S 36A
D āTmpCle S 2A
*
D āInt9 S 9S 0
D āStr9 S 9A
D āTmpMod S 5S 0

C MOVEA āCstLettre āTbLettre
C MOVEA āCstNum āTbNum
/free
// ------------------------------------------------------------------------*
// Début du traitement *
// ------------------------------------------------------------------------*

āDsIBAN = pPAYS + '00' + pBBAN;
āTmpIBAN = āBBAN + āPays + āCle;

EXSR TrtCalcul;

if āTmpCle = '';
return *blank;
else;
āCle = āTmpCle;
return āDsIBAN;
endif;

//------------------------------------------------------------------------*
// Sous routine calcul clé IBAN *
//------------------------------------------------------------------------*
begsr TrtCalcul;

āTmpCle = *blank;

āTmpIBAN = %xlate('-':' ':āTmpIBAN);
āTmpIBAN = %xlate(āCstMin:āCstMaj:āTmpIBAN);
āTmpIBAN = %trim(āTmpIBAN);
āI = 0;
if (%len(%trim(āTmpIBAN)) > 0);
dow (āI < %len(%trim(āTmpIBAN)));
āI = āI + 1;
if (%subst(āTmpIBAN : āI : 1) = ' ');
āTmpIBAN = %subst(āTmpIBAN : 1 : āI - 1) +
%subst(āTmpIBAN : āI + 1);
āI = āI - 1;
endif;
enddo;

// On vérifie si tous les caractčres de l'IBAN sont des lettres
// ou des chiffres. Si ce n'est pas le cas, on sort de la fonction.
āTmpIBAN = %trim(āTmpIBAN);
āI = 0;
if (%len(%trim(āTmpIBAN)) > 0);

dow (āI < %len(%trim(āTmpIBAN)));
āI = āI + 1;
if (%lookup(%subst(āTmpIBAN : āI : 1) : āTbNum) <= 0 AND
%lookup(%subst(āTmpIBAN : āI : 1) : āTbLettre) <= 0);
āI = *HIVAL;
else;
āJ = %lookup(%subst(āTmpIBAN : āI : 1) : āTbLettre);
if (āJ > 0);
āJ = āJ + 9;
if (āI > 1);
āTmpIBAN = %subst(āTmpIBAN : 1 : āI - 1) + %char(āJ) +
%subst(āTmpIBAN : āI + 1);
else;
āTmpIBAN = %char(āJ) + %subst(āTmpIBAN : āI + 1);
endif;
endif;
endif;
enddo;
endif;

// On vérifie maintenant qu'il ne reste que des chiffres.
// Si ce n'est pas le cas on quitte la fonction.
āTmpIBAN = %trim(āTmpIBAN);
āI = 0;
if (%len(%trim(āTmpIBAN)) > 0);
dow (āI < %len(%trim(āTmpIBAN)));
āI = āI + 1;
if (%lookup(%subst(āTmpIBAN : āI : 1) : āTbNum) <= 0);
āI = *HIVAL;
leavesr;
endif;
enddo;

āStr9 = '';
dou (%len(%trim(āTmpIBAN)) <= 9);
if (āStr9 <> '');
āTmpIBAN = %replace(%char(āTmpMod) : āTmpIBAN : 1 : %len(āStr9));
endif;
if (%len(%trim(āTmpIBAN)) < 9);
āStr9 = %trim(āTmpIBAN);
else;
āStr9 = %subst(%trim(āTmpIBAN) : 1 : 9);
endif;
āInt9 = %INT(āStr9);
āTmpMod = %rem(āInt9 : 97);
enddo;

āTmpMod = 98 - āTmpMod;
if (āTmpMod <= 9);
āTmpCle = '0' + %CHAR(āTmpMod);
else;
āTmpCle = %CHAR(āTmpMod);
endif;

endif;
endif;
endsr;
/end-free

PgetIBAN e

[/list]
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Questions, suggestions, vie du forum, divers Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots