begin process at 2012 02 06 18:37:40
  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 :3 386

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


Discussions en rapport avec ce code source dans le forum

traduction [ par thiche ] voila je debute en programmation et je travail sur WINDEV mais j'ai un programme fais sur foxpro et je veux traduire l'un des codes ne code utilisable migration de code ecris sous foxpro en un code acceptable sous windev [ par thiche ] voila je debute en programmation et je travail sur WINDEV mais j'ai un programme fais sur foxpro et je veux traduire l'un des codes ne code utilisable


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,718 sec (4)

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