Formate une cha�ne (similaire � la fonction sprintf() du C).
StringFormat ( "format control" [, var1 [, ... var32]] )
format control | Le format et les flags � utiliser (Voir Remarques). |
var1...var32 | Jusqu'� 32 variables qui seront affich�es selon le param�tre "format control". |
Pour �viter le d�bordement de la m�moire tampon, chaque "variable" est limit�e � 65535 caract�res.
Les caract�res d'�chappement peuvent �tre utilis�s dans la cha�ne "format control" comme \n (@LF), \r (@CR), \t (@TAB). Donc, si vous voulez avoir un \ vous devez utiliser \\, de m�me pour %, vous devez utiliser %%.
La "variable format" est %[flags] [width] [.precision] type
Si une sp�cification de format est invalide, le comportement est ind�fini. Si vous sp�cifiez une entr�e non valide, vous pouvez cr�er des circonstances sp�ciales non g�r�e et provoquer la fin du programme.
Sp�cification Width
Le deuxi�me champ optionnel de la sp�cification du format est la largeur. L'argument 'width' est un entier d�cimal non n�gatif contr�lant le nombre minimum de caract�res affich�s. Si le nombre de caract�res � afficher est inf�rieur � la largeur sp�cifi�e, des espaces sont ajout�s � gauche ou � droite (suivant la valeur du flag pour un alignement � gauche), jusqu'� ce que la largeur minimale soit atteinte. Si la largeur est pr�c�d� de 0, des z�ros sont ajout�s jusqu'� ce que la largeur minimale soit atteinte (inutile pour les nombres align�s � gauche).
La sp�cification de largeur ne provoque jamais une valeur � tronquer. Si le nombre de caract�res de la valeur de sortie est sup�rieur � la largeur sp�cifi�e, ou si la largeur n'est pas donn�e, tous les caract�res de la valeur sont affich�s (sous r�serve de la sp�cification de pr�cision).
Sp�cification Type
Type | Type de Variable | Format de sortie |
---|---|---|
d, i | Integer | Entier d�cimal sign�. |
o | Integer | Entier octal non sign�. |
u | Integer | Entier d�cimal non sign�. |
x | Integer | Entier non sign� en hexad�cimal, qui utilise "abcdef". |
X | Integer | Entier hexad�cimal non sign�, qui utilise "ABCDEF". |
e | Float | Valeur sign�e de la forme [ - ]d.dddd e [sign]ddd o� d est un chiffre d�cimal simple, dddd est au moins un chiffre d�cimal, ddd est exactement trois chiffres d�cimaux, et sign est + ou -. |
E | Float | Identique au format e sauf que E plut�t que e introduit la notation exponentielle. |
f | Float | Valeur sign� ayant la forme [ - ]dddd.dddd, o� dddd est au moins un chiffre d�cimal. Le nombre de chiffres avant le point d�cimal d�pend de l'importance du nombre, et le nombre de chiffres apr�s le point d�cimal d�pend de la pr�cision demand�e. |
g | Float | Valeur sign�e affich�e dans le format f ou e, whichever is more compact for the given value and precision. Le format e est utilis� uniquement lorsque l'exposant de la valeur est inf�rieur � -4 ou sup�rieur ou �gal � l'argument de pr�cision. Les z�ros � droite sont tronqu�s, et le point d�cimal appara�t uniquement si un ou plusieurs chiffres suivent. |
G | Float | Identique au format g format, sauf que E, plut�t que e, introduit la notation exponentielle (le cas �ch�ant). |
s | String | String |
Flag | Signification | Par d�faut |
---|---|---|
- | Aligne � gauche le r�sultat dans la largeur donn�e du champ. | Aligne � droite. |
+ | Pr�fixe la valeur de sortie du signe (+ ou -) si elle est d'un type sign�. | Le signe ne s'affiche que pour les valeurs n�gatives sign�s (-). |
0 | Si width est pr�c�d�e d'un 0, des z�ros sont ajout�s jusqu'� ce que le minimim 'width' soit atteint. Si 0 et - apparaisse, le 0 est ignor�. Si 0 est sp�cifi� avec un format 'integer' (i, u, x, X, o, d) alors le 0 est ignor�. | Pas de rembourrage. |
Blank | Pr�c�de la valeur de sortie avec un espace si elle est sign�e et positive; l'espace est ignor� si les flags 'blank' et '+' sont lev�s. | Pas d'espace n'est rajout�. |
# | Lorsqu'il est utilis� avec les formats o, x, ou X, le flag # pr�fixe une valeur de sortie non nulle avec 0, 0x ou 0X, respectivement. | Pas de 0 n'est rajout�. |
# | Lorsqu'il est utilis� avec les formats e, E, ou f, le flag # force la valeur de sortie � contenir un point d�cimal dans tous les cas. | Le point d�cimal n'appara�t que si des chiffres suivent. |
# | Lorsqu'il est utilis� avec les formats g ou G, le flag # force la valeur de sortie � contenir un point d�cimal dans tous les cas et emp�che la troncature des z�ros. Ignor� quand utis� avec d, i, u, or s . |
Le point d�cimal n'appara�t que si des chiffres le suivent. Les z�ros � droite sont tronqu�s. |
Type | Signification | Par d�faut |
---|---|---|
d, i, u, o, x, X | La pr�cision indique le nombre minimum de chiffres � afficher. Si le nombre de chiffres dans l'argument est inf�rieur � la pr�cision, la valeur de sortie est compl�t�e � gauche par des z�ros. La valeur n'est pas tronqu�e lorsque le nombre de chiffres d�passe pr�cision. | La pr�cision par d�faut est 1. |
e, E | La pr�cision sp�cifie le nombre de chiffres � afficher apr�s le point d�cimal. Le dernier chiffre affich� est arrondie. | La pr�cision par d�faut est 6; si la pr�cision est 0 ou si le point (.) appara�t non suivi d'un chiffre, le point d�cimal n'est pas affich�. |
f | La valeur de pr�cision sp�cifie le nombre de chiffres apr�s le point d�cimal. Si le point d�cimal est affich�, au moins un chiffre apparait devant. La valeur est arrondie au nombre de chiffres appropri�. | La pr�cision par d�faut est 6; si la pr�cision est 0, ou si le point (.) appara�t non suivi d'un chiffre, le point d�cimal n'est pas affich�. |
g, G | La pr�cision sp�cifie le nombre maximum de chiffres significatifs affich�s. | Six chiffres significatifs sont affich�s, avec les z�ros tronqu�s. |
s | La pr�cision indique le nombre maximal de caract�res � afficher. Les caract�res qui exc�dent la pr�cision ne sont pas affich�s. | Les caract�res sont affich�s jusqu'� ce qu'un caract�re nul soit rencontr�. |
Example() Func Example() Local $iInt_Unsigned = 43951789 Local $iInt_Negative = -43951789 ConsoleWrite(@CRLF & "Numeric Formats" & @CRLF) PrintFormat($iInt_Unsigned, "%d", "Entier positif standard sans signe", 1) ;43951789 PrintFormat($iInt_Negative, "%d", "Entier n�gatif standard avec signe", 1) ;-43951789 PrintFormat($iInt_Unsigned, "%i", "Entier standard", 1) ;43951789 PrintFormat($iInt_Unsigned, "%09i", "9 chiffres avec des z�ro � gauche", 1) ;043951789 PrintFormat($iInt_Unsigned, "%e", "Notation scientifique") ;4.395179e+007 PrintFormat($iInt_Unsigned, "%u", "Entier non sign� avec entier positif", 1) ;43951789 PrintFormat($iInt_Negative, "%u", "Entier non sign� avec entier n�gatif", 1) ;4251015507 PrintFormat($iInt_Unsigned, "%f", "Virgule flottante") ;43951789.000000 PrintFormat($iInt_Unsigned, "%.2f", "Virgule flottante avec 2 chiffre apr�s le point d�cimal ", 1) ;43.951.789,00 PrintFormat($iInt_Unsigned, "%o", "Octal", 1) ;247523255 PrintFormat($iInt_Unsigned, "%s", "String", 1) ;43951789 PrintFormat($iInt_Unsigned, "%x", "Hexad�cimal (minuscule)", 1) ;29ea6ad PrintFormat($iInt_Unsigned, "%X", "Hexad�cimal (majuscule)", 1) ;29EA6AD PrintFormat($iInt_Unsigned, "%+d", "Signe sp�cifi� devant un entier positif", 1) ;+43951789 PrintFormat($iInt_Negative, "%+d", "Signe sp�cifi� devant un entier n�gatif", 1) ;-43951789 Local $sString = "string" Local $sString_Long = "longer string" ConsoleWrite(@CRLF & "String Formats - [ ] utilis�s pour montrer le d�but/fin de la cha�ne" & @CRLF) PrintFormat($sString, "[%s]", "cha�ne standard", 1) ; [cha�ne] PrintFormat($sString, "[%10s]", "10 caract�res justifi�s � droite avec ajout d'espaces") ; [ Cha�ne] PrintFormat($sString, "[%-10s]", "10 caract�res justifi�s � gauche avec ajout d'espaces") ; [cha�ne ] PrintFormat($sString_Long, "[%10.8s]", "Justifi� � droite mais pr�cision 8 donc tronqu�") ; [ longer s] PrintFormat($sString_Long, "[%-10.8s]", "Justifi� � gauche mais pr�cision 8 donc tronqu�") ; [longer s ] PrintFormat($sString, "[%010s]", "10 caract�res avec des z�ro � gauche") ; [0000string] ConsoleWrite(@CRLF & "Date Format - chaque % utilise un nouveau param�tre" & @CRLF) ConsoleWrite('"%02i\%02i\%04i" sur (1, 9, 2013) => '& StringFormat("%02i\%02i\%04i", 1, 9, 2013) & @CRLF & @CRLF) EndFunc ;==>Example Func PrintFormat($vVar, $sFormat, $sExplan, $iTab = 0) ConsoleWrite('"' & $sFormat & '" sur ' & $vVar & @TAB & ' => '& StringFormat($sFormat, $vVar)) If $iTab Then ConsoleWrite(@TAB) ConsoleWrite(@TAB & " ; " & $sExplan & @CRLF) EndFunc ;==>PrintFormat