IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#][1.1] Rajouter Noeud Fichier XML (plus complexe qu'un rajout basique)


Sujet :

Windows Forms

  1. #21
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    le voici !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    		public void AjouterDataXML(String str, Form1 Feuille1, String montant)
    		{
    			String debit;
    			String credit;
    			String Compte = Feuille1.comboBox1.Text;
    			String FicEnreg = str;
    			XmlNodeList ListeNoeud2;
    			XmlDocument XmlDoc = new XmlDocument();
    			XmlDoc.Load(str+=".xml");
    //			ListeNoeud = XmlDoc.SelectNodes("/labanquedusud/compte");
    			ListeNoeud2 = XmlDoc.SelectNodes("/labanquedusud/compte/operations/operation");
     
     
     
    			if (str!=Compte)
    			{
    				credit=montant;
    				debit="0";
    			}
    			else
    			{
    				credit="0";
    				debit=montant;
    			}
     
    //			XmlNode node = XmlDoc.DocumentElement;
    //			XmlElement element = XmlDoc.CreateElement("Intitule");
    //			element.InnerText="Virement";
    //			XmlElement element2 = XmlDoc.CreateElement("Debit");
    //			element2.InnerText=debit;
    //			XmlElement element3 = XmlDoc.CreateElement("Credit");
    //			element3.InnerText=credit;
    //			
    //
    //			////
    //			
    //			XmlNode NoeudFichier;
    //		
    //
    //
    //XmlDoc.InsertAfter(element,node.FirstChild);
     
    			int lastIndex = ListeNoeud2.Count - 1;
    			int nextOrder = Convert.ToInt32(ListeNoeud2[lastIndex].Attributes[0].Value) + 1;
    			//nextOrder = nextOrder + 1;
     
    			XmlNode parent = ListeNoeud2[0].ParentNode;
    			XmlElement newNode = XmlDoc.CreateElement("operation");
    			newNode.Attributes.Append(XmlDoc.CreateAttribute("order"));
    			newNode.Attributes[0].Value = nextOrder.ToString();
    			parent.AppendChild(newNode);
     
     
     
    			XmlElement element = XmlDoc.CreateElement("Intitule");
    			element.InnerText = "Virement";
    			XmlElement element2 = XmlDoc.CreateElement("Debit");
    			element2.InnerText = debit;
    			XmlElement element3 = XmlDoc.CreateElement("Credit");
    			element3.InnerText = credit;
    			newNode.AppendChild(element);
    			newNode.AppendChild(element2);
    			newNode.AppendChild(element3);
     
     
    			FicEnreg = FicEnreg+="2";
    			XmlDoc.Save(FicEnreg+=".xml");	
     
    		}
    Les tests sont commentés ! voilà !
    j'espere que ce n'est juste qu'une rigolade

  2. #22
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Juste au cas où
    Citation Envoyé par Laeticia
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String FicEnreg = str;
    XmlDoc.Load(str+=".xml");
    ...
    FicEnreg = FicEnreg+="2";
    XmlDoc.Save(FicEnreg+=".xml");
    Tu enregistres le tout dans un nouveau fichier. Mais quand tu fais un second ajout, tu le fais sur le fichier original ou sur celui modifié ?

  3. #23
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Juste au cas où

    Tu enregistres le tout dans un nouveau fichier. Mais quand tu fais un second ajout, tu le fais sur le fichier original ou sur celui modifié ?

    ben en fait la logique de l'application c'est celle ci !!

    On charge un fichier xml (1234.xml)
    on l'affiche dans un datagrid

    on tape une valeur dans une textbox

    on selectionne deux compte, dont l'un des deux est forcément le compte sur lequel on consulte les opération (1234.xml par exemple)

    on valide le virement

    il apparelle la méthode du dessus

    il ajoute les noeuds
    (mais ces noeuds, ils sont ajouté en fait en cache, et juste reellement ajouté au moment ou on fait le .save() non ?)

    et moi je vais consulter le fichier 12342.xml
    pour voir si ça a fonctionné

    le souci vient du fait que lorsque je refais un virement, il modifie en apparence le dernier noeud, au lieu d'en rajouter un logiquement comme il l'a fait sur l'opération précédente

    mystere !!

    Merci pour votre aide !!

  4. #24
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par Laeticia
    le souci vient du fait que lorsque je refais un virement, il modifie en apparence le dernier noeud, au lieu d'en rajouter un logiquement comme il l'a fait sur l'opération précédente
    Mais pour ce nouveau virement, tu te bases sur le fichier original (1234.xml) ou sur celui modifié (12342.xml) ? C'était ma question, car si jamais tu te bases sur le fichier original à chaque nouveau virement, tu perdras les modifications faites entre temps

  5. #25
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Mais pour ce nouveau virement, tu te bases sur le fichier original (1234.xml) ou sur celui modifié (12342.xml) ? C'était ma question, car si jamais tu te bases sur le fichier original à chaque nouveau virement, tu perdras les modifications faites entre temps

    ça fonctionne nickel !!
    merci tu es vraiment très bon !
    (je n'ai pas tout saisi, j'y reviendrai après )

    Par contre (et oui il y a un par contre cette fois ) j'ai un souci !

    En fait c'est plus un souci de notion de POO.

    J'explique.

    Comme je fais un virement d'un compte a un autre, j'ai deux compte.
    le compte a est le compte débit (combo box 1) et le compte b est le compte crédité (combo box 2 donc).

    j'ai donc cette méthode que j'ai montré plus haut qui me permet donc d'inserer dans le fichier tapé dans la text box les données relatives au virement.
    Mais j'ai besoin logiquement de faire sa contrepartie !
    Insérer les meme données mais à l'inverse dans l'autre compte !!
    Alors c'est là que je me heurte a un souci de POO.

    Je ne veux pas refaire deux fois la meme méthode ce n'est pas logique et professionnel.

    Il me faudrait arriver a récupérer le numéro de l'autre compte et le communiquer à l'extérieur de la classe
    C'est la que je me noie !!
    pour connaitre le numéro de compte j'ai ce code basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    			if (NumCpt!=Compte)
    			{
    				credit=montant;
    				debit="0";
    				NumCompte2=Feuille1.comboBox1.Text;
    			}
    			else
    			{
    				credit="0";
    				debit=montant;
    				NumCompte2=Feuille1.comboBox2.Text;
     
    			}
    NumCpt c'est le numéro du compte tapé dans la textbox passé en parametre de la méthode (numéro du compte sans le .xml)
    Compte est la valeur du combobox1.

    NumCompte2 est donc le numéro de l'autre compte.

    Comment faire pour communiquer ce numéro en dehors de la classe ?
    Par exemple pouvoir sur cet evenement(private void button4_Click(object sender, System.EventArgs e)) dans le Form1.cs dire tiens je prends la valeur de l'objet NumCompte2 et je la passe en parametre : un peu dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cls_XML classeXML = new cls_XML();
    classeXML.AjouterDataXML(Str_Cpt,this,MontantVirement);//premier appel d'ajouter XML
    String NmCpt2 = LaValeurDeNumCompte2
     
    classeXML.AjouterDataXML(NmCpt2,this,MontantVirement);

    Voilà j'espere que ce n'est pas "trop" désolant

    Merci encore pour votre aide !!

  6. #26
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Pour faire au plus simple, et en supposant que j'ai compris ce que tu veux faire, tu n'as qu'à retourner cette information par le biais de ta méthode AjouterDataXML (qui ne renvoie rien pour le moment).

  7. #27
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Pour faire au plus simple, et en supposant que j'ai compris ce que tu veux faire, tu n'as qu'à retourner cette information par le biais de ta méthode AjouterDataXML (qui ne renvoie rien pour le moment).
    Certes !!!

    Mais j'ai déjà essayé ça !

    J'ai passé de void a string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string AjouterDataXML(string str, Form1 Feuille1, string montant)
    et j'ai fais un return :

    mais c'est là que je vois que je suis nullos

    Comment je fais maintenant pour récupérer ce qui est dans NumCompte2 ?
    Il me manque un truc en fait pour comprendre

    Merci de ton aide précieuse StormimOn !

  8. #28
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par Laeticia
    mais c'est là que je vois que je suis nullos
    Ce n'est pas une question d'être nulle, ce qu'il te manque à priori c'est une connaissance des bases de la programmation, donc il va falloir se mettre à lire

    Citation Envoyé par Laeticia
    Comment je fais maintenant pour récupérer ce qui est dans NumCompte2 ?
    Il me manque un truc en fait pour comprendre
    Pour récupérer le retour d'une méthode c'est une simple affectation. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String NmCpt2 = classeXML.AjouterDataXML(Str_Cpt,this,MontantVirement);

  9. #29
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par StormimOn
    Ce n'est pas une question d'être nulle, ce qu'il te manque à priori c'est une connaissance des bases de la programmation, donc il va falloir se mettre à lire


    Pour récupérer le retour d'une méthode c'est une simple affectation. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String NmCpt2 = classeXML.AjouterDataXML(Str_Cpt,this,MontantVirement);

    Ah ok !! tout simplement quoi
    En effet c'est certaines bases qui me manque surtout sur la POO

    Donc en fait si je comprend bien !
    je ne fais que l'appel de méthode par le biais de la deuxieme variable !
    puisqu'elle s'execute une fois avec la premiere !

    Ok ok c'est pas si dur ! mais ce n'est pas évident !

    je vais tout bien regarder et je reviens pour cloturer ce thread

    Merci encore à vous tous et spécialement a toi StormimOn

  10. #30
    Membre confirmé Avatar de Laeticia
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 98
    Par défaut
    Citation Envoyé par Laeticia
    Ah ok !! tout simplement quoi
    En effet c'est certaines bases qui me manque surtout sur la POO

    Donc en fait si je comprend bien !
    je ne fais que l'appel de méthode par le biais de la deuxieme variable !
    puisqu'elle s'execute une fois avec la premiere !

    Ok ok c'est pas si dur ! mais ce n'est pas évident !

    je vais tout bien regarder et je reviens pour cloturer ce thread

    Merci encore à vous tous et spécialement a toi StormimOn

    Bonjour !!

    Parfait tout fonctionne à merveille !

    je vous remercie tous !
    Bravo !!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [DOM] importer un noeud d'un fichier xml et le coller dans un autre fichier
    Par iznogoud36 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/06/2006, 12h55
  2. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  3. [xml vs IE] IE n ouvre plus mes fichiers Xml
    Par wodel dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 01/03/2006, 12h38
  4. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo