Création d'une variable dont je reçois le nom et la valeur en paramètres d'entré

25230 Messages postés 12 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 24 février 2010 - 14 nov. 2005 à 19:12
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 16 nov. 2005 à 13:16
Bonjour,

j'ai créé un projet VB qui reçoit en paramètres d'entrée les noms et les valeurs de variables

exemple :
projet.exe VARIABLE1=VALEUR1 VARIABLE2=VALEUR2 ...

je souhaite dans mon projet pouvoir récupérer ces parametres d'entree (facile)
et pouvoir en quelque sorte "évaluer" ces paramètres, çad,
pouvoir créer des variables VARIABLE1 et VARIABLE2 et leur attribuer les
valeurs VALEUR1 et VALEUR2 ...

Merci beaucoup pour votre aide !!

Thierry
A voir également:

15 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 nov. 2005 à 19:21
salut,
c'est pas du PHP. tu ne peux pas créer de variables en cours d'execution
@+ PCPT [AFCK]
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 nov. 2005 à 19:24
Tu faire un tableau par type de ton choix (Ici, ce serait peut être pas beaucoup plus rapide à l'execution) + un tableau de chaîne par tableau (pour les noms). Le lien sera que les deux ont le même indexe.

dim AintTab() as Long
dim AstrIntNames() as String

Initialisation:
redim AintTab(0 to 0)
redim AstrIntNames(0 to 0)

Ajout d'une variable:
redim preserve AintTab(0 to Ubound(AintTab) + 1)
redim preserve AstrIntNames(0 to Ubound(AstrIntNames) + 1)
AintTab(Ubound(AintTab))= 15
AstrIntNames(Ubound(AstrIntNames))= "Nomdelavariable"

Pour la suppression, tu remplaces la variable à supprimer par la dernière du tableau, et du redimenssionne en bound(AstrIntNames) - 1. L'indexe aura changé, mais comme tu le change dans les deux tableaux, pas de soucis !
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 nov. 2005 à 19:26
Désolé pcpt.

Houla, je viens de contredire un expérimenté sans le faire exprès !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 nov. 2005 à 19:33
rt15 -> ta méthode, largement simplifiable stoquerait alors 2 chaînes * nombre d'ensembles.
donc en aucun cas on ne peut créer un variable...
@+ ;)
0

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

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 nov. 2005 à 19:36
Une variable seule, non, pas en VB tout seul.

Mais on peut simuler la mémoire.

2 chaînes * nombre d'ensembles

Je proposait plutôt: 1 tableau par type + son tableau de chaînes.

largement simplifiable ? comment ?
0
25230 Messages postés 12 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 24 février 2010
14 nov. 2005 à 19:40
bon, et bien en tous les cas, merci beaucoup pour vos réponses.
Si je comprends bien, il ne me reste plus qu'à trouver une autre solution ...

Merci,
Thierry
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
14 nov. 2005 à 19:57
Salut. D'une part, en vb6, impossible de créer des variables "à la volée" sans passer par des astuces beaucoup trop lourdes.

D'autre part, les paramètres en entrée d'un exe sont captés par la fonction Command(), voir la MSDN. Ca, tu dis le savoir donc c'est OK je ne t'apprendrai pas comment t'en servir.

Puisque c'est toi qui écrit le prog, tu dois savoir ce que ton prog doit attendre comme paramètres et prévoir les variables correspondantes.
Donc, où est le problème ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 nov. 2005 à 20:18
rt15 ->
voici une méthode pour alléger....
cependant, comme pas de buffer, toutes les pseudos-variables doivent avoir le même nombre de caractères


Option Explicit
'
Dim aResultats() As String
'
'
Private Sub Command1_Click()
Dim sRecue As String: sRecue = "projet.exe VARIABLE1=VALEUR1 VARIABLE2=VALEUR2 VARIABLE3=VALEUR3"
' on vire 'projet.exe "
sRecue = RightB$(sRecue, LenB (sRecue) - InStrB(1, sRecue, " ") - 1)

' on récupère les ensembles
Dim aRecues() As String
aRecues = Split(sRecue, " ")

' on sauve
ReDim aResultats(UBound(aRecues), 1)
Dim i As Long

For i = 0 To UBound (aRecues)
aResultats(i, 0) = LeftB$(aRecues(i), InStrB(1, aRecues(i), "=") - 1)
aResultats(i, 1) = RightB$(aRecues(i), InStrB(1, aRecues(i), "=") - 5)
Debug.Print aResultats(i, 0) & "~" & aResultats(i, 1)
Next i
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

++
PCPT [AFCK]
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 nov. 2005 à 10:04
Merci pcpt.

Heu, cela ressemble beaucoup à ce que je disais, sur le principe en tout cas, non ?

Par contre, il existe l'objet collection, (et dictionary, dont j'ai vaguement entendu parler) qui permettent peut être de se débarrasser du tableau à deux dimensions de Strings, et de simplifier fortement l'accès et la suppression.

25230

Heu, ou est le problème sur le principe de stocker sois même ses variables dans un tableaux ou une liste ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 nov. 2005 à 12:32
rt15-> salut

j'ai simplifié, à ta demande. çà resemble en effet, mais il y a beaucoup moins de traitements (c'est le principe!!!)

et il n'y a aucun problème à stoquer en tableau, c'est juste que ce n'est pas la demande de 25230 ; demande irréalisable!!!
(désolé de répondre plus ou moins à sa place)
voilà tout ;)

dictionary ? sous VB6 ? là je voudrais bien en savoir plus ...
++
PCPT [AFCK]
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 nov. 2005 à 13:25
pcpt

Vi vi tu as fait précisément ce que tu disias que tu allais faire, et même mieux, tu as découpé l'entrée.

Dictionary (ou Dictionnary ou ?) Je dois avoir ça qui traîne au fond de mon PC. Je vais essayer de te le déloger.

25230

Y a presque forcément moyen de faire ce dont tu parles.

Tu peux être plus précis sur l'emplois de tes variables ?
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 nov. 2005 à 19:09
pcpt.

En fait, je crois que Dictionary vat pas t'intéresser !

Il semblerait que ce soit du script (Au même titre que FileSystemObject, connu pour ces problèmes et sa lenteur sur ce site)!

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/VBRef98/html/vbmscLROverview.asp

Par contre, il doit être agréable d'emplois.

Désolé, fausse piste.

Si tu veux plus d'infos, je reste à ta dispo.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
15 nov. 2005 à 19:17
re,
ton lien ne mène sur aucune page ~exacte~
çà m'intéresse juste par curiosité ;)
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
16 nov. 2005 à 10:08
Exact: mon lien mène au chapitre ! C'est chiant ça... Encore pardon.

Bon, du chapitre, tu clique sur "Language Reference" (sur la gauche)

Puis sur "Objects" (sur la gauche aussi).

Puis sur "D" (A... gauche !)

Puis sur "Dictionary Object" (Pour changer, à gauche)

Et là t"es sur la page principale de Dictionary sous VB6.

Tu constates que la classe est cée à partir de Scripting.Dictionary.

FileSystemObject est issue de Scripting.FileSystemObject

Les deux ont le même comportement (Pas de complémentation auto du code).

J'en conclu que dictionary est du script.

Sinon, c'est le même principe que collection, mais avec plus de méthodes, et moins de possibilité, je crois (pas de Dictionary d'objets quelconques).
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 nov. 2005 à 13:16
salut,
vu. ok, merci. t'avais raison, c'est pas intéressant.
(et apparemment pas non plus utile pour 25230)

+
PCPT [AFCK]
0
Rejoignez-nous