[R] Formater l'affichage d'un nombre
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- jl56
- Niveau 7
- Messages : 411
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
[R] Formater l'affichage d'un nombre
bonjour
je ne sais pas comment faire un truc aussi simple que
formater l'affichage d'un nombre
j'ai 1234567890
je veux afficher 1 234 567 890
je ne comprend pas stringformat
est ce que quelqu'un aurai la gentillesse de m'aider S.V.P.
a+ jl56
je ne sais pas comment faire un truc aussi simple que
formater l'affichage d'un nombre
j'ai 1234567890
je veux afficher 1 234 567 890
je ne comprend pas stringformat
est ce que quelqu'un aurai la gentillesse de m'aider S.V.P.
a+ jl56
Modifié en dernier par jl56 le sam. 27 oct. 2007 15:28, modifié 1 fois.
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
ici un petit exple par utilisation des regexp
[EDIT] : attention, il manquait un espace après "$1" => "$1 ", comme j'écrémais manuellement les espaces en trop dû à forum color , j'ai eu la main trop lourde ....
Code : Tout sélectionner
#Include <String.au3>
$str = "111234567890"
MsgBox ( 0 , "test" , format_number ( $str , 3 ) )
Func format_number ( $strlocal , $regroupement )
$strlocal = _StringReverse ( $strlocal ) ; renversement de la chaîne pour la traîtée à l'envers
$strlocal = StringRegExpReplace ( $strlocal , "( \d{" & $regroupement & "} )" , "$1 " ) ; on cherche tous les regroupement de n chiffres pour les remplacer par eux même suivi d'un espace
$strlocal = _StringReverse ( $strlocal ) ; on remets la chaîne à l'endroit
$strlocal = StringStripWS ( $strlocal , 1 ) ; efface éventuellement l'espace en trop à l'avant , lorsque le nombre est composé d'un nombre multiple de n chiffres
Return $strlocal
EndFunc
Modifié en dernier par sylvanie le jeu. 25 oct. 2007 21:02, modifié 1 fois.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Héhé encore une démo
merci sylvanie
autre exemple (toujours de sylvanie), mais avec une petite modification d'ani.(merci d'avance pour la ou les correction a apporté a cette fonction et a l'exemple)
Evidement sa ne répond pas à la question sur le stringformat.
%.2f < 2 chiffre après la virgule pour le reste je ne sait pas trop, merci d'avance pour les réponses approté a ce sujet. un peu de soucis avec l'anglais ? idem
ps: _StringAddComma (la solution non?)
merci sylvanie
autre exemple (toujours de sylvanie), mais avec une petite modification d'ani.(merci d'avance pour la ou les correction a apporté a cette fonction et a l'exemple)
► Afficher le texte
Ani a écrit :Si le code n'est pas parfait ou correct merci pour la correction
Evidement sa ne répond pas à la question sur le stringformat.
%.2f < 2 chiffre après la virgule pour le reste je ne sait pas trop, merci d'avance pour les réponses approté a ce sujet. un peu de soucis avec l'anglais ? idem
ps: _StringAddComma (la solution non?)
Modifié en dernier par ani le ven. 26 oct. 2007 17:04, modifié 4 fois.
- jl56
- Niveau 7
- Messages : 411
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
bonjour sylvanie et ani
et merci de vos reponses
sylvanie la manip ne fonctionne pas je pense que la syntaxe n'est pas bonne
ani ca fonctionne tres bien
j'avais déja une solution du genre
mais je trouvais ca lourd j'ai un vieux souvenir du basic
ou on utilisait un string format du genre " ### ### ###",variable
et j'avais espéré aussi simple tanpis ce sera pour plus tard
a+ jl56
et merci de vos reponses
sylvanie la manip ne fonctionne pas je pense que la syntaxe
Code : Tout sélectionner
StringRegExpReplace ( $strlocal , "( \d{" & $regroupement & "} )" , "$1 " )
ani ca fonctionne tres bien
j'avais déja une solution du genre
Code : Tout sélectionner
$str = "123456789012345678"
MsgBox ( 0 , "testjl" , $str & @crlf & conversion_jl56 ( $str ) )
Func conversion_jl56 ( $strlocal )
$strnew = ""
for $i = 0 to stringlen ( $strlocal )
if ( int ( $i/3 ) *3 ) = $i then $strnew = " " & $strnew
$strnew = StringMid ( $strlocal , stringlen ( $strlocal ) - $i , 1 ) & $strnew
Next
return $strnew
EndFunc
ou on utilisait un string format du genre " ### ### ###",variable
et j'avais espéré aussi simple tanpis ce sera pour plus tard
a+ jl56
Modifié en dernier par jl56 le jeu. 01 nov. 2007 09:13, modifié 1 fois.
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
rebonjour
alors voilà après une petite relecture de l'aide je tombe sur la fonction dont tu aura peut etre besoin.
En ce qui concerne la fonction proposé par sylvanie elle fonctionne très bien, j'ai juste indiqué le digit3 vu qu'on peut l'utiliser là et retirer les espaces. Voilà
Enfin bon pour revenir a la fonction qui Existe déjà
voici ce que donne l'aide
Exemple
PS: j'avais réediter le poste en signalant la fonction mais , donc je la post ^^' ,
j'ai remodifié l'exemple du premier post
alors voilà après une petite relecture de l'aide je tombe sur la fonction dont tu aura peut etre besoin.
En ce qui concerne la fonction proposé par sylvanie elle fonctionne très bien, j'ai juste indiqué le digit3 vu qu'on peut l'utiliser là et retirer les espaces. Voilà
Code : Tout sélectionner
#Include <String.au3>
$str = "111234567890"
MsgBox(0, "test", format_number($str))
Func format_number($strlocal)
$strlocal = _StringReverse($strlocal) ; renversement de la chaîne pour la traîtée à l'envers
$strlocal = StringRegExpReplace($strlocal, "(\d{3})", "$1 ") ; on cherche tous les regroupement de n chiffres pour les remplacer par eux même suivi d'un espace
$strlocal = _StringReverse($strlocal) ; on remets la chaîne à l'endroit
$strlocal = StringStripWS($strlocal, 1) ; efface éventuellement l'espace en trop à l'avant , lorsque le nombre est composé d'un nombre multiple de n chiffres
Return $strlocal
EndFunc
voici ce que donne l'aide
Code : Tout sélectionner
_StringAddComma
--------------------------------------------------------------------------------
Returns the original numbered string with the proper delimiter inserted.
#Include <String>
__StringAddComma ( $sStr [, $sSeparator [, $sEnd ]] )
Parameters
$sStr The string to be converted.
$sSeperator Optional: The delimiter to separate the string of numbers. Default=','
$sEnd Optional: The decimal delimiter. Default='.'
Code : Tout sélectionner
#Include <String.au3>
$nAmt = '111234567890'
$sDelim = _StringAddComma($nAmt,".")
MsgBox(64, 'Info', $sDelim)[/autoit][u][b]Sortie =[/b][/u] [color=blue][i]111.234.567.890 [/i]
PS: j'avais réediter le poste en signalant la fonction mais , donc je la post ^^' ,
j'ai remodifié l'exemple du premier post
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
En fait, la question était :
Donc en adaptant ce que ani à trouvé, cela nous donne :jl56 a écrit :j'ai 1234567890
je veux afficher 1 234 567 890
Code : Tout sélectionner
#Include <String.au3>
$nAmt = '1234567890'
MsgBox ( 64 , 'Info' , _StringAddComma ( $nAmt , " " ) )
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
oups je pensais espace et c'est point qui est inscrit ^__^) désolé
peut etre que quelqu'un vois de quoi il s'agit ? je vais regarder le basic et la fonction (si je l'a trouve ^^)jl56 a écrit :mais je trouvais ca lourd j'ai un vieux souvenir du basic
ou on utilisait un string format du genre " ### ### ###",variable
et j'avais espéré aussi simple tanpis ce sera pour plus tard
- jl56
- Niveau 7
- Messages : 411
- Enregistré le : mer. 24 oct. 2007 22:42
- Localisation : 56000
- Status : Hors ligne
ok ca fonctionne
bonjour a tous
merci pour vos réponses
effectivement en supprimant les espaces la fonction de sylvanie marche
_StringAddComma
fonctionne tres bien et c'est tres simple
merci
pour info sur stringformat
j'ai chercher pendant des heures le moyen de
formater un nombre sur 3 chiffres ex. 12 en 012 ou 1 en 001
un peu au pif j'ai utilisé
StringFormat("%03d",$nombre)
si cela peut vous aider
voila merci encore
a+ jl56
[R]
merci pour vos réponses
effectivement en supprimant les espaces la fonction de sylvanie marche
_StringAddComma
fonctionne tres bien et c'est tres simple
merci
pour info sur stringformat
j'ai chercher pendant des heures le moyen de
formater un nombre sur 3 chiffres ex. 12 en 012 ou 1 en 001
un peu au pif j'ai utilisé
StringFormat("%03d",$nombre)
si cela peut vous aider
voila merci encore
a+ jl56
[R]