Convertir chaine en nombre (impossible ??)

Résolu
bastnt Messages postés 19 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 avril 2008 - 19 juil. 2007 à 11:51
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 20 juil. 2007 à 11:37
Bonjour à tous, j'ai commencé à faire un petit programme vbs j'ai tout bien fait mais le seul petit problème c'est que je n'arrive pas à convertir une chaine en nombre.
Parce que j'utilise "inputbox" pour demander un nombre mais après il est inmanipulable car il est sous forme de chaîne.

J'ai essayé ce code que j'ai trouvé sur internet mais je ne comprends pas pourquoi il ne fonctionne pas.




Dim s as String
Dim i as Integer
s= InputBox ("Test", "Taper un nombre") 'Saisie dans une InputBox  d'un nombre par l'utilisateur.
's contient maintenant une chaîne de caractères, "45" par exemple
i=Integer.Parse(S)     'on transforme la chaîne s en Integer

Lorsque je le test, il me met :
Ligne : 1
Caract. : 7
Erreur : Fin d'instruction attendue



Avez-vous une solution à mon problème ?
Merci d'avance !

23 réponses

cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
19 juil. 2007 à 11:55
Salut,

Tu peux faire je pense : s = Clng(s) << attention au symbole décimal si il y a
                       s = Cint(s)
....
.......

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
19 juil. 2007 à 11:55
Même : s = Val(s)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juil. 2007 à 14:55
Salut,
Pas CDex mais CDec => de toute facon[auteurdetail.aspx?ID=9517 JMO] a dit (avec raison d'ailleurs) quelle n'existe pas dans VBS mais en revanche Cint Existe mais ca limite la taille des nombres a entrer

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
19 juil. 2007 à 11:58
Et puis à la place de faire : Dim S As String >> Dim S as Long ou Integer ou Double suivant ton utilisation de la plage d'entrée de valeur dans ton InputBox..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
19 juil. 2007 à 11:58
Avec val() mais attention au nombre a virgule car selon les paramettres regionaux le caractere sera "," ou "." etc...

Cela est valable egalement pour l'espace des milliers

Tu peux guider l'utilisateur en lui fournissant un masque de saisie
genre "0 000.00"

@+

E.B.
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juil. 2007 à 13:00
Salut,
Je vioens te tester ce code sous VS2005 et il marche très bien ton code.

@+: Ju£i?n
Pensez: Réponse acceptée
0
bastnt Messages postés 19 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 avril 2008
19 juil. 2007 à 13:10
Merci beaucoup pour ces réponses rapides
mais le problème à ce que je vois viens de cette ligne : "Dim s as String"
J'ai remplacé as String par as Integer et Double mais les trois ça fait toujours la même erreur :
Ligne : 1
Caract. : 7
Erreur : Fin d'instruction attendue

Lorsque je met "Dim s" tout seul il n'y a pas de problèmes.

Pour info je programme avec notpad++ tout simplement et j'enregistre fichier.vbs, tou ça pour vous dire que j'utilise pas de logiciel comme des complieurs (enfin je sais pas trop si ça peut vous aider ^^, mais bon ! )
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
19 juil. 2007 à 13:20
Je vais peut-être dire une bourde, mais il me semble avoir vu cela:

Dim S AsStrting

Ou essaye de changer "s" en Dim Rep.....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juil. 2007 à 13:23
Salut,
"Pour
info je programme avec notpad++ tout simplement et j'enregistre
fichier.vbs, tou ça pour vous dire que j'utilise pas de logiciel comme
des complieurs (enfin je sais pas trop si ça peut vous aider ^^, mais
bon ! )"

Cherches pas plus loin ca vient du fait que tu essaie de mettre un code .NET dans un fichier et dans faire un VBScript PAS POSSIBLE.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 26
19 juil. 2007 à 13:24
 Bonjour,

En vbs la déclaration des variables est implicite.

Dim s '<strike>as String</strike>
Dim i '<strike>as Integer</strike>
s= InputBox ("Test", "Taper un nombre",45) 'Saisie dans une InputBox ' d'un nombre par l'utilisateur.
's contient maintenant une chaîne de caractères, "45" par exemple

msgbox s

Le ' est utilisé pour documenter un script (correspond au REM).
De plus, il n'existe pas de fonction de conversion de chiffres en lettres.
En prenant le CInt de "s" + lecture de s (len + left vers right)  + tableaux des chiffres "un, deux, ....",
c'est réalisable, mais avec de la patience.

jean-marc
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juil. 2007 à 13:26
Re,
Si tu veux adapter plus ou moins le code proposé il te faut faire ceci:

Dim s
Dim i
s = InputBox("Test", "Taper un nombre")
i = CDec(s)
MsgBox (i), ----
[code.aspx?ID=41455 By Renfield]

Mais si l'utilisateur entre "toto" ou n'importe quel texte tu va avoir une exception.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 juil. 2007 à 13:39
y'en a qui aiment quand même bien le copier coller...

parce que du .Net dans du VBS, costaud, tout de même ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juil. 2007 à 13:48
re,

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 juil. 2007 à 14:13
D'après ce que j'aperçois (en rouge et apparaissant de temps à autre dans le smiley de Julien)... je dirais que ce n'est pas du Copier/coller mais du CDPCL
(qu'on me donne 20 balles et j'accepte de traduire  ).
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
19 juil. 2007 à 14:24
Centre Diocésain de Pastoral ,Catéchèse et Liturgie  ?





Renfield





Admin CodeS-SourceS

- MVP Visual Basic
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 juil. 2007 à 14:30
Bé que nenni :
Collé D'un Puissant Coup de Langue, tout bêtement...
Yaka regarder la langue de Julien's smiley....
Patapé...
Vais faire ma siestita...
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 26
19 juil. 2007 à 14:32
Re,

Salut Jacques,
Ai-je bien compris ?
L'utilisateur saisit deux mille sept et le gentil msgbox lui répond 2007 ...
A moins que ce ne soit l'inverse.
L'algo (jmfmarquien) existe surement.
Julien, pour info, CDec n'existe pas en vbs.

D'autre part, vous aurez tous remarqué que notre "cher" Admin DarkSidious n'a pas encore locké ce topic.

jean-marc
0
bastnt Messages postés 19 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 avril 2008
19 juil. 2007 à 14:40
JMO tu pourrais me dire comment  faire (comme tu me dit que c'est réalisable)
Parce que ce problème est la seule chose qu'il me manque dans mon programme et je voudrais vraiment le finir !
0
bastnt Messages postés 19 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 avril 2008
19 juil. 2007 à 14:43
euh jrivet la fonction Cdex() que tu me propose il me met type invalide 'Cdex'
0
bastnt Messages postés 19 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 19 avril 2008
19 juil. 2007 à 15:21
Merci jrivet Cint() marche très bien ^^

Mais pk dis-tu que c'est limité ?
0