bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier s'il
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter à
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier s'il
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter à
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
bonsoir,
je recherche à aficher dans une liste les fichiers contenant ma recherche
pour comprenure:
txtRecherche.txt = test
ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier s'il
existe dans chaque fichier la valeur de recherche (test) si oui l'ajouter à
la liste
Tous les dossiers ne contiennent pas de sous-dossiers
bien évidemment ca marche pas, un petit conseil bienvenu
merci d'avance
Pascal
==================================== > Private Sub RechercherFichiers()
Dim FSO As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Set Dossier = FSO.GetFolder(Me.Dir1.Path)
With Me.ListView1
.ListItems.Clear
For i = 0 To Me.Dir1.ListCount - 1
s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
.ListItems.Add , , s, 1
For Each Fichier In Dossier.Files
If UCase$(right$(Fichier, Len(Fichier))) > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
Next Fichier
Next i
End With
Set Dossier = Nothing
End Sub
hello, ai essayé avec ceci mais ne donne rien
If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Fichier
je dois pas être loin non?
hello, ai essayé avec ceci mais ne donne rien
If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Fichier
je dois pas être loin non?
hello, ai essayé avec ceci mais ne donne rien
If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Fichier
je dois pas être loin non?
"Pascal" a écrit dans le message de
news:
> hello, ai essayé avec ceci mais ne donne rien
> If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Liste.AddItem
> Fichier
>
> je dois pas être loin non?
Hello,
nul besoin de FSO ici, un simple Dir$() suffit.
Voici une façon possible de faire:
la fonction:
Private Function ChercheFichiers(ByVal repertoire As String, _
ByVal pattern As String, _
ByRef tResult() As String, _
ByRef nbResult As Long) As Boolean
Dim fichier As String
fichier = Dir$(repertoire & "*.*")
While fichier <> ""
If InStr(1, fichier, pattern, vbTextCompare) <> 0 Then
nbResult = nbResult + 1
ReDim Preserve tResult(nbResult)
tResult(nbResult) = fichier
End If
fichier = Dir$
Wend
ChercheFichiers = True
End Function
et l'utilisation:
Private Sub Command1_Click()
Dim r As Boolean
Dim repertoire As String
Dim pattern As String
Dim tabloResults() As String
Dim nbResults As Long
Dim i As Long
repertoire = "c:jm"
pattern = "test"
r = ChercheFichiers(repertoire, pattern, tabloResults, nbResults)
If r Then
For i = 1 To nbResults
Debug.Print tabloResults(i)
Next i
End If
End Sub
Il y a bien sur mille et une façons d'implémenter ça. Celle ci
fonctionne bien, ne doit pas être hyper performante à cause du
Redim preserve mais c'est un autre problème qu'il serait facile
de résoudre.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
"Pascal" <inconnu@hotmail.com> a écrit dans le message de
news:uWf6T9XDGHA.532@TK2MSFTNGP15.phx.gbl...
> hello, ai essayé avec ceci mais ne donne rien
> If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Liste.AddItem
> Fichier
>
> je dois pas être loin non?
Hello,
nul besoin de FSO ici, un simple Dir$() suffit.
Voici une façon possible de faire:
la fonction:
Private Function ChercheFichiers(ByVal repertoire As String, _
ByVal pattern As String, _
ByRef tResult() As String, _
ByRef nbResult As Long) As Boolean
Dim fichier As String
fichier = Dir$(repertoire & "*.*")
While fichier <> ""
If InStr(1, fichier, pattern, vbTextCompare) <> 0 Then
nbResult = nbResult + 1
ReDim Preserve tResult(nbResult)
tResult(nbResult) = fichier
End If
fichier = Dir$
Wend
ChercheFichiers = True
End Function
et l'utilisation:
Private Sub Command1_Click()
Dim r As Boolean
Dim repertoire As String
Dim pattern As String
Dim tabloResults() As String
Dim nbResults As Long
Dim i As Long
repertoire = "c:jm"
pattern = "test"
r = ChercheFichiers(repertoire, pattern, tabloResults, nbResults)
If r Then
For i = 1 To nbResults
Debug.Print tabloResults(i)
Next i
End If
End Sub
Il y a bien sur mille et une façons d'implémenter ça. Celle ci
fonctionne bien, ne doit pas être hyper performante à cause du
Redim preserve mais c'est un autre problème qu'il serait facile
de résoudre.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Pascal" a écrit dans le message de
news:
> hello, ai essayé avec ceci mais ne donne rien
> If InStr(1, Fichier, txtRecherche.Text, vbTextCompare) Then
Liste.AddItem
> Fichier
>
> je dois pas être loin non?
Hello,
nul besoin de FSO ici, un simple Dir$() suffit.
Voici une façon possible de faire:
la fonction:
Private Function ChercheFichiers(ByVal repertoire As String, _
ByVal pattern As String, _
ByRef tResult() As String, _
ByRef nbResult As Long) As Boolean
Dim fichier As String
fichier = Dir$(repertoire & "*.*")
While fichier <> ""
If InStr(1, fichier, pattern, vbTextCompare) <> 0 Then
nbResult = nbResult + 1
ReDim Preserve tResult(nbResult)
tResult(nbResult) = fichier
End If
fichier = Dir$
Wend
ChercheFichiers = True
End Function
et l'utilisation:
Private Sub Command1_Click()
Dim r As Boolean
Dim repertoire As String
Dim pattern As String
Dim tabloResults() As String
Dim nbResults As Long
Dim i As Long
repertoire = "c:jm"
pattern = "test"
r = ChercheFichiers(repertoire, pattern, tabloResults, nbResults)
If r Then
For i = 1 To nbResults
Debug.Print tabloResults(i)
Next i
End If
End Sub
Il y a bien sur mille et une façons d'implémenter ça. Celle ci
fonctionne bien, ne doit pas être hyper performante à cause du
Redim preserve mais c'est un autre problème qu'il serait facile
de résoudre.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Bonsoir Pascal,
Pascal a écrit :
> bonsoir,
> je recherche à aficher dans une liste les fichiers contenant ma
> pour comprenure:
> txtRecherche.txt = test
> ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
> existe dans chaque fichier la valeur de recherche (test) si oui
> la liste
> Tous les dossiers ne contiennent pas de sous-dossiers
>
> bien évidemment ca marche pas, un petit conseil bienvenu
> merci d'avance
> Pascal
> ==================================== > > Private Sub RechercherFichiers()
> Dim FSO As New FileSystemObject
> Dim Dossier As Folder
> Dim Fichier As File
> Set Dossier = FSO.GetFolder(Me.Dir1.Path)
> With Me.ListView1
> .ListItems.Clear
>
> For i = 0 To Me.Dir1.ListCount - 1
> s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
> .ListItems.Add , , s, 1
> For Each Fichier In Dossier.Files
> If UCase$(right$(Fichier, Len(Fichier))) > > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
> Next Fichier
> Next i
> End With
> Set Dossier = Nothing
> End Sub
>
Pour ma comprenance, pourquoi utiliser un contrôle DirLisBox et un objet
FSO, puis mélanger les deux ?
Pour passer le test de non comprenance c'est ici :
http://www.leconcombre.com/movies/testidiot1.html
c'est juste pour déconner un peu :-D
--
Cordialement,
Jacques.
Bonsoir Pascal,
Pascal a écrit :
> bonsoir,
> je recherche à aficher dans une liste les fichiers contenant ma
> pour comprenure:
> txtRecherche.txt = test
> ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
> existe dans chaque fichier la valeur de recherche (test) si oui
> la liste
> Tous les dossiers ne contiennent pas de sous-dossiers
>
> bien évidemment ca marche pas, un petit conseil bienvenu
> merci d'avance
> Pascal
> ==================================== > > Private Sub RechercherFichiers()
> Dim FSO As New FileSystemObject
> Dim Dossier As Folder
> Dim Fichier As File
> Set Dossier = FSO.GetFolder(Me.Dir1.Path)
> With Me.ListView1
> .ListItems.Clear
>
> For i = 0 To Me.Dir1.ListCount - 1
> s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
> .ListItems.Add , , s, 1
> For Each Fichier In Dossier.Files
> If UCase$(right$(Fichier, Len(Fichier))) > > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
> Next Fichier
> Next i
> End With
> Set Dossier = Nothing
> End Sub
>
Pour ma comprenance, pourquoi utiliser un contrôle DirLisBox et un objet
FSO, puis mélanger les deux ?
Pour passer le test de non comprenance c'est ici :
http://www.leconcombre.com/movies/testidiot1.html
c'est juste pour déconner un peu :-D
--
Cordialement,
Jacques.
Bonsoir Pascal,
Pascal a écrit :
> bonsoir,
> je recherche à aficher dans une liste les fichiers contenant ma
> pour comprenure:
> txtRecherche.txt = test
> ce code devrait ouvrir chaque dossiers, dans chacun de ceux-ci vérifier
> existe dans chaque fichier la valeur de recherche (test) si oui
> la liste
> Tous les dossiers ne contiennent pas de sous-dossiers
>
> bien évidemment ca marche pas, un petit conseil bienvenu
> merci d'avance
> Pascal
> ==================================== > > Private Sub RechercherFichiers()
> Dim FSO As New FileSystemObject
> Dim Dossier As Folder
> Dim Fichier As File
> Set Dossier = FSO.GetFolder(Me.Dir1.Path)
> With Me.ListView1
> .ListItems.Clear
>
> For i = 0 To Me.Dir1.ListCount - 1
> s = Mid(Me.Dir1.List(i), InStrRev(Me.Dir1.List(i), "") + 1)
> .ListItems.Add , , s, 1
> For Each Fichier In Dossier.Files
> If UCase$(right$(Fichier, Len(Fichier))) > > UCase$(txtRecherche.Text) Then Liste.AddItem Fichier
> Next Fichier
> Next i
> End With
> Set Dossier = Nothing
> End Sub
>
Pour ma comprenance, pourquoi utiliser un contrôle DirLisBox et un objet
FSO, puis mélanger les deux ?
Pour passer le test de non comprenance c'est ici :
http://www.leconcombre.com/movies/testidiot1.html
c'est juste pour déconner un peu :-D
--
Cordialement,
Jacques.
bonsoir Jean-marc,
merci pour ta réponse, je vais essayer ton code
j'avais entre-temps développer ceci qui est très performant en vitesse
d'exécution mais j'aurais voulu l'afficher dans la file list
(flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
attendant de trouver la façon de faire, voici le code:
bonsoir Jean-marc,
merci pour ta réponse, je vais essayer ton code
j'avais entre-temps développer ceci qui est très performant en vitesse
d'exécution mais j'aurais voulu l'afficher dans la file list
(flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
attendant de trouver la façon de faire, voici le code:
bonsoir Jean-marc,
merci pour ta réponse, je vais essayer ton code
j'avais entre-temps développer ceci qui est très performant en vitesse
d'exécution mais j'aurais voulu l'afficher dans la file list
(flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
attendant de trouver la façon de faire, voici le code:
"Pascal" a écrit dans le message de
news:%23%
> bonsoir Jean-marc,
> merci pour ta réponse, je vais essayer ton code
> j'avais entre-temps développer ceci qui est très performant en vitesse
> d'exécution mais j'aurais voulu l'afficher dans la file list
> (flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
liste en
> attendant de trouver la façon de faire, voici le code:
Une remarque d'ordre général: Une bonne pratique est de dissocier
l'interface et le fonctionnel.
Le but de ta fonction est de trouver des fichiers dont le nom contient
un motif, ce qui est *bien*. Ceci n'a rien à voir avec le fait que tu
souhaites afficher ceci dans tel ou tel composant. Si demain je voulais
réutiliser ta fonction, cela me serait impossible car elle est
complètement dépendante de ton interface graphique, ce qui est *mal*.
La fonction que j'ai donnée en exemple est totalement indépendante de
tout élément de l'interface. Elle n'utilise que ses arguments (byval et
byref) et ses variables locales. N'importe qui peut la copier et
l'utiliser, libre à l'utilisateur d'exploiter ensuite les résultats de
la fonction dans l'interface graphique de son choix. Elle se suffit à
elle même.
Avantages:
- le code est réutilisable par toi ou par d'autres
- si tu changes complètement ton interface, aucun problème, le code de
la
fonction ne change pas
- si tu changes l'algorithme de ta fonction, aucun problème: c'est
transparent pour ton interface qui elle ne change pas
C'est une pratique générale dans la conception logicielle, et c'est un
principe fondamental du génie logiciel; plus les modules focntionnels
d'un logiciel sont indépendants (ie : peu de couplage), plus le logiciel
sera aisé à maintenir, à modifier, à faire vivre, etc.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
"Pascal" <inconnu@hotmail.com> a écrit dans le message de
news:%23%23jLg6ZDGHA.1028@TK2MSFTNGP11.phx.gbl...
> bonsoir Jean-marc,
> merci pour ta réponse, je vais essayer ton code
> j'avais entre-temps développer ceci qui est très performant en vitesse
> d'exécution mais j'aurais voulu l'afficher dans la file list
> (flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
liste en
> attendant de trouver la façon de faire, voici le code:
Une remarque d'ordre général: Une bonne pratique est de dissocier
l'interface et le fonctionnel.
Le but de ta fonction est de trouver des fichiers dont le nom contient
un motif, ce qui est *bien*. Ceci n'a rien à voir avec le fait que tu
souhaites afficher ceci dans tel ou tel composant. Si demain je voulais
réutiliser ta fonction, cela me serait impossible car elle est
complètement dépendante de ton interface graphique, ce qui est *mal*.
La fonction que j'ai donnée en exemple est totalement indépendante de
tout élément de l'interface. Elle n'utilise que ses arguments (byval et
byref) et ses variables locales. N'importe qui peut la copier et
l'utiliser, libre à l'utilisateur d'exploiter ensuite les résultats de
la fonction dans l'interface graphique de son choix. Elle se suffit à
elle même.
Avantages:
- le code est réutilisable par toi ou par d'autres
- si tu changes complètement ton interface, aucun problème, le code de
la
fonction ne change pas
- si tu changes l'algorithme de ta fonction, aucun problème: c'est
transparent pour ton interface qui elle ne change pas
C'est une pratique générale dans la conception logicielle, et c'est un
principe fondamental du génie logiciel; plus les modules focntionnels
d'un logiciel sont indépendants (ie : peu de couplage), plus le logiciel
sera aisé à maintenir, à modifier, à faire vivre, etc.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Pascal" a écrit dans le message de
news:%23%
> bonsoir Jean-marc,
> merci pour ta réponse, je vais essayer ton code
> j'avais entre-temps développer ceci qui est très performant en vitesse
> d'exécution mais j'aurais voulu l'afficher dans la file list
> (flstListDeChoix) et ca j'y arrive jpas,je l'affiche donc dans une
liste en
> attendant de trouver la façon de faire, voici le code:
Une remarque d'ordre général: Une bonne pratique est de dissocier
l'interface et le fonctionnel.
Le but de ta fonction est de trouver des fichiers dont le nom contient
un motif, ce qui est *bien*. Ceci n'a rien à voir avec le fait que tu
souhaites afficher ceci dans tel ou tel composant. Si demain je voulais
réutiliser ta fonction, cela me serait impossible car elle est
complètement dépendante de ton interface graphique, ce qui est *mal*.
La fonction que j'ai donnée en exemple est totalement indépendante de
tout élément de l'interface. Elle n'utilise que ses arguments (byval et
byref) et ses variables locales. N'importe qui peut la copier et
l'utiliser, libre à l'utilisateur d'exploiter ensuite les résultats de
la fonction dans l'interface graphique de son choix. Elle se suffit à
elle même.
Avantages:
- le code est réutilisable par toi ou par d'autres
- si tu changes complètement ton interface, aucun problème, le code de
la
fonction ne change pas
- si tu changes l'algorithme de ta fonction, aucun problème: c'est
transparent pour ton interface qui elle ne change pas
C'est une pratique générale dans la conception logicielle, et c'est un
principe fondamental du génie logiciel; plus les modules focntionnels
d'un logiciel sont indépendants (ie : peu de couplage), plus le logiciel
sera aisé à maintenir, à modifier, à faire vivre, etc.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;