OVH Cloud OVH Cloud

Recherche de fichier txt

6 réponses
Avatar
reno
bonjour,

je voudrais pouvoir rechercher la liste des fichiers (contenus dans un
dossier) et contenant un mot détérminé.

je n'y arrive pas avec FileSearch alors comment ?

Merci

6 réponses

Avatar
Gafish
Bonjour,

Regarde du côté de FileSystemObject.
Tu te crées un objets :


"reno" a écrit dans le message de
news:
bonjour,

je voudrais pouvoir rechercher la liste des fichiers (contenus dans un
dossier) et contenant un mot détérminé.

je n'y arrive pas avec FileSearch alors comment ?

Merci


Avatar
Gafish
Mille excuses, le coup est parti tout seul.
Tu te crées un objet comme suit :

Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")

et tu utilises les propriétés de cette classe. Tu vas pouvoir parcourir un
dossier, ouvrir un fichier et le lire. Ca devrait répondre à tes attentes.

Arnaud

"reno" a écrit dans le message de
news:
bonjour,

je voudrais pouvoir rechercher la liste des fichiers (contenus dans un
dossier) et contenant un mot détérminé.

je n'y arrive pas avec FileSearch alors comment ?

Merci


Avatar
GillesM
Une boucle avec dir

du style :

Contenudurep = Dir(C:lerepertoire", vbDirectory)

While Contenudurep <> ""
'tu analyses sur le nom des fichiers
...
Contenudurep = Dir
Wend

Si j'ai bien compris ta question

GillesM



"reno" a écrit dans le message de
news:
bonjour,

je voudrais pouvoir rechercher la liste des fichiers (contenus dans un
dossier) et contenant un mot détérminé.

je n'y arrive pas avec FileSearch alors comment ?

Merci


Avatar
reno
Tout d'abord merci de vos réponse,

je n'est pas détaillé suffisament ma premiére question.

j'ai plusieurs fichier texte (1 par jour en fait ce sont des log) et je doit
rechercher dedans tous les log qui parle d'une référence donnée (<24855> par
exemple) je craind qu'avec fso ce soit long ?
J'aurais aimé pouvoir efféctuer une recherche equivalente à celle de windows
avec filesearch et la propriété TextOrProperty, mais ça trouve pas mes
fichiers....

ci-joint le code utilisé :
Sub Historique(RI As Long)
Dim StrDoc As String
StrDoc = CurrentProject.Path & "Log_Tickets"
If Dir(StrDoc, vbDirectory) = "" Then Exit Sub

Dim i As Integer
Dim Fich As String

With FileSearch
.NewSearch
.LookIn = StrDoc
.TextOrProperty = "<" & RI & ">"
.MatchTextExactly = True

If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Fich = .FoundFiles(i)
GoSub ecrit
Next
End If
End With

Exit Sub
ecrit:
MsgBox Fich
Return
End Sub

dans le pire des cas je ferais avec fso car je peux connaitre la date mini
et maxi donc recherche sur un nombre de fichier restreint

Merci
Avatar
michdenis
Bonjour Reno,

Ceci devrait fonctionner ! Non ?

'-------------------------------------
Sub Historique()
Dim StrDoc As String
StrDoc = CurrentProject.Path & "Log_Tickets"
If Dir(StrDoc, vbDirectory) = "" Then Exit Sub

Dim i As Integer
Dim Fich As String

With Application.FileSearch
.NewSearch
.LookIn = StrDoc
.FileName = "*.log"
.SearchSubFolders = False 'or True
.TextOrProperty = "<" & RI & ">"
.MatchTextExactly = True

If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Fich = Fich & .FoundFiles(i) & vbCrLf
Next
End If
End With
If Fich <> "" Then
MsgBox Fich
Else
MsgBox "Rien trouvé!"
End If

End Sub
'-------------------------------------


Salutations!



"reno" a écrit dans le message de news:


Tout d'abord merci de vos réponse,

je n'est pas détaillé suffisament ma premiére question.

j'ai plusieurs fichier texte (1 par jour en fait ce sont des log) et je doit
rechercher dedans tous les log qui parle d'une référence donnée (<24855> par
exemple) je craind qu'avec fso ce soit long ?
J'aurais aimé pouvoir efféctuer une recherche equivalente à celle de windows
avec filesearch et la propriété TextOrProperty, mais ça trouve pas mes
fichiers....

ci-joint le code utilisé :
Sub Historique(RI As Long)
Dim StrDoc As String
StrDoc = CurrentProject.Path & "Log_Tickets"
If Dir(StrDoc, vbDirectory) = "" Then Exit Sub

Dim i As Integer
Dim Fich As String

With FileSearch
.NewSearch
.LookIn = StrDoc
.TextOrProperty = "<" & RI & ">"
.MatchTextExactly = True

If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Fich = .FoundFiles(i)
GoSub ecrit
Next
End If
End With

Exit Sub
ecrit:
MsgBox Fich
Return
End Sub

dans le pire des cas je ferais avec fso car je peux connaitre la date mini
et maxi donc recherche sur un nombre de fichier restreint

Merci
Avatar
reno
Le FileName !!!!

merci


Bonjour Reno,

Ceci devrait fonctionner ! Non ?

'-------------------------------------
Sub Historique()
Dim StrDoc As String
StrDoc = CurrentProject.Path & "Log_Tickets"
If Dir(StrDoc, vbDirectory) = "" Then Exit Sub

Dim i As Integer
Dim Fich As String

With Application.FileSearch
.NewSearch
.LookIn = StrDoc
.FileName = "*.log"
.SearchSubFolders = False 'or True
.TextOrProperty = "<" & RI & ">"
.MatchTextExactly = True

If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Fich = Fich & .FoundFiles(i) & vbCrLf
Next
End If
End With
If Fich <> "" Then
MsgBox Fich
Else
MsgBox "Rien trouvé!"
End If

End Sub
'-------------------------------------


Salutations!



"reno" a écrit dans le message de news:


Tout d'abord merci de vos réponse,

je n'est pas détaillé suffisament ma premiére question.

j'ai plusieurs fichier texte (1 par jour en fait ce sont des log) et je doit
rechercher dedans tous les log qui parle d'une référence donnée (<24855> par
exemple) je craind qu'avec fso ce soit long ?
J'aurais aimé pouvoir efféctuer une recherche equivalente à celle de windows
avec filesearch et la propriété TextOrProperty, mais ça trouve pas mes
fichiers....

ci-joint le code utilisé :
Sub Historique(RI As Long)
Dim StrDoc As String
StrDoc = CurrentProject.Path & "Log_Tickets"
If Dir(StrDoc, vbDirectory) = "" Then Exit Sub

Dim i As Integer
Dim Fich As String

With FileSearch
.NewSearch
.LookIn = StrDoc
.TextOrProperty = "<" & RI & ">"
.MatchTextExactly = True

If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Fich = .FoundFiles(i)
GoSub ecrit
Next
End If
End With

Exit Sub
ecrit:
MsgBox Fich
Return
End Sub

dans le pire des cas je ferais avec fso car je peux connaitre la date mini
et maxi donc recherche sur un nombre de fichier restreint

Merci