Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHARGER UN MENU D'UN FICHIER POUR LE METTRE DANS UNE TREEVIEW


Information sur la source

Catégorie :Control Niveau : Débutant Date de création : 07/10/2004 Date de mise à jour : 07/10/2004 22:16:07 Vu : 2 960

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Ce code permet de charger un menu contenu dans un fichier pour l'insérer dans une treeview. Ainsi le fichier est sous la forme:

Cat1
_ss-cat1
_ss-cat2
Cat2
_ss-cat1
__ss-ss-cat1
_ss-cat2
...
les "_" symbolisent un espace.
 

Source

  • Public Sub LoadData(File as string, twMenu as Treeview)
  • Dim f As Byte
  • Dim currentLevel As Long, lastLevel As Long
  • Dim lin As String, txt As String, key As Byte
  • Dim nodes() As Node
  • Dim MaxLvl As Integer
  • ReDim nodes(0) As Node
  • f = FreeFile
  • 'ouverture fichier
  • Open File For Input As #f
  • Do
  • 'on lit la ligne
  • Line Input #f, lin
  • 'on regarde le nombre d'espace qui correspond au nombre de parents
  • currentLevel = Len(lin) - Len(LTrim$(lin))
  • txt = LTrim$(lin)
  • 'on redimensionne le tableau si un nouveau niveau existe
  • If currentLevel > MaxLvl Then
  • MaxLvl = MaxLvl + 1
  • ReDim Preserve nodes(MaxLvl) As Node
  • End If
  • 'On enregistre dans le tableau le noeud courant et son niveau dans l'arbre
  • If currentLevel <> 0 Then
  • Set nodes(currentLevel) = twMenu.nodes.Add(nodes(currentLevel - 1).key, tvwChild, "a" & twMenu.nodes.Count, txt)
  • Else
  • Set nodes(currentLevel) = twMenu.nodes.Add(, , "a" & twMenu.nodes.Count, txt)
  • End If
  • lastLevel = currentLevel
  • Loop While Not EOF(f)
  • Close f
  • End Sub
Public Sub LoadData(File as string, twMenu as Treeview)
Dim f As Byte
Dim currentLevel As Long, lastLevel As Long
Dim lin As String, txt As String, key As Byte
Dim nodes() As Node
Dim MaxLvl As Integer
    
    ReDim nodes(0) As Node
    
    f = FreeFile
    'ouverture fichier
    Open File For Input As #f
        Do
            'on lit la ligne
            Line Input #f, lin
            'on regarde le nombre d'espace qui correspond au nombre de parents
            currentLevel = Len(lin) - Len(LTrim$(lin))
            txt = LTrim$(lin)
            
            'on redimensionne le tableau si un nouveau niveau existe
            If currentLevel > MaxLvl Then
                MaxLvl = MaxLvl + 1
                ReDim Preserve nodes(MaxLvl) As Node
            End If
                
            'On enregistre dans le tableau le noeud courant et son niveau dans l'arbre
            If currentLevel <> 0 Then
                Set nodes(currentLevel) = twMenu.nodes.Add(nodes(currentLevel - 1).key, tvwChild, "a" & twMenu.nodes.Count, txt)
            Else
                Set nodes(currentLevel) = twMenu.nodes.Add(, , "a" & twMenu.nodes.Count, txt)
            End If
            lastLevel = currentLevel
        Loop While Not EOF(f)
    Close f
End Sub

Historique

07 octobre 2004 22:16:08 :
vc

Commentaires et avis

signaler à un administrateur
Commentaire de whakiri le 08/10/2004 19:38:22

Pourquoi ne pas charger un fichier type XML ? ce sera plus interessant

signaler à un administrateur
Commentaire de whakiri le 08/10/2004 19:38:29

Pourquoi ne pas charger un fichier type XML ? ce sera plus interessant

signaler à un administrateur
Commentaire de BozzoDodo le 09/10/2004 11:31:48

Comment faut-il faire? Il ne faut pas de dll en plus?

signaler à un administrateur
Commentaire de winvsmac le 13/04/2009 19:40:42

Bonsoir,

Il y a un probleme : si on relance une seconde fois le code sans quitter, il y a l'erreur : indice hors plage sur la ligne 28 (Set nodes(currentLevel) = twMenu.nodes.Add(nodes(currentLevel - 1).key, tvwChild, "a" & twMenu.nodes.Count, txt).

Si je place ton code sur un bouton, je clique dessus, et mon fichier s'affiche dans le treeview. Si je reclique une seconde fois, l'erreur arrive !

On corrige comment car je n'y suis pas arrivé !
Cdlt
Jerome

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.