Application console vb6 et paramètres

sarra_86 Messages postés 6 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 27 mars 2008 - 26 mars 2008 à 18:22
sarra_86 Messages postés 6 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 27 mars 2008 - 27 mars 2008 à 15:52
Bonjour,
Je fais un programme en visual basic 6.0 qui lance une application console contenant  un tableau où je gère des paramètres pour lancer une fonction. Le problème que lorsque je fais le test de la boucle if sur un nombre ça fonctionne et le programme fait l'appel à la fonction :

If CmdArgs(2) = 3 Then

.WriteLine "hi"
Call connecter(retour)

Else
.WriteLine "no"
.WriteLine CmdArgs(2)

End If
et lorsque j'ai essayer de modifier le "3" par "connexion" ça n'a pas marché et il m'affiche le message "no" pourtant quand j'affiche la 2éme case du tableau ( WriteLine CmdArgs(2)) je trouve qu'il existe vraiment "connexion":

If CmdArgs(2) = connexion Then

.WriteLine "hi"
Call connecter(retour)

Else
.WriteLine "no"
.WriteLine CmdArgs(2)

End If

à savoir que le tableau CmdArgs et de type string.
Je n'arrive pas à comprendre merci de m'expliquer.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 mars 2008 à 18:36
Salut
"Je fais un programme en visual basic 6.0" et tu postes ta question dans VB.Net : ça commence mal !!
Catégorie de la question modifiée

"qui lance une application console contenant  un tableau" : Là, va falloir expliquer ce que c'est, parce que je ne vois pas du tout

Et en lisant tes lignes, je m'aperçois que c'est du VBS (VB Script) pas du VB6 (WriteLine ... ou je me trompe ?)

Avant de vouloir lire l'argument n° 3, vérifie qu'il existe.
Essaye d'utiliser UBound(CmdArgs) pour connaitre l'index maximum de ce tableau.
Et ce tableau, il vient d'où ?
Rappel : en général, les tableaux commencent avec l'index 0, pas 1 ...

Sinon, revois ta question, parce que ce n'est pas clair du tout

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
sarra_86 Messages postés 6 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 27 mars 2008
26 mars 2008 à 19:13
Merci de me répondre mais concernant le programme c'est en vb6 où j'ai fais une classe contenant des fonctions à l'appeller telque writeline ça tombe par hasard avec le vbnet.

["qui lance une application console contenant  un tableau" : Là, va falloir expliquer ce que c'est, parce que je ne vois pas du tout.] le programme se lance à partir de l'invite de commande il ne contient pas d'interface donc il suffit d'ecrire la commande et  donner les paramètres telque c:\ application.exe par1 par2 par3
Ces paramètres vont etre stocker dans le tableau.
D'où le tableau n'a pas un max c'est selon le nombre de paramètres lancés à la commande. ce que je veux c'est tester la deuxième case de tableau qui me présente le champs de commande auquel je fais l'appel à la fonction convenable.
J'espère que c'est plus claire.
Merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 mars 2008 à 02:29
Ok
Donc, je te répond la même chose :
Avant de vouloir lire l'argument n° 3, vérifie qu'il existe.
Essaye d'utiliser UBound(CmdArgs) pour connaitre l'index maximum de ce tableau.

Rappel : en général, les tableaux commencent avec l'index 0, pas 1 ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
sarra_86 Messages postés 6 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 27 mars 2008
27 mars 2008 à 15:52
Salut,
Je viens de modifier le code en utilisant la fonction instr, avec ce changement j'ai pu executer la fonction connecter mais le problème que j'ai d'autres fonctions à executer selon la valeur du CmdArgs(2) j'ai essayé donc d'utiliser  select case mais ça n'a pas marché ce qui me retourne au premier problème ou le programme passe directement à afficher le message "no" .
Pour les éléments du tableau je viens de les vérifier ils existent.
est ce qu'il peut etre un problème de type ou de conversion car je n'arrive pas à comparer CmdArg (2) avec une autre chaine de carractère en utilisant "=" (le tableau et de type string) à savoir que j'ai réussi à le comparer avec nombre entier mais en utilisant Cint.

r = InStr(1, CmdArgs(2), "connexion", vbTextCompare)

If r = 1 Then
.WriteLine "hi"
Call connecter(retour)
ElseIf r <> 1 Then
.WriteLine "no"
.WriteLine CmdArgs(2)

End If

Merci de me répondre
0
Rejoignez-nous