[..] Trouver une ligne depuis un mot présent dans cette lign
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
Expendables
- Niveau 3

- Messages : 39
- Enregistré le : ven. 14 janv. 2011 12:08
- Status : Hors ligne
[..] Trouver une ligne depuis un mot présent dans cette lign
Bonjour,
j'aimerais que le script puisse trouver un mot et quand il le trouve il copie toute la ligne dans un fichier text, ce mot p-e present plusieurs fois dans le texte (bloc note) voila merci
ex mot : beau
il est beau l'oiseau
texte a copier : il est beau l'oiseau
j'aimerais que le script puisse trouver un mot et quand il le trouve il copie toute la ligne dans un fichier text, ce mot p-e present plusieurs fois dans le texte (bloc note) voila merci
ex mot : beau
il est beau l'oiseau
texte a copier : il est beau l'oiseau
- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
et vous voulez récuperer toute les lignes ou se trouve se mot ?
du genre ce texte ci;
du genre ce texte ci;
Vous voulez récuperer seulement "il est beau l'oiseau" ou aussi "quel beau temps dehor" et "oui il fait bien beau aujourd'hui" ??il est beau l'oiseau
quel beau temps dehor
ca va ?
oui il fait bien beau aujourd'hui
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
- TT22
- Membre émérite

- Messages : 1566
- Enregistré le : lun. 18 avr. 2011 15:21
- Localisation : La Quatrième Dimension
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
Est-ce que cela te convient :
Et voici le fichier à chercher
► Afficher le texte
► Afficher le texteNouveau document texte.txt
Cordialement,
TT22
TT22
- PandiPanda
- Membre émérite

- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
Sinon, vou avez toujours ceci;
Cette fonction, retourne un array avec pour chaque "case du tableau" une ligne correspondante dans le fichier .txt
voila, si vous ne voulez recuperer que la 1ère valeur d'un fichier texte, il vous suffit d'utiliser l'index 0 => array[0] pour l'avoir, si vous voulez toute les valeurs, il suffit de faire une boucle "For ... Next".
► Afficher le texte
► Afficher le textetest.txt
voila, si vous ne voulez recuperer que la 1ère valeur d'un fichier texte, il vous suffit d'utiliser l'index 0 => array[0] pour l'avoir, si vous voulez toute les valeurs, il suffit de faire une boucle "For ... Next".
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
Tin vous êtes vraiment compliqués les mecs...
à utiliser avec la fable de TT22 :
à utiliser avec la fable de TT22 :
Code : Tout sélectionner
$file = FileOpen("fable.txt", 0)
$recup = FileOpen("recup.txt", 1)
$mot = "corbeau"
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringInStr($line, $mot, 0) Then FileWriteLine($recup, $line)
Wend
FileClose($file)
FileClose($recup)
ShellExecute("recup.txt")" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
Sinon, question rapidité et possibilité, vous avez ceci : http://www.autoitscript.com/forum/topic ... -directory
- Très rapide.
- Permet de chercher dans un ou plusieurs fichiers.
- Recherche récursive.
- Très rapide.
- Permet de chercher dans un ou plusieurs fichiers.
- Recherche récursive.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
StringInStr va nous draguer un peu trop de 'beau' : "Un bel escabeau"
Code : Tout sélectionner
#include <File.au3>
Local $mot = "sa"
_FileWriteFromArray("extraits.txt", StringRegExp(FileRead("fable.txt"), "(?im)(^.*\b" & $mot & "\b.*)(?:\r\n?$)", 3))La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Trouver une ligne depuis un mot présent dans cette
salut, je remonte ce vieux post car un des codes m’intéresse pas mal.
j'utilise ce code pour récup une phrase qui ressemble à ça dans un fichier de log
ID= 27896543
dans le log j'ai d'autre phrase du type
ID= 0
est ce qu'il y a un moyen d'ignorer les ligne avec le 0 ?
ou alors il faut les supprimer a la fin lorsqu'on crée le *.txt ?
j'utilise ce code pour récup une phrase qui ressemble à ça dans un fichier de log
ID= 27896543
dans le log j'ai d'autre phrase du type
ID= 0
est ce qu'il y a un moyen d'ignorer les ligne avec le 0 ?
ou alors il faut les supprimer a la fin lorsqu'on crée le *.txt ?
Code : Tout sélectionner
$file = FileOpen("fable.txt", 0)
$recup = FileOpen("recup.txt", 1)
$mot = "ID"
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringInStr($line, $mot, 0) Then FileWriteLine($recup, $line)
Wend
FileClose($file)
FileClose($recup)
ShellExecute("recup.txt")- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
pour les fanas de linux, il existe des portages sous windows de la commande grep, ou awk...
D'ailleurs, ça serait une idée de script à réaliser avec autoit, ça, histoire de résoudre tous les problèmes de ce type d'un coup
D'ailleurs, ça serait une idée de script à réaliser avec autoit, ça, histoire de résoudre tous les problèmes de ce type d'un coup
Re: [..] Trouver une ligne depuis un mot présent dans cette
L'extraction peut être faite directement en passant par une expression régulière.
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Trouver une ligne depuis un mot présent dans cette
jguinch a écrit :L'extraction peut être faite directement en passant par une expression régulière.
► Afficher le texte
a par contre le fameux les nombre de l'ID= 27896543 sont aléatoire et change dans chaque log donc est ce qu'on peut tjr adapter ce code ou il vaut mieux passer par autre chose ?
sachant que le chiffres derrière ID= fait 9 ou 10 chiffre (ou alors juste 0)
Re: [..] Trouver une ligne depuis un mot présent dans cette
Oui, j'avais bien compris...davzell a écrit :a par contre le fameux les nombre de l'ID= 27896543 sont aléatoire
Si c'est 9 ou 10 chiffres, ça devrait contevenir :
Code : Tout sélectionner
$results = StringRegExp($file, "ID=\s?[1-9]\d{8,9}\b", 3)Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Trouver une ligne depuis un mot présent dans cette
non l'ID commence tjr par un 1 ou 9
du coup c'est plutôt ca que ?
j'ai voulu l'adapter avec le reste du code pour extraire dans tout le fichier de log mais pour le moment ça coince..
du coup c'est plutôt ca
Code : Tout sélectionner
$results = StringRegExp($file, "ID=\s?[1-9]\d[b]{1[/b],9}\b", 3)Code : Tout sélectionner
$results = StringRegExp($file, "ID=\s?[1-9]\d[b]{8[/b],9}\b", 3)j'ai voulu l'adapter avec le reste du code pour extraire dans tout le fichier de log mais pour le moment ça coince..
Code : Tout sélectionner
$file = FileOpen("Logfile.log", 0)
$line = FileReadLine($file)
$results = StringRegExp($line, "ID=\s?[1-9]\d{8,9}\b", 3)
_ArrayDisplay($results)
Modifié en dernier par mikell le jeu. 27 mars 2014 18:20, modifié 1 fois.
Raison : citation supprimée
Raison : citation supprimée
Re: [..] Trouver une ligne depuis un mot présent dans cette
Non, du coup c'est plutôt
$results = StringRegExp($file, "ID=\s?[19]\d{8,9}\b", 3)
Si on décortique :
ID= : ID=
\s? : un espace ou non
[19] : 1 ou 9
\d{8,9} : n'importe quel chiffre 8 ou 9 fois.
Donc l'expression ci-dessus extrait toutes chaines quicommencent par contiennent "ID=", suivit d'un ou aucun espace, suivit de 1 ou 9, suivit de 8 chiffres
$results = StringRegExp($file, "ID=\s?[19]\d{8,9}\b", 3)
Si on décortique :
ID= : ID=
\s? : un espace ou non
[19] : 1 ou 9
\d{8,9} : n'importe quel chiffre 8 ou 9 fois.
Donc l'expression ci-dessus extrait toutes chaines qui
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- jchd
- AutoIt MVPs (MVP)

- Messages : 2284
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [..] Trouver une ligne depuis un mot présent dans cette
Pour la bonne compréhension :
Que nenni : "qui contiennent"toutes chaines qui commencent par "ID="
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [..] Trouver une ligne depuis un mot présent dans cette
Ah oui, c'est vrai JC, je suis allé un peu vite.
j'ai édité mon post.
Mais ça me fait penser que finalement, l'énoncé n'est pas complet...
Que veux-tu récupérer exactement ? La ligne complète ? Juste le numéro ? L'ensemble "ID= XXXXXXXXX" ?
Mais ça me fait penser que finalement, l'énoncé n'est pas complet...
Que veux-tu récupérer exactement ? La ligne complète ? Juste le numéro ? L'ensemble "ID= XXXXXXXXX" ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Trouver une ligne depuis un mot présent dans cette
uniquement les nombre après ID serait le top
Re: [..] Trouver une ligne depuis un mot présent dans cette
Code : Tout sélectionner
$results = StringRegExp($file, "ID=\s?([1-9]\d{8,9}\b)", 3)Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Re: [..] Trouver une ligne depuis un mot présent dans cette
ca marche nikel merci bien
et du coup le fait que je puisse pas le faire fonctionner avec le filereadline c'est parce qu'il vaut mieux utiliser une autre fonction ou parce que je l'ai mal écrit ?
et du coup le fait que je puisse pas le faire fonctionner avec le filereadline c'est parce qu'il vaut mieux utiliser une autre fonction ou parce que je l'ai mal écrit ?
Code : Tout sélectionner
$file = FileOpen("Logfile.log", 0)
$line = FileReadLine($file)
$results = StringRegExp($line, "ID=\s?[1-9]\d{8,9}\b", 3)
_ArrayDisplay($results)Re: [..] Trouver une ligne depuis un mot présent dans cette
FileReadLine va te lire une seule ligne.
Utilise FileRead(), ça lira tout le fichier d'un coup.
Utilise FileRead(), ça lira tout le fichier d'un coup.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !


