Créer un nom de variable dynamiquement

Résolu
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 - 17 août 2004 à 16:50
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 - 18 août 2004 à 10:09
Bonjour,
je souhaite créer un nom de variable de facon dynamique pour avoir un truc du style mavar1, marvar2, mavar3,..., marvarN
au fur et a mesure que i s'incrémente de 1 a N.

j'ai trouvé un exemple de code en php mais je ne connais pas ce language, et je ne sais pas comment l'adapter pour C#

eval( "\$mavar = "mavar$i";" );

echo $$mavar;
if ($$mavar == TRUE) {
A voir également:

10 réponses

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
17 août 2004 à 17:06
Impossible de faire ca en C# (enfin apres faut faire du CodeDom et la ... sauve qui peut)

Par contre un tableau remplace tres bien se genre de chose :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
1
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
18 août 2004 à 09:52
Ca marche !!
voici comment je m'y suis prise:

**Proc AjoutEnfants (node parent, int niveau)Def de la chaine SQL avec org_level niveau et PARENT_ID parent.ID
Ouverture connextion avec dr
Tant que dr.read() (=tant kil y a des enr de niveau niveau et de parentID parentID)
- nouveau noeud = newNode
- mewNode.text = dr.getString(...
- newNode.ID = dr.getValue(...
- ajoutEnfants(newNode, niveau +1 )
- Parent.Nodes,add(newNode)
Fin tant que
Fermeture connexion et dr
Fin proc

***si premier chargement de la page
Int niveau = 0String SQL bla bla bla avec "org_level " + niveau
Ouverture connection avec dr
while(dr.Read())
- nouveau noeud = racine
- racine.text = dr.getString(...
- racine.ID = dr.getValue(...
- ajoutEnfants(racine, niveau +1 )
- TreeView3.Nodes.Add(racine); //ajoute tout le node au treeview
Fin while
dr.Close();
oleDbConnection.Close();

Merci beaucoup pour votre aide !!!!!!!!!!!!!
1
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
17 août 2004 à 17:14
Je te remercie pour ta réponse.

en fait, mon probleme, c'est que je dois construire un treeview dynamiquement a partir d'une table sur 6 niveaux.
je l'ai fait pour 3 niveaux, mais bon, c'est toujours pareil et j'aimerai améliorer le truc pour faire ca dans une boucle pour i = 0 a 6, ou le nom de mon node change pour chaque i.

est-ce que tu comprend mon probleme ou tu veux que je détaille et fasse un algo ?

merci de topn aide
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
17 août 2004 à 17:35
Veux bien un peut de details la :)

C koi pour toi un tableau à 6 niveaux ? parce que pour mmoi ca doit se declarer comme ca 6 niv : Type MonTab[][][][][][] :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0

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

Posez votre question
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
17 août 2004 à 17:48
lol nan t'as pas compris. en fait, est-ce que tu connais l'objet treeview ?

Je veux remplir un treeview (le truc avec les ptits dossiers comme dans l'explorateur window)
il doit avoir 6 niveaux, c'est a dire qu'il y a une racine (niveau 0), avec plusieurs dossiers(niveau 1), et dans chaque dossier il y a d'autres dossiers(niveau2) et ainsi de suite...

je remplis ce treeview avec les données contenues dans une table Oracle.

avec cette table, je connais la description de l'enr, son ID, l'id parent et son niveau

voici comment je m'y prend pour l'instant:
tant qu'il y a des enregistrements dans dr (contient ceux de niveau 0):
faire un nouveau noeud appelé racine
racine.text = dr.getValue(5)
racine.ID = dr.getValue(0)
dr2 = tous les enregistrements de niveau 1 et de parent racine.ID
tant que dr2.read
faire un nouveau noeud appelé newNode2
newNode2.text = ...
newNode2.ID=.....
dr3 = tous les enr de niveau 2
tant que dr3.read
faire un nouveau noeud appelé newNode3
newNode3.text = ...
newNode3.ID=.....
ajout de newNode3 a newNode2
fin tant que (il n'y a plus de niveau 2 pour ce dr2)
ajout de newNode2 a la racine
fin tant que (il n'y a plus de niveau 1 pour ce dr)
ajout de la racine au treeView
fin tant q (il n'y a plus de niveau 0 pour ce treeView)

voila, comme tu vois ca se repete et normalement je dois aller jusqu'qu niveau 6.... je ne sais pas comment faire.... quelqu'un a-t-il une idee ?

merci !!!!
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
17 août 2004 à 18:11
Faire une fonction recursive qui prend en parametre le noeud parent (et a la limite l'id parent mais il doit etre dans le noeud je pense) et qui ajoute sous ce noeud tous les dossiers de celui-ci

Pour chaque nouveau dossier, elle se rappelle avec le noeud du new dossier :)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 août 2004 à 18:14
Juste comme ca :)

Moi quand je vois un treeview et surtout des nodes, je resoud bcp de
mes problèmes avec la recursivité

Je sais pas si ca peut t'aider ....

Bon courage

Cyril
0
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
18 août 2004 à 08:28
Merci beaucoup !

c'est vrai que je n'ai pas encore une grande experience en programmation et je n'y avais pas pensé !

je vais essayer ca tout de suite !
0
amel468 Messages postés 34 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 10 avril 2006 1
18 août 2004 à 10:09
ok ok et encore merci
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
18 août 2004 à 10:01
T'en prie si on peut aider :)

Un dernier conseil : evite d'utiliser dr.getValue(numcolonne) qui peut créer des trous de secu mais prefere dr[NomColonne]

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
-1
Rejoignez-nous