Formatter des numériques
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Existe-t il une ressource qui formatte les numériques en chaînes qui permette la saisie du format final.

Je dois produire une interface utilisateur qui paramètre numériqueverschaine, mais l'idéal fut qu'il puisse saisir directement le format désiré. L'objectif étant d'apporter à l'utilisateur la plus grande facilité d'utilisation.
Exemple
valeur entrée : "1123456,789"
format "-999 999 999.99"
résultat : " -1 123 456.79"


Pour l'instant j'ai réussi en proposant un ensemble plus ou moins lisible de cases à cocher et champs de saisie pour définit la chaine de paramètre qui me sert dans NumeriqueVersChaine. Je suis donc loin de la simple saisie du format désiré.

Attention, il y a toutefois un ecceuil : NumeriqueversChaine utilise le séparateur de millier de Windows et ne permet donc pas un formattage paramétrable de cela?

Bien cordialement

Contribution le : 30/05/2007 10:05

Edité par R&B sur 30/5/2007 16:17:31
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Formatter des numériques
ChefDeProjet WDF
Inscrit:
02/05/2006 21:28
Post(s): 160
je ne comprends pas trop ton "écueil": si dans ton masque de format tu mets une "," WD le traite bien

NumériqueVersChaîne(12345.5, "10,2fS")
// Renvoie " 12 345,50" (le séparateur décimal est une ",")

Contribution le : 30/05/2007 20:17
Créer un fichier PDF de la contribution Imprimer


Re: Formatter des numériques
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
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

Contribution le : 30/05/2007 22:17
_________________
[ Totof(Christophe LOGEL) réalise des développements spécifiques WinDev (Mon annonce wdforge), http://www.sigmasys.fr]
Créer un fichier PDF de la contribution Imprimer


Re: Formatter des numériques
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci Totof et désolé pour WD3000 qui devrais relire (je parle du séparateur de MILLIER).

Contribution le : 31/05/2007 13:23
_________________
R&B
Contact, CV.
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