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

Résolu
Jayme65 Messages postés 60 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 26 mars 2019 - 20 mars 2011 à 01:48
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 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!

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 mars 2011 à 13:11
Bonjour,

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

Mon site
3
Jayme65 Messages postés 60 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 26 mars 2019 2
25 mars 2011 à 00:10
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
25 mars 2011 à 08:43
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
0
Rejoignez-nous