Message de rapport:
 

Re: Formatter des numériques

Sujet: Re: Formatter des numériques
par Totof sur 30/5/2007 22:17:03

Bonjour Romu,

Voici le code qu'il te faut (Fait et testé ce soir ):

chFormat est une chaîne = "-999 999 999.99"  //Chaîne utilisée pour le formatage
chChiffreSaisies est une chaîne = "1123456,789423" //Chaîne passée en paramètre
chResultat est une chaîne = ""
i est un entier
eTaille est un entier
eTailleFormat est un entier = Taille(chFormat)
//*** Calcul du nombre de chiffre après la virgule ***//
eNbChiffresApresVirgule est un entier = ChaîneOccurrence( ExtraitChaîne(Remplace(chFormat,",","."), 1, ".",DepuisFin), "9")
bCaractereSeparationUtilise est un booléen = Faux	//Permet de savoir si le caractère de séparation a déjà été utilisé

//*** On remplace les espaces saisie dans les chiffres passés en paramètre ***//
chChiffreSaisies = Remplace(chChiffreSaisies," ","")
//*** On remplace une éventuelle virgule dans les chiffres saisies ***//
chChiffreSaisies = Remplace(chChiffreSaisies,",",".")
SI eNbChiffresApresVirgule=0 ALORS
	chChiffreSaisies = PartieEntière( Val(chChiffreSaisies) )
SINON
	chChiffreSaisies = ExtraitChaîne(chChiffreSaisies, 1, ".") + "." + Gauche(ExtraitChaîne(chChiffreSaisies,2,"."), eNbChiffresApresVirgule)
FIN
eTaille = Taille(chChiffreSaisies)

//*** Parcours de la chaine format depuis la fin de la chaîne ***//
POUR i=eTailleFormat A 1 PAS -1
	SI chFormat[[ i ]]="9" ALORS
		//*** Si le format correspond à un chiffre on l'ajoute au résultat ****//
		chResultat = chChiffreSaisies[[ eTaille ]] + chResultat
		
		eTaille--
		SI eTaille=0 ALORS
			SORTIR
		FIN
	SINON
		//*** Le caractère a rajouter au résultat n'est pas numérique ***//
		chResultat = chFormat[[ i ]] + chResultat
		SI (chFormat[[ i ]]="." _OU_ chFormat[[ i ]]=",") _ET_ PAS bCaractereSeparationUtilise ALORS
			//*** Si le caractère est un séparateur . ou , ***//
			eTaille--
			bCaractereSeparationUtilise = Vrai
		FIN
	FIN
FIN

SI Gauche(chFormat,1)<>"9" ALORS
	//*** On rajoute le caractère signe si présent ***//
	chResultat = Gauche(chFormat,1) + chResultat
FIN

Info(chResultat)




Bon dév.,

Totof
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