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

VB.NET Discussion :

"For each node .. Next" et Treeview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut "For each node .. Next" et Treeview
    Bonjour à tous! Je me casse la tête sur un problème depuis ce matin, pourtant sa me semble vraiment bête!!
    Voici mon code pour exporter le contenu d'un treeview dans un .txt (dans hiérarchie ni rien, juste tout les TreeNode.Text sur une ligne séparés par "|")

    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
    Try
                    'declaration des variables utiles
                    Dim Noeud As TreeNode
                    Dim fs As FileStream
     
                    'création du fichier txt
                    fs = File.Create("C:\__TRA_dev\TRA_MOD-" + TB_code_PF.Text + "-" + TB_indice_PF.Text + ".txt")
                    fs.Close()
     
                    'Instanciation du StreamWriter avec passage du nom du fichier 
                    Dim monStreamWriter As StreamWriter = New StreamWriter("C:\__TRA_dev\TRA_MOD-" + TB_code_PF.Text + "-" + _
                       TB_indice_PF.Text + ".txt")
     
                    For Each Noeud In TV1.Nodes
     
                        'enregistrement et ecriture du noeud dans le .txt 
                       ' Noeud = TV1.SelectedNode      <-edit: ligne supprimée
                        monStreamWriter.Write(Noeud.Text + "|")
     
                    Next
                    'Fermeture du StreamWriter 
                    monStreamWriter.Close()
     
                Catch ex As Exception
                    MsgBox("erreur")
                End Try
    Le résultat est que après avoir ecrit le "text" de la racine de mon treeview, ce programme ne reprend pas , il passe a la suite.

    Merci de votre attention, bonne journée!!

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 159
    Par défaut
    Pourquoi tu fais ca ?
    Noeud = TV1.SelectedNode

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Oups, en fait je viens de le rajouter... A force de chercher j'en viens a faire n'importe quoi!!
    Mais le problème est le même sans "Noeud = TV1.SelectedNode"

    Exemple: mon fichier texte devrait contenir:
    "text de la racine"|"Text de l'enfant 1"|etc...
    Mais à la place je n'ai que:
    "texte de la racine"|

    ps:quelle rapidité!! =)

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Je pense qu'il faut que tu fasses une boucle dans la boucle pour parcourir tout les noeuds enfants

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Merci du tuyau, je vais essayer pour voir ce que sa donne!!
    Edit: Heu.... Je ne vois pas "dans quoi" je peux faire une boucle a part TV1.nodes!!

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    J'ai oublié de préciser quelques chose: je sais que mon arbre:
    -ne peut avoir qu'une seule racine
    -une racine peut avoir un "enfant" ainsi qu'un "sous-enfant" mais pas plus!!

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Donc tu auras forcément le père(unique noeud racine ?), peut être un enfant, et peut être un petit-enfant ?

    Dans ce cas tu n'as pas besoin de boucle, tu lui fais écrire le père, puis tu test la présence d'un fils que tu écris si il existe, et tu fais pareil pour le petit-fils.

  8. #8
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Tu donnes la réponse toi-même :
    For Each Noeud In TV1.Nodes
    ne fait que parcourir la liste des noeuds racines !

    Et en plus s'il n'y a qu'une racine, qui n'a qu'un enfant qui lui-même n'a qu'un enfant faire des boucles et quelque peu inutile (mais plus évolutif si un jour il y a plus d'enfants).

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Citation Envoyé par Shadam Voir le message
    Donc tu auras forcément le père(unique noeud racine ?), peut être un enfant, et peut être un petit-enfant ?

    Dans ce cas tu n'as pas besoin de boucle, tu lui fais écrire le père, puis tu test la présence d'un fils que tu écris si il existe, et tu fais pareil pour le petit-fils.
    En fait, j'ai forcément le PERE (racine). Puis en dessous je peux avoir de 0 a X fils, qui eux même peuvent avoir de 0 à X fils.
    J'espère que je suis clair!!

    Citation Envoyé par ostenhard Voir le message
    Bonjour,

    Tu donnes la réponse toi-même :
    ne fait que parcourir la liste des noeuds racines !



    Et en plus s'il n'y a qu'une racine, qui n'a qu'un enfant qui lui-même n'a qu'un enfant faire des boucles et quelque peu inutile (mais plus évolutif si un jour il y a plus d'enfants).
    Je n'ai pas vraiment compris le "Tu donnes la réponse toi-même :" désolé

    Je suis en train de réfléchir a une solution sans boucle, mais je préférerais en utiliser (pour la raison citée au dessus).


    En tout cas, merci pour vos réponses!!



    Edit: Peut-être existe-t-il une fonction qui permettrait d'inclure les enfants et sous enfants dans le for??
    comme par example:
    TV.nodes.count (pas les enfants)
    et TV.GetNodeCount(True) (inclue les enfants)

  10. #10
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    dans ce cas là tu fais 3 niveaux de boucles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For each Père
          For each Fils
                For each Petit-fils
                 'ton code
                Next
          'ton code
          Next
    'ton code
    Next

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Citation Envoyé par Shadam Voir le message
    dans ce cas là tu fais 3 niveaux de boucles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For each Père
          For each Fils
                For each Petit-fils
                 'ton code
                Next
          'ton code
          Next
    'ton code
    Next
    Merci Beaucoup!

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Je pensais pourtant avoir bien cherché... Mais j'étais passé a coté de sa:
    http://msdn.microsoft.com/en-us/library/wwc698z7.aspx

    Très intéressant d'ailleurs!

    Merci a vous tous!! A bientôt =)

  13. #13
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Par défaut
    Oui effectivement la récursivité peut aussi être très efficace dans ce genre de situation ^^

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 57
    Par défaut
    Je confirme, sa marche a merveille!!
    me reste plus qu'a comprendre ou mettre mon streamwriter!!

    A bientot!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DAO] Instruction For Each .. Next
    Par ancel17 dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/04/2007, 11h07
  2. [Excel-VBA] For Each..Next
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2006, 17h23
  3. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  4. Aide pour For each..... Next
    Par Virgile59 dans le forum Access
    Réponses: 1
    Dernier message: 24/05/2006, 14h34

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