Nommer une variable à partir de la valeur d'une autre variable (évaluer, concaté [Résolu]

Messages postés
66
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
26 mars 2019
- - Dernière réponse : NHenry
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 octobre 2019
- 25 mars 2011 à 08:43
Bonjour,
Je suis débutant (donc, merci d'avance pour votre compréhension ;)
Voila, j'ai jusqu'à présent programmé en ActionScript, et je veux porter mon application en VB.

En ActionScript, je pouvais déclarer dynamiquement une variable et lui donnant une valeur extraite d'une autre variable (concaténation).
Je lisais un fichier XML comprenant: 'nom de l'article', 'valeur', 'poids', 'couleur',...
et je pouvais, à la volée, créer un tableau (à moins que ce ne soit un objet avec des propriétés?!), dont l'écriture se faisait ainsi:

* la variable 'article' récupère la valeur venant d'un fichier xml
article = this.firstChild.attributes.name
(ex: article= avion)
* cette valeur est alors utilisée dans la déclaration d'un nouvel objet, portant comme nom la valeur de cette variable
_root[article] = {poids:xmlpoids, couleur:xmlcouleur, prix:xmlprix};

Sur Flash, cette concaténation se faisait par l'usage des [] autour du nom.
Quand on agit de cette façon dans Flash, que ce soit pour lire ou écrire, le texte compris entre les [] est alors évalué comme étant le nom de l'objet/variable/tableau

Remarqué également qu'au passage, des propriétés sont créées (poids,couleur,prix) et remplies des valeurs venant du fichiers XML


Donc..;-) comment puis arriver à cette même "souplesse" avec VB: créer un objet dynamiquement, en le nommant (en l'évaluant) à partir d'une valeur d'une autre variable...et en lui créant/attribuant des propriétés au passage?!
(et si ce n'est pas possible, comment dois-je m'y prendre autrement?)

Je vous remercie de m'avoir lu, j'espère que j'ai été clair...et d'avance merci pour votre aide!
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 octobre 2019
136
3
Merci
Bonjour,

Regardes l'objet Dictionary(Of ...) il te permet de lier une valeur à une clé, cette clé peut être un texte.

Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
66
Date d'inscription
lundi 23 avril 2007
Statut
Membre
Dernière intervention
26 mars 2019
1
0
Merci
NHenry,
Merci pour ta réponse, qui m'a aiguillé sur la bonne voie.
Voici le code utilisé...si cela devait en interesser d'autres.
Merci

Private Class Data
  Public Property Poids As Decimal
  Public Property Couleur As String
  Public Property Prix As Decimal
 End Class

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  Dim d As New Dictionary(Of String, Data)
  d.Add("avion", New Data With {.Poids 15, .Couleur "Bleu", .Prix = 15000})
  d.Add("vélo", New Data With {.Poids 0.02, .Couleur "Rouge", .Prix = 7})
  MessageBox.Show(d("vélo").Poids)
 End Sub
Commenter la réponse de Jayme65
Messages postés
14570
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 octobre 2019
136
0
Merci
Bonjour,

Si ton problème est résolu, merci de marquer "Réponse acceptée" sur le ou les messages qui t'ont aidés.

Mon site
Commenter la réponse de NHenry