Recherche de mots dans un fichier texte
Posté : jeu. 06 déc. 2018 14:47
Bonjour tout le monde,
Je sollicite votre aide pour comprendre comment je pourrais faire pour chercher un ou plusieurs mots dans un fichier texte.
Hors mon souci est de pouvoir afficher un message si le script trouve un ou deux mots, les deux, voir plusieurs autres au besoin ($ChaineRecherchee/$ChaineRecherchee2/ETc.. ci-dessous).
Sauf que mon code ci-dessous n'affiche le message QUE si les 2 mots sont trouvés. Je vous avoue que je débute un peu mais j'ai testé le code suivant qui fait presque ce que je veux.
Merci d'avance pour votre aide.
Je sollicite votre aide pour comprendre comment je pourrais faire pour chercher un ou plusieurs mots dans un fichier texte.
Hors mon souci est de pouvoir afficher un message si le script trouve un ou deux mots, les deux, voir plusieurs autres au besoin ($ChaineRecherchee/$ChaineRecherchee2/ETc.. ci-dessous).
Sauf que mon code ci-dessous n'affiche le message QUE si les 2 mots sont trouvés. Je vous avoue que je débute un peu mais j'ai testé le code suivant qui fait presque ce que je veux.
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$NomFichier = "C:\Temp\feu_synthese_HOSTING.log" ; le nom du fichier a parcourir
$ChaineRecherchee = FRANCE" ; le nom de l'utilisateur en cours
$ChaineRecherchee2 = "ITALIE" ; le nom de l'utilisateur en cours
$Resultat = "" & @CRLF & $ChaineRecherchee & @CRLF & $ChaineRecherchee2 & @CRLF & " sont en erreurs." ; le début de la popup en cas de résultat
$Trouve = False ; le switch qui indiquera si on trouve
$Fichier = FileOpen($NomFichier, 0) ; on ouvre le fichier
If $Fichier = -1 Then ; Vérification que le fichier est correctement ouvert
MsgBox(0, "ERREUR", "Impossible d'ouvrir le fichier " & $NomFichier )
Exit
EndIf
While 1 ; Et on parcoure le fichier...
$ligne = FileReadLine($Fichier) ; ... en lisant chaque ligne...
If @error = -1 Then ; ... jusqu'a la fin...
ExitLoop
Else
If StringInStr($ligne,$ChaineRecherchee,2) and StringInStr($ligne,$ChaineRecherchee2,2) <> 0 Then ; Si on trouve la chaine a chercher dans la ligne
$Resultat = $Resultat & ", " ; ... on l'inscrit dans les résultats ...
$Trouve = True ;... et on précise qu'on a trouvé
EndIf
EndIf
Wend
FileClose($NomFichier) ; on n'oublie pas de fermer le fichier
if $Trouve = True Then; Si on a trouvé...
msgbox(0,"ATTENTION",StringTrimRight($Resultat,2)) ; ... On l'affiche
Else ; ... sinon ...
MsgBox(0,"Résultat", chr(34) & $ChaineRecherchee & chr(32) & $ChaineRecherchee2 & chr(34) & " n'a pas été trouvé")
EndIf
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$NomFichier = "C:\Temp\feu_synthese_HOSTING.log" ; le nom du fichier a parcourir
$ChaineRecherchee = FRANCE" ; le nom de l'utilisateur en cours
$ChaineRecherchee2 = "ITALIE" ; le nom de l'utilisateur en cours
$Resultat = "" & @CRLF & $ChaineRecherchee & @CRLF & $ChaineRecherchee2 & @CRLF & " sont en erreurs." ; le début de la popup en cas de résultat
$Trouve = False ; le switch qui indiquera si on trouve
$Fichier = FileOpen($NomFichier, 0) ; on ouvre le fichier
If $Fichier = -1 Then ; Vérification que le fichier est correctement ouvert
MsgBox(0, "ERREUR", "Impossible d'ouvrir le fichier " & $NomFichier )
Exit
EndIf
While 1 ; Et on parcoure le fichier...
$ligne = FileReadLine($Fichier) ; ... en lisant chaque ligne...
If @error = -1 Then ; ... jusqu'a la fin...
ExitLoop
Else
If StringInStr($ligne,$ChaineRecherchee,2) and StringInStr($ligne,$ChaineRecherchee2,2) <> 0 Then ; Si on trouve la chaine a chercher dans la ligne
$Resultat = $Resultat & ", " ; ... on l'inscrit dans les résultats ...
$Trouve = True ;... et on précise qu'on a trouvé
EndIf
EndIf
Wend
FileClose($NomFichier) ; on n'oublie pas de fermer le fichier
if $Trouve = True Then; Si on a trouvé...
msgbox(0,"ATTENTION",StringTrimRight($Resultat,2)) ; ... On l'affiche
Else ; ... sinon ...
MsgBox(0,"Résultat", chr(34) & $ChaineRecherchee & chr(32) & $ChaineRecherchee2 & chr(34) & " n'a pas été trouvé")
EndIf