Lister les premiers sous repertoires dans list1 et les sous repertoires des repe
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009
-
12 oct. 2005 à 21:00
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006
-
15 oct. 2005 à 13:31
SAlut a tous,
voici mon probleme :
Je suis en train de faire un programme pour suivre mes nageurs...
Mon soucis :
Je travaille sous VB5,et je souhaiterai que les sous repertoires premier degré soient listés dans une listbox1 et les sous repertoires second degré soient inscris dans une listbox2
Ex d'arborescence :
Database
\___Benjamins
\___ Marc
\___ Brigite
\___ Sophie
\___Minimes
\___ André
\___ Céline
\___Adultes
\___ Sebastien
\___Cassendra
et donc que dans ma listbox1 soit listé :
Benjamins
Minimes
Adultes
et que dans ma listbox2 soit listés les prénoms de mes nageurs
Merci pour vos reponses
(Je rappelle que je suis sous VB5)
A voir également:
Lister les premiers sous repertoires dans list1 et les sous repertoires des repe
hubsm
Messages postés28Date d'inscriptionmercredi 12 juin 2002StatutMembreDernière intervention26 juin 2007 12 oct. 2005 à 21:24
Salut,
C'est un TreeView (pas une ListBox) qu'il te faut faire pour ceci... ;)
Je ne sais pas si tu as ça sous VB5, en tout cas moi j'utilise ce contrôle sous VB6...
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 13 oct. 2005 à 06:42
slt
Allons au plus simple :
1 - tu créer un projet avec une form et 2 listbox dedans
2 - tu colle le code suivant dans ta form
Public Function Liste_Rep(MyPath As String, MyList As ListBox)
myname = Dir(MyPath, vbDirectory + vbHidden)
Do While myname <> ""
If myname <> "." And myname <> ".." Then
If (GetAttr(MyPath & myname) And vbDirectory) = vbDirectory Then
MyList.AddItem (myname)
End If
End If
myname = Dir
Loop
End Function
Private Sub Form_Load()
Liste_Rep "c:", List1
End Sub
Private Sub List1_Click()
If List1.ListIndex -1 Or List1.ListCount 0 Then Exit Sub
List2.Clear
Liste_Rep "c:" & List1.Text & "", List2
End Sub
Et voila !
PS: dans l'exemple les dossiers cachés apparaitrons aussi, il te suffit de supprimer "+ vbHidden" dans la fonction pour qu'ils n'apparaissent plus.
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009 13 oct. 2005 à 10:39
J'ai du mal m'exprimer ... mais en meme temps on y est presque :
Le code qui m'a été précedement donné me liste bien le contenu des repertoires et de mes sous repertoires...
le seul soucis c'est qu'il ne fait pas exactement ce que je voudrai :
je souhaiterai obtenir un resultat comme suit :
list1 List2
Benjamins Marc
Benjamins Brigitte
Benjamins Sophie
Minimes André
Minimes Céline
Adultes sebastien
Adultes cassendra
Vous n’avez pas trouvé la réponse que vous recherchez ?
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 13 oct. 2005 à 18:14
slt
je vois pas trop le but mais bon.
colle le code suivant en remplacement du precedent :
Public Function Liste_Rep(MyPath As String, MyList1 As ListBox, MyList2 As ListBox)
Dim MyName As String
Dim MyName2 As String
Dim Rep(1 To 255) As String
Dim Nb_Rep As Byte
Dim i As Long
MyName = Dir(MyPath, vbDirectory + vbHidden)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Nb_Rep = Nb_Rep + 1
Rep(Nb_Rep) = MyName
End If
End If
MyName = Dir
Loop
For i = 1 To Nb_Rep
MyName2 = Dir(MyPath & Rep(i) & "", vbDirectory + vbHidden)
Do While MyName2 <> ""
If MyName2 <> "." And MyName2 <> ".." Then
If (GetAttr(MyPath & Rep(i) & "" & MyName2) And vbDirectory) = vbDirectory Then
MyList1.AddItem (Rep(i))
MyList2.AddItem (MyName2)
End If
End If
MyName2 = Dir
Loop
Next i
End Function
Private Sub Form_Load()
Liste_Rep "c:", List1, List2
End Sub
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009 13 oct. 2005 à 19:37
Encore une chose ... Désolé ...
En fait, chaque nageur est répertorié avec son prénom et son nom.
le nom est séparé du prénom par un séparateur :"_"
En fait, je voudrai que les noms soient listés dans la listbox2 et les prenoms dans la listbox3, le niveau des nageurs toujours dans la listbox1
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 13 oct. 2005 à 22:40
met donc trois listbox et essaie ca :
Public Function Liste_Rep(MyPath As String, MyList1 As ListBox, MyList2 As ListBox, MyList3 As ListBox)
Dim MyName As String
Dim MyName2 As String
Dim Rep(1 To 255) As String
Dim Nb_Rep As Byte
Dim i As Long
MyName = Dir(MyPath, vbDirectory + vbHidden)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Nb_Rep = Nb_Rep + 1
Rep(Nb_Rep) = MyName
End If
End If
MyName = Dir
Loop
For i = 1 To Nb_Rep
MyName2 = Dir(MyPath & Rep(i) & "", vbDirectory + vbHidden)
Do While MyName2 <> ""
If MyName2 <> "." And MyName2 <> ".." Then
If (GetAttr(MyPath & Rep(i) & "" & MyName2) And vbDirectory) = vbDirectory Then
MyList1.AddItem (Rep(i))
MyList2.AddItem (Mid$(MyName2, 1, InStr(1, MyName2, "_") - 1))
MyList3.AddItem (Mid$(MyName2, InStr(1, MyName2, "_") + 1))
End If
End If
MyName2 = Dir
Loop
Next i
End Function
Private Sub Form_Load()
Liste_Rep "c:", List1, List2, List3
End Sub
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009 14 oct. 2005 à 07:29
Je ne peux que te remercier !!! c'est exactement ca qu'il me fallait !!!
je comprends pas toutes les lignes de code , mais je vais étudier ca avec grand intéret !
Dernieres petites questions vu que je suis tombé sur un crack du VB ... j'en profite un peu... :p
Pour chacun de mes nageurs, une fiche appelée generalité.txt rassemble des données qui peuvent aussi etre mise dans mon tableau.
Ex d'arborescence :
Database
\___Benjamins
\___ Marc
\_________généralité.txt
\___ Brigite
\_________généralité.txt
\___ Sophie
\_________généralité.txt
\___Minimes
\___ André
\_________généralité.txt
\___ Céline
\_________généralité.txt
\___Adultes
\___ Sebastien
\_________généralité.txt
\___Cassendra
\_________généralité.txt
La 9ème ligne de ce fichier doit s'inscrire dans ma listbox4...
et enfin voici la derniere colle :
je sais qu'il est possible de cloner des labels : label1(0);label1(1);label1(2)... des textbox: text1(0);text1(1)... mais est il possible de cloner des form ? sachant que chaque clone devra comporter exactement les memes objets (textbox, listbox..) que la form mère ???
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 14 oct. 2005 à 15:19
Alors pour ajouter la 9eme ligne dans listbox :
Public Function Liste_Rep(MyPath As String, MyList1 As ListBox, MyList2 As ListBox, MyList3 As ListBox, MyList4 as ListBox)
'*** déclaration des variables
Dim MyName As String ' contient le chemin du repertoire cible
Dim MyName2 As String ' contient le chemin des sous repertoire
Dim Rep(1 To 255) As String ' enregistrement temporaire des nom des sous repertoire
Dim Nb_Rep As Byte ' nombre de sous repertoire enregistrer dans Rep()
Dim i As Long
Dim u as Long
Dim a as string ' contiendra la 9eme ligne du .txt
'*** on positione Myname sur le repertoire cible à lister
'*** et on liste les sous repertoires dans Rep()
MyName = Dir(MyPath, vbDirectory + vbHidden)
Do While MyName <> "" ' pour chaque element dans Myname(donc c:\)
If MyName <> "." And MyName <> ".." Then ' si l'element et egal à . ou à .. on passe au suivant (pour que cela n'apparraisse pas dans les listbox)
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then ' si l'element en cours et un repertoire
Nb_Rep = Nb_Rep + 1 ' on ajoute 1 au compteur de repertoire
Rep(Nb_Rep) = MyName ' on enregistre le nom du repertoire dans la variable
End If
End If
MyName = Dir ' on passe a l'element suivant
Loop
'*** pour chaque sous repertoire enregistrer dans Rep()
'*** on utilise la même technique.
For i = 1 To Nb_Rep
MyName2 = Dir(MyPath & Rep(i) & "", vbDirectory + vbHidden)
Do While MyName2 <> ""
If MyName2 <> "." And MyName2 <> ".." Then
If (GetAttr(MyPath & Rep(i) & "" & MyName2) And vbDirectory) = vbDirectory Then
MyList1.AddItem (Rep(i)) 'on ajoute rep(x) a la liste 1
MyList2.AddItem (Mid$(MyName2, 1, InStr(1, MyName2, "_") - 1)) ' on ajoute la partie du nom du sous repertoire situé avant le "_"
MyList3.AddItem (Mid$(MyName2, InStr(1, MyName2, "_") + 1))' on ajoute la partie du nom du sous repertoire situé aprés le "_"
open MyPath & Rep(i) & "" & MyName2 & "\généralité.txt" for input as #1 ' on ouvre le fichier .txt
for u=1 to 9 ' on lit les 9 premiére ligne
input #1,a
next u
mylist4.additem(a) et on ajoute la derniére à la list4
close #1 ' on ferme le fichier
End If
End If
MyName2 = Dir 'on passe au suivant
Loop
Next i
End Function
Private Sub Form_Load()
Liste_Rep "c:", List1, List2, List3, List4 'on appelle la fonction Liste_Rep
End Sub
Ce code devrais marcher (à tester). Atention si le fichier .txt ne comprend pas 9 ligne ou s'il n'existe pas cela provoquera une erreur.
Pour ta question sur les form je ne pense pas que cela soit possible.
J'ai un peu commenté le code pour que tu comprenne mieux la procedure.
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009 14 oct. 2005 à 15:40
Super !!! ca marche du feu de dieu !!!
Bon... Je ne voulais pas t'embéter plus ... mais au fur et a mesure ou je construis mon prog, j'ai des murs qui se dressent ...
Alors voici le nouveau defit :
Au dessus de chacune de mes listbox, j'ai un bouton... ex : En cliquant sur le bouton au dessus de ma listbox1 (=noms), j'aimerai que ca me tri cette listbox par ordre alphabétique (sans que ca me transforme les minuscules en majuscules !) mais que la correspondance reste entre le mon et le prénom, la catégorie (senior...), et le numéro de licence.
Idem pour les autres boutons au dessus de mes autres listbox
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 14 oct. 2005 à 23:36
Slt
c'est pas plus simple de créer une seule liste du genre :
niveau - nom1 - prenom1 - num de license1
niveau - nom2 - prenom2 - num de license2
niveau - nom3- prenom3 - num de license3
...
Bon j'ai encore mieux... donne ton adresse mail je t'envoi du code.
promethee2003
Messages postés38Date d'inscriptionlundi 8 novembre 2004StatutMembreDernière intervention10 décembre 2006 15 oct. 2005 à 13:31
Je t'ai envoyé un projet qui illustre l'utilisation d'un listview pour ton appli. Tu verra que la présentation est ( a mon avis) plus sympa. Le code gére également les erreurs, et j'ai mis quelques truc en plus pour que tu puisse comprendre le fonctionnement et l'utilisation du listview.