clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 2007
-
11 juil. 2007 à 20:12
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 2007
-
15 juil. 2007 à 22:28
Bonjour à tous,
Etant un débutant je me posais la question suivante :
Est-il possible de lire des données dans un fichier xml à une endroit précis et de rentrer chaque valeur dans un textbox différent?
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 11 juil. 2007 à 20:41
Merci pour cette réponse qui est très interessante, mais j'aurais aimé récuperer f1, f2 et f3 dans 3 textbox différents pour ensuite pouvoir réutiliser leurs valeurs autre part dans le code, est-ce possible (dans votre exemple on récupère tout le contenu et on l'affiche dans un listbox)?
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 11 juil. 2007 à 22:18
Non car dans le deuxième je met "textBox2.Text = Convert.ToString(node.InnerText);" donc ta deuxième solution est parfaite, par contre un erreur est survenue à la compilation :
"Une variable locale nommée 'DbNamelist' est déjà définie dans cette portée"
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 12 juil. 2007 à 19:05
Et par pitié par de concaténation de chaines de caractères dans des boucles : StringBuilder est votre ami.
En plus travailler directement sur la propriété Text du controle n'est pas forcément une bonne idée.
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 12 juil. 2007 à 20:11
Merci pour ces réponses, pour SharpMao je ne vois pas ce que vous voulez dire, vous pouvez montrer le début en exemple?
Pour coq : je me renseigne sur StringBuilder, car il est vrai que utiliser des textbox juste pour garder une variable(string) ne doit pas être la meilleure solution...
foreach (XmlNode node in DbNamelist)
{
textBox2.Text = node.InnerText;
}
Est-ce correct?
Pour ce qui est du StringBuilder si quelqu'un aurait un exemple ou une explication détaillé je suis preneur! Un énorme merci à tous ceux qui m'ont permis d'avancer!
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 juil. 2007 à 09:35
Je ne vois pas trop le but des boucles vu que quoi qu'il arrive tu ne garde que la dernière valeur, autant n'en sélectionner qu'une seule et l'afficher directement.
"car il est vrai que utiliser des textbox juste pour garder une variable(string) ne doit pas être la meilleure solution"
? Comment ça ?
Si le but est vraiment d'afficher la liste des valeurs :
XmlNodeList DbNamelist = doc.SelectNodes("Fournisseur/Nom1");
if ( DbNamelist != null && DbNamelist.Count>0 )
{
StringBuilder text = new StringBuilder();
foreach (XmlNode node in DbNamelist)
{
text.Append(node.InnerText);
text.Append(Environment.NewLine);
}
textBox1.Text = text.ToString();
}
else
{
// ...
}
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 14 juil. 2007 à 11:05
Je me réexplique, après avoir lu le fichier .xml je souheterais isoler chaque résultats du fichier .xml dans des variables que je pourrais par la suite réutiliser partout dans mon programme, et pour ce faire je n'ai pas trouvé mieux que la propriété "textBox.Text".
J'ai lu qu'on pouvait se servir d'un classe pour stocker les variables et faire du style "public static string Nom1" pour remplacer l'ecriture de chaque valeur dans un textBox, qui n'est pas très propre, est-ce cela dont vous me parliez?
Pour ce qui est des boucles je ne vois pas ce que vous voulez dire, pour faire simple mon code doit lire le fichier .xml, récupérer le Nom1 puis le mettre dans une variable, récupérer le Nom2 puis les mettre dans une variable, ect...
Si vous pensez que mon code n'est pas juste, n'hésitez pas...
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 juil. 2007 à 11:41
Oui, mais il n'y a qu'un seul Nom1, qu'un seul Nom2 et qu'un seul Nom3, non ?
Effectivement utiliser un champ de type String serait plus propre qu'instancier une instance de la classe TextBox juste pour se servir de sa propriété Text (qui obtient ou défini une instance de String)
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 15 juil. 2007 à 00:39
Oui il n'y a qu'un seul Nom1, Nom2, Nom3, ect...
Pour mon cas que serait-il judicieux de faire en ce qui concerne les variables? utiliser un champ de type String dans une class pour qu'il soit accessible partout dans le programme?
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 juil. 2007 à 09:19
Pour ce qui est de la persistance, ça dépend du contexte : type d'application, durée de vie de l'information désirée etc etc
Mais en tout cas pour ce qui est de la lecture des informations, autant utiliser SelectSingleNode et ne pas utiliser de boucle.
foreach (XmlNode node in DbNamelist)
{
textBox2.Text = node.InnerText;
}
Pour ce qui est des variables, il faut qu'elles existent pendant toute la durée de vie du programme, pouriez-vous les inclures dans l'exemple aussi tout en expliquant? Un grand merci d'avance pour votre aide!
clubberzZ
Messages postés89Date d'inscriptionvendredi 29 octobre 2004StatutMembreDernière intervention 3 décembre 20071 15 juil. 2007 à 22:28
J'ai corrigé l'erreur, mais maintenant j'ai deux erreurs distinctes :
La première :
Sur cette ligne : (XmlNode.SelectSingleNode;)
"Seuls une assignation, un appel, un incrément, un décrément et des expressions d'objet new peuvent être utilisés comme instruction"
La deuxième :
Sur cette ligne : (Noms._nom1 = nom1Node!=null ? nom1Node.InnerText : String.Empty;)
"'Noms._nom1' est inaccessible en raison de son niveau de protection"
(Sans doute du au fait que j'ai créer un fichier Noms.cs)
Avez-vous une idée? c'était ma dernière question à ce sujet, je vous remercie! J'ai tout ce dont j'ai besoin!
Cordialement