begin process at 2010 02 09 15:35:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > STRZERO FCTN QUI INSÈRE DES 0.

STRZERO FCTN QUI INSÈRE DES 0.


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :str, remplace, espace, zero, trim Niveau :Débutant Date de création :07/10/2004 Vu :2 602

Auteur : RomanS

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Fonction basique, mais dont je ne me passe plus...

Source

  • Function StrZero( pnN, pnLong )
  • local cNumber
  • if type("pnLong") # "N"
  • pnLong = 10
  • endif
  • cNumber = ltrim(str( pnN, pnLong ))
  • if "-" $ cNumber
  • cNumber = substr(cNumber,2)
  • return ( '-' + padl(cNumber, pnLong - 1, "0") )
  • endif
  • return ( padl(cNumber, pnLong, "0") )
  • ENDFUNC
Function StrZero( pnN, pnLong )

	local cNumber

	if type("pnLong") # "N"
		pnLong = 10
	endif

	cNumber = ltrim(str( pnN, pnLong ))

	if "-" $ cNumber
		cNumber = substr(cNumber,2)
		return ( '-' + padl(cNumber, pnLong  - 1, "0") )
	endif

	return ( padl(cNumber, pnLong, "0") )

ENDFUNC

 Conclusion

Voilà c'est tout bête mais fallait y penser.


 Sources de la même categorie

RENOMMER LE PRÉFIXE DE TOUS LES FICHIERS D'UN DOSSIER par mike_vk
COULEUR HEXADECIMAL par tmcuh
Source avec Zip ITERATION par DDU de AtoutFox
CRYPTE/DECRYPTE par FredArmoni
CONTRÔLE DU NUMÉRO DE TVA (BELGE) par johnmary

Commentaires et avis

Commentaire de ccguns le 08/10/2004 08:46:24

C'est marrant, j'ai la même fonction. J'ai toujours cru qu'elle avait été écrite par quelqu'un de la boite où je travaille, mais à priori non.
La voilà, un peu modifiée pour gérer les décimales :

* Fonction : Strzero
* Objet : Permet d'effectuer un STR en remplaçant les espaces par des zéros.
* Paramètre : - La valeur numérique
*   - La longueur de la chaine totale
*   - Le nombre de chiffre après la virgule
* Exemple : ? strzero(123.45, 8, 2) => "00123.45"

FUNCTION strzero

PARAMETERS m.valeur, m.longueur, m.decimale

PRIVATE lcRetour
PRIVATE m.chaine
PRIVATE m.nb_param

STORE "" TO lcRetour
STORE "" TO m.chaine  
STORE 1 TO m.nb_param

m.nb_param = IIF(EMPTY(m.longueur), 1, IIF(EMPTY(m.decimale), 2, 3))

IF (TYPE("m.valeur") <> "N")
m.chaine = IIF(m.nb_param =  1, STR(0), IIF(m.nb_param =  2, STR(0, m.longueur), STR(0, m.longueur, m.decimale)))
ELSE
m.chaine = IIF(m.nb_param =  1, STR(m.valeur), IIF(m.nb_param =  2, STR(m.valeur, m.longueur), STR(m.valeur, m.longueur, m.decimale)))
ENDIF

lcRetour = STRTRAN(m.chaine," ", "0")

IF m.nb_param = 2 AND LEN(lcRetour) > m.longueur
lcRetour  = LEFT(lcRetour , m.longueur)
ENDIF

RETURN lcRetour

Commentaire de ThierryPerretier le 30/11/2005 12:46:00

Pourquoi pas simplement :

transform(123.45, "@RL 99999.99")

?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales