Créer un nom de variable dynamiquement [Résolu]

amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 17 août 2004 à 16:50 - Dernière réponse : amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
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) {
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 18 août 2004 à 09:52
1
Merci
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 !!!!!!!!!!!!!

Merci amel468 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de amel468
cs_Crazyht
Messages postés
1523
Date d'inscription
mardi 18 décembre 2001
Dernière intervention
21 août 2010
- 17 août 2004 à 17:06
0
Merci
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]
Commenter la réponse de cs_Crazyht
amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 17 août 2004 à 17:14
0
Merci
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
Commenter la réponse de amel468
cs_Crazyht
Messages postés
1523
Date d'inscription
mardi 18 décembre 2001
Dernière intervention
21 août 2010
- 17 août 2004 à 17:35
0
Merci
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]
Commenter la réponse de cs_Crazyht
amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 17 août 2004 à 17:48
0
Merci
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 !!!!
Commenter la réponse de amel468
cs_Crazyht
Messages postés
1523
Date d'inscription
mardi 18 décembre 2001
Dernière intervention
21 août 2010
- 17 août 2004 à 18:11
0
Merci
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]
Commenter la réponse de cs_Crazyht
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 17 août 2004 à 18:14
0
Merci
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
Commenter la réponse de jesusonline
amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 18 août 2004 à 08:28
0
Merci
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 !
Commenter la réponse de amel468
amel468
Messages postés
34
Date d'inscription
vendredi 10 janvier 2003
Dernière intervention
10 avril 2006
- 18 août 2004 à 10:09
0
Merci
ok ok et encore merci
Commenter la réponse de amel468
cs_Crazyht
Messages postés
1523
Date d'inscription
mardi 18 décembre 2001
Dernière intervention
21 août 2010
- 18 août 2004 à 10:01
-2
Merci
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]
Commenter la réponse de cs_Crazyht

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.