begin process at 2012 02 16 04:39:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

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

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


 Information sur la source

Note :
Aucune note
Catégorie :Control Niveau :Débutant Date de création :07/10/2004 Date de mise à jour :07/10/2004 22:16:07 Vu :3 637

Auteur : BozzoDodo

Ecrire un message privé
Site perso
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

 Sources du même auteur

ADDITION DE TRÈS GRANDS NOMBRES (PLUSIEURS MILLIERS DE CHIFF...
SIMULER LE LANCER D'UN DÉ PIPÉ (NON ÉQUILIBRÉ)
VIDER UN RÉPERTOIRE, SES SOUS-RÉPERTOIRES ET LES FICHIERS CO...

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

Commentaires et avis

Commentaire de whakiri le 08/10/2004 19:38:22

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

Commentaire de whakiri le 08/10/2004 19:38:29

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

Commentaire de BozzoDodo le 09/10/2004 11:31:48

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

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

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales