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

Jayme65 64 Messages postés lundi 23 avril 2007Date d'inscription 15 décembre 2016 Dernière intervention - 20 mars 2011 à 01:48 - Dernière réponse : NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention
- 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

Répondre au sujet
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 20 mars 2011 à 13:11
+3
Utile
Bonjour,

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

Mon site
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
Jayme65 64 Messages postés lundi 23 avril 2007Date d'inscription 15 décembre 2016 Dernière intervention - 25 mars 2011 à 00:10
0
Utile
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
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 25 mars 2011 à 08:43
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.