begin process at 2010 02 10 11:02:55
  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 105

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 une capture Source .NET (Dotnet) CREATION DE CONTROLS DYNAMIQUE + DEPLACEMENT ET REDIMENTION ... par tresorsdevie
Source avec Zip Source avec une capture USERCONTROL AVEC PROPERTIES PERSONALISABLE par Polack77
Source avec Zip Source avec une capture BOUTON UP_DOWN par epson1
Source avec Zip Source avec une capture CONTROLS ++(CONTROLS GRAPHIQUES EN CONSTRUCTION) par Flocreate
Source avec Zip Source .NET (Dotnet) CRÉER UN VRAI OCX EN DOTNET par Patrice99

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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,562 sec (4)

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