Competer code source

Signaler
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007
-
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007
-
Salut j'aurais voulu savoir si quelqun pourait utiliser ce code source
et renvoyer les resultats dans un ListBox plutot que dans un tableau (
en plus je sais pas comment ca marche )

11 réponses

Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

<ol class="csCode">
<li>
Private

Sub
Recursive(ByRef
files
As
String
(), ByVal file As
String
, ByVal chemin As
String
)</li>
<li> </li>
<li>
<samp>'## files est le tableau des fichiers trouvés.</samp>
</li>
<li>
<samp>'## file est la structure utilisée pour la recherche.</samp>
</li>
<li>
<samp>'## chemin est le répertoire de base dans lequel s'effectue la recherche.</samp>
</li>
<li> </li>
<li>        
Dim
souschemins As
String
() <samp>'## Ensemble des sous-répertoire du répertoire chemin.</samp></li>
<li>        
Dim
souschemin As
String
<samp>'## Sous-répertoire dans lequel se poursuit la recherche.</samp></li>
<li>        
Dim
fichiers As
String
() <samp>'## Ensemble des fichiers trouvés dans le répertoire </samp></li>
<li>                                    <samp>'## chemin et correspondant à la structure file.</samp></li>
<li>                                    <samp>'## Il correspond au tableau files mais pour le </samp></li>
<li>                                    <samp>'## répertoire en cours de traitement.</samp></li>
<li>        
Dim
i As Integer <samp>'## Compteur des fichiers trouvés dans le répertoire en </samp></li>
<li>                                    <samp>'## cours de traitement.</samp></li>
<li>        
Dim
dimens As Integer <samp>'## Dimension du tableau files avant qu'il soit </samp></li>
<li>                                    <samp>'## redimensionné.</samp></li>
<li> </li>
<li>        fichiers = System.IO.Directory.GetFileSystemEntries(chemin, file)</li>
<li>        
If
fichiers.Length > 0
Then
</li>
<li>            
If
files
Is Nothing
Then
</li>
<li>                
ReDim
files
(fichiers.Length - 1)</li>
<li>            
Else
</li>
<li>                dimens =
files
.Length</li>
<li>                
ReDim
Preserve
files
(
files
.Length + fichiers.Length - 1)</li>
<li>            
End
If
</li>
<li> </li>
<li>            
For
i = 0 To fichiers.Length - 1</li>
<li>                
files
(dimens + i) = fichiers(i)</li>
<li>            
Next
</li>
<li>            souschemins = System.IO.Directory.GetDirectories(chemin)</li>
<li>            
For
Each souschemin In souschemins</li>
<li>                Recursive(
files
, file, souschemin)</li>
<li>            
Next
</li>
<li>        
End
If
</li>
<li>    
End
Sub
</li>
</ol>
je croi ke je me suis mal exprimé je voudrais que quelqun modifie le code pour recuperer les resultats dans un ListBox
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
C'est simple : Regarder dans l'aide du ListBox pour savoir comment additionner des items + faire une boucle de chaque item de ton tableau (For-Next).
Commence par chercher et comprendre avant de poser des questions.
Toutes les réponses sont aussi dans n'importe quelle source de ce site dans lesquels il y a une ListBox

Vala
Jack, MVP VB, ralou ce soir.
NB : Je ne répondrai pas aux messages privés
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

Je sais commen ajouter des items mais je suis debutant et je ne sais
même pa ce que c'est un tableau donc je voi pa comment je pourai
modifier la fonction moi même donc c'est pour ca que je demande
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

désolé mais c'est parceque j'ai vraiment besoi je ne sais pa comment envoyer les resultats du tableu dans un ListBox
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Re,

Une fois cette procédure lancée, fait ceci (approximatif, je fais du vb6, pas de vb.net) :

Dim i As Long

For i = 1 To UBound(files)
    TonListBox.AddItem files(i)
Next i

A adapter !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

ca marche pas

en parametre j'ai mis ca:

Recursive(tab, "*.mp3", "D:")

sur D j'ai tous mes mp3 et i bloque sur listbox1.items.add tab(i)

je sais pas pourquoi
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

personne n'a d'idée de pourquoi ca marche pa ?
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Plusieurs possibilités :

- tab n'est pas un tableau


- i dépasse le nombre d'éléments du tableau, ou est négatif
- listbox1 n'existe pas

Manu

--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

tab est un tableau a une dimension de string

i va de 1 a ubound donc j pense pas qu'il puisse etre negatif ou depasser le nombre d'elements

listbox1 existe
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Et "ça marche pas" ne voulant rien dire, dis nous plutôt :
- si tu as un code d'erreur et le texte descriptif de l'erreur
- si tu passes dans ton code (on ne sait jamais dees fois que tu passes par dessus)
Messages postés
42
Date d'inscription
lundi 24 octobre 2005
Statut
Membre
Dernière intervention
1 février 2007

je vais faire un copié collé de mon code ce sera plus simple je pense


Public Class Form1


    Private Sub Recursive(ByVal files As String(), ByVal file As String, ByVal chemin As String)


        '## files est le tableau des fichiers trouvés.

        '## file est la structure utilisée pour la recherche.

        '## chemin est le répertoire de base dans lequel s'effectue la recherche.


        Dim souschemins As String() '## Ensemble des sous-répertoire du répertoire chemin.

        Dim souschemin As String '## Sous-répertoire dans lequel se poursuit la recherche.

        Dim fichiers As String() '## Ensemble des fichiers trouvés dans le répertoire

        '## chemin et correspondant à la structure file.

        '## Il correspond au tableau files mais pour le

        '## répertoire en cours de traitement.

        Dim i As Integer '## Compteur des fichiers trouvés dans le répertoire en

        '## cours de traitement.

        Dim dimens As Integer '## Dimension du tableau files avant qu'il soit

        '## redimensionné.


        fichiers = System.IO.Directory.GetFileSystemEntries(chemin, file)

        If fichiers.Length > 0 Then

            If files Is Nothing Then

                ReDim files(fichiers.Length - 1)

            Else

                dimens = files.Length

               
ReDim Preserve files(files.Length + fichiers.Length - 1)

            End If


            For i = 0 To fichiers.Length - 1

                files(dimens + i) = fichiers(i)

            Next

            souschemins = System.IO.Directory.GetDirectories(chemin)

            For Each souschemin In souschemins

                Recursive(files, file, souschemin)

            Next

        End If

    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim tab(5) As String

        Recursive(tab, "*.mp3", "D:")

        'on vide la liste

        ListBox1.Items.Clear()


        Dim i As Long


        For i = 1 To UBound(tab)

            ListBox1.Items.Add(tab(i))

        Next i

    End Sub


End Class


et le message d'erreur est:


La valeur ne peut pas être null.

Nom du paramètre : item


autrement dit le tableau est vide (alors que j'ai plus de 150go de mp3 sur ce disque)