OVH Cloud OVH Cloud

Transformer un chiffre

17 réponses
Avatar
Hell
Bonjour
J'utilise vbscript pour programmer en asp

Sur ma page, l'utilisateur saisit un num=E9ro entre 0 et 1000

Je voudrais transformer sa saisie pour la completer avec
des 0 si besoin afin que le nombre ait 4 digits

Je sais comment faire avec un boucle mais dans certains
langage il existe une fonction pr=E9vu pour =E7a

Existe t'il une fonction sous vbscript pour faire =E7a?

Merci d'avance pour votre aide

7 réponses

1 2
Avatar
Do Re Mi chel La Si Do
Tu peux généraliser :

n 'valeur saisie
nbdigit=4
caractere="0"
str_pad=Right(replace(space(20)," ",caractere) & n, nbdigit)




@-salutations
--
Michel Claveau
Avatar
scraper
Bonjour Do Re Mi chel La Si Do, dans le message
news:u$
tu disais :


Scraper, tu es un (gros) menteur !
Ce n'est pas ma méthode ; c'est la tienne. Fô assumer, mon gars !
La seule différence, c'est qu'on a pas voté du même côté...


bof, si tu vois ça commme ça ! lol





--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Avatar
Do Re Mi chel La Si Do
Pour info, voici la même chose en Python :

n="13"
caractere="0"
nbdigit=4
str_pad=n.rjust(nbdigit,caractere)

Sobre, n'est-il pas ?


@-salutations

Michel Claveau
Avatar
Do Re Mi chel La Si Do
Bonjour !

Et comme ça :

'--------------------------------------------------------------------
Function FormatStrL(ch,lmax,pad)
FormatStrL=Left(ch & replace(space(lmax)," ",pad), lmax)
End Function

'--------------------------------------------------------------------
Function FormatStrR(ch,lmax,pad)
FormatStrR=Right(replace(space(lmax)," ",pad) & ch, lmax)
End Function


Ne serait-ce pas plus simple, plus rapide, et nettement plus frime (très
important) ?


@-salutations
--
Michel Claveau
Avatar
scraper
Bonjour Do Re Mi chel La Si Do, dans le message
news:
tu disais :


Bonjour !

[...]


elles sont belles tes fonctions ;-)



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Do Re Mi chel La Si Do s'est ainsi
exprimé:

Et comme ça :
'--------------------------------------------------------------------
Function FormatStrL(ch,lmax,pad)
FormatStrL=Left(ch & replace(space(lmax)," ",pad), lmax) End Function
'--------------------------------------------------------------------
Function FormatStrR(ch,lmax,pad)
FormatStrR=Right(replace(space(lmax)," ",pad) & ch, lmax) End Function

Ne serait-ce pas plus simple, plus rapide, et nettement plus frime
(très important) ?


Effectivement, c'est "top" ! ;-)
Je n'avais pas pensé à "space" !

Mais tu m'as donné une idée !

Voila encore plus simple, plus rapide et plus frimant ! ;-) :

Function FormatStrL(ch,lmax,pad)
FormatStrL=Left(ch & string(lmax,pad), lmax)
End Function
'------------------------------------------------
Function FormatStrR(ch,lmax,pad)
FormatStrR=Right(string(lmax,pad) & ch, lmax)
End Function

;-)


Qui dit mieux ?
(le concours est ouvert !)

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Comme je ne connais strictement rien à VBS, je donne une version en Python :

def FormatStrL(ch,lmax,pad): return ch.ljust(lmax,pad)
def FormatStrR(ch,lmax,pad): return ch.rjust(lmax,pad)

A noter que le fonction est plus longue que l'utilisation directe des
instructions Python :

n = "12"
chaine = FormatStrL( n, 10, "0")
vs
n = "12"
chaine = n.ljust( 10, "0")


Bonne nuit.

MCI
1 2