Modulo Iban + limites Windev
Stagiaire WDF
Inscrit:
02/11/2007 11:15
Post(s): 20
Pour vérifier un numéro Iban du Pays-Bas, il y a trop de chiffres pour Windev
p.e Iban nr: NL59 RABO 0152 8115 32 deviendra 271011240152811532232100 pour faire un modulo 97.
Il y a trop de chiffres pour windev.
Avez-vous une solution?
Merci

Contribution le : 15/04/2010 11:02
Créer un fichier PDF de la contribution Imprimer


Re: Modulo Iban + limites Windev
Stagiaire WDF
Inscrit:
02/11/2007 11:15
Post(s): 20
Probléme résolu.

Contribution le : 16/04/2010 19:37
Créer un fichier PDF de la contribution Imprimer


Re: Modulo Iban + limites Windev
Utilisateur WDF
Inscrit:
25/10/2005 16:20
De Tours
Post(s): 74
pourrai tu indiquer la solution si d'autre on le même souci

Contribution le : 20/04/2010 10:02
Créer un fichier PDF de la contribution Imprimer


Re: Modulo Iban + limites Windev
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour, je vois que Keith2001 n'a pas l'intention de partager alors très rapidement un premier jet :
PROCEDURE Controle( LOCAL pIban est une chaîne )
Ind est un entier
pIban = Majuscule( pIban )
pIban = Remplace(pIban, "-","")
pIban = Remplace(pIban, " ", "" )
mPays est une chaine =pIban[[ A 2 ]]
mPaysest une chaine = pIban[[ A 2 ]]
mCle est une chaine = pIban[[ 3 A 4 ]]
mBban est une chaine = pIban[[ 5 A 34 ]]

mIbanWork est une chaine = SansEspace(mBban) + mPays + "00" 
//On remplace les lettres par 2 chiffres selon la table de conversion de l'IBAN
POUR Ind = 1 A 26
	mIbanWork = Remplace(mIbanWork,Caract(64+Ind),Ind+9)
FIN
//on boucle tant que le nombre de chiffres de l'iban est strictement superieur a la données de calcul
sBuff est une chaîne = SansEspace(:m_IbanWork)
varCalc est une chaîne
tailleVarCalc est un entier = 13
varClac2 est une chaîne fixe de 13
TANTQUE Taille( sBuff ) > tailleVarCalc
	//On récupère la portion de chiffre maximum
	varCalc = Gauche(sBuff,tailleVarCalc)
	//On supprime la portion récupéré de la zone de travail
	sBuff = sBuff[[ Taille(varCalc)+1 A ]]
	//On calcul le modulo 97 d'une portion de l'IBAN
	varClac2 =(PartieEntière(Val(varCalc)/97))
	varCalc = Val(varCalc) - (Val(varClac2) *97)
	//On ajoute ce modulo 97 devant la donnée restant à traiter( qu'il y ait 1 ou 2 chiffre(s) est égal
	sBuff = varCalc + sBuff
FIN

//On récupère la valeur restante en numérique
varCalc = Val(sBuff)
//On calcul le modulo 97 et on soustrait le reste de 98
varClac2 = PartieEntière(Val(varCalc)/97)
varCalc = 98 - (Val(varCalc) - (Val(varClac2) * 97))

//Recadrage sur 2 chiffre toujours significatifs
cleCalc est une chaîne fixe sur 2
cleCalc = Droite(varCalc,2)
cleCalc = Remplace(cleCalc," ","0")

RENVOYER cleCalc


Ce code peut être optimisé avec des modulos
La procédure renvoi la valeur de la clé que son les deux caractères qui suivent le code pays
Si la clé est incoonu vous pouvez la remplacer par 00 elle vous sera retournée par la fonction

Contribution le : 20/04/2010 23:03
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Modulo Iban + limites Windev
Stagiaire WDF
Inscrit:
02/11/2007 11:15
Post(s): 20
Je veux bien partager.
Ma faute etait que j'utilisais un type de variable "entier" ou "monetaire".
Il faut utiliser un type de variable "numérique" pour faire le calcul modulo 97 si votre calcul est plus grand que 20 chiffres, p.e. un numéro Iban du Pays-Bas.

Contribution le : 21/04/2010 10:44
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2