Réutiliser une fonction

cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 30 août 2005 à 17:32
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 31 août 2005 à 16:28
Bonjour, j'ai un dernier ptit problème.



J'ai une fonction dans la classe parametre qui lit les valeurs de mon fichier XML et les affiches dans des champs Text :



CODE :

public void Lecture_XML()

{

string xml_file = "config.xml";

XmlTextReader config = null;

string tmp = "";



try

{

config = new XmlTextReader(xml_file);


config.WhitespaceHandling =
WhitespaceHandling.None;



while(config.Read())

{


if (config.NodeType ==
XmlNodeType.Element)


tmp =
config.Name;






if (config.NodeType ==
XmlNodeType.Text)

{



switch(tmp)

{



case "serveur" : this.tbhote.Text
= config.Value;



break;



case "utilisateur" :
this.tblogin.Text = config.Value;



break;



case "passe" : this.tbpwd.Text =
config.Value;



break;



case "base" : this.tbbase.Text =
config.Value;



break;



case "loginAnabel" :
this.loginAnabel.Text = config.Value;



break;



case "passAnabel" :
this.passAnabel.Text = config.Value;



break;



//case "IP" : this.AdresseIP.Text
= config.Value;



//break;



default : break;

}

}

}



Maintenant, je souhaite réutiliser cette fonction dans la classe anabel.

J'ai donc fait :



new Taches_planifiees.Parametre().Lecture_XML();



Mais ce que je n'arrive pas a faire, c'est afficher cette valeur (la récupérer) !!!



Merci de votre aide

5 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
30 août 2005 à 17:43
Pas compris, ta méthode ne retourne pas de paramètre, quelle valeur ?
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
30 août 2005 à 17:46
C'est la première fois que j'essais de faire une fonction qui me permettrais de ne pas répéter plusieurs fois le meme code.



J'ai fait cette fonction car elle est censé faire toujours la meme
chose, c'est à dire afficher le texte qu'elle a récupéré dans le XML !!!



Peut etre que ne m'y prend pas de la bonne manière !!



Dans la classe parametre, je l'appelle tout simplement Lecture_XML(); et c'est tout !!



Merci
0
cs_69chris Messages postés 318 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 30 décembre 2005 1
30 août 2005 à 18:00
Salut,



Alors, j'ai plusieurs remarques. La première c'est que j'espère que tu
fermes le xmlTextReader dans le bloc finally. Ensuite, Tes paramètres
de config peuvent pas être sotcké dans le fichier de config de ton
appli (à moins que ça soit pour apprendre à lire du xml). Et enfin,
plus dans ton problème, tu utilise "this", ce qui désigne une instance
de la fenêtre "Parametre". Celle que tu vois marche bien, par contre
dans ta nouvelle classe, tu instancie une nouvelle fenêtre "Parametre"
et tu appel la méthode de lecture des infos. Donc c'est cette nouvelle
fenêtre qui est affecté (pas celle que vois).....

Donc, solution, tu déclare ta méthode (une fonction renvoie une
valeur/référence) static avec en paramètre une instance de "Parametre".
Ainsi, ça doit marcher. Je fais le début :



public static void Lecture_XML(Parametre frmParam)

{

string xml_file = "config.xml";

\\....



case "serveur" :
frmParam.tbhote.Text = config.Value;



break;



case "utilisateur" :
frmParam.tblogin.Text = config.Value;
\\ et ainsi de suite



Ensuite pour appeler la méthode, il suffit de faire

Taches_planifiees.Parametre().Lecture_XML();



Par contre, les contôles TextBox sont private donc non modifibale
depuis l'extérieur.... Passe les en public, ça marchera. Par contre,
c'est pas joli..



Solution + jolie:

Faire une classe de paramètres (héritant de object) qui contient seulement les valeurs.

Lui mettre la méthode de lecture du XML.

Dans la fenêtre Paramètre, définir une propriété param de type paramtre et dans le set faire le lien avec tes textbox.



Pour + d'info, je reste dispo.

Chris


N'oubliez pas de cloturer votre post.
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
31 août 2005 à 10:57
Salut,
Comme dit 69Chris tu créé un nouveau contrôle avec une méthode FillValue qui prend en paramètre le chemin d'un fichier xml.

La méthode serait du style (à optimiser)
public string FillValue(string ParamName, string XmlFilePath)
{
XmlDocument Config = new XmlDocument(XmlFilePath);
Config.GetElementsByTagName(ParamName)[0].Value;
}
Si tu veux mieux tu peux faire une enum des des différents contrôles (tbpwd, tbbase, ...)
et dans le constructeur de ta classe tu spécifie le contrôle, comme ça tu peux supprimer le paramètre ParamName.
0

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

Posez votre question
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
31 août 2005 à 16:28
Désolé mais je suis un grand débutant et je ne n'arrive pas a le faire. Auriez vous un ptit exemple que j'arrive a le faire !!!

Merci
0
Rejoignez-nous