[R] Recherche deux chaînes de caractères dans une ligne

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ric025
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 janv. 2011 04:12
Status : Hors ligne

[R] Recherche deux chaînes de caractères dans une ligne

#1

Message par ric025 »

Bonjour.

Je voudrais que mon script prenne en compte deux chaînes de caractères distantes dans une même ligne d'un fichier texte.

Mon script fonctionne avec la fonction : StringInStr si je mets toute la ligne. Mais cette ligne contient des caractères aléatoires. Je veux donc prendre en compte seulement quelques mots.

Par exemple, j'ai ceci :

Code : Tout sélectionner

While 1
$line = FileReadLine($file)
if @error = -1 Then ExitLoop

If StringInStr($line, "Version de Firefox (Mozilla) : 3.9 (fr) /!\ non à jour !",1) Then
  InetGet("http://download.mozilla.org/?product.....etc", @DesktopDir&"\Firefox.exe")
WEnd
Exit
Donc, comme ça, aucun soucis. Si, dans mon rapport, j'ai cette ligne, le téléchargement se lance correctement. Seulement, cette partie : 3.9 (fr) est aléatoire, évidemment ... Et je n'arrive pas à faire pour prendre en compte le début et la fin de la ligne, sans cette petite partie ;)

Merci pour l'aide apportée.
++
Modifié en dernier par ric025 le jeu. 29 mars 2012 09:35, modifié 3 fois.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Recherche deux chaînes de caractères dans une ligne

#2

Message par matwachich »

Code : Tout sélectionner

If StringInStr($line, 'Version de Firefox (Mozilla)') And StringInStr($line, 'non à jour') Then ...
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
ric025
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 janv. 2011 04:12
Status : Hors ligne

Re: [..] Recherche deux chaînes de caractères dans une ligne

#3

Message par ric025 »

Hi ;)

Effectivement, ça a l'air de fonctionner ... J'avais oublié de retaper "StringInStr" après le "AND" ... :oops:

J'ai eu peur que comme ça, il prenne en compte le "/!\ non à jour !" dans tout le rapport, mais non !! :D :D

Je te remercie ! :D
ric025
Niveau 2
Niveau 2
Messages : 19
Enregistré le : lun. 10 janv. 2011 04:12
Status : Hors ligne

Re: [..] Recherche deux chaînes de caractères dans une ligne

#4

Message par ric025 »

Re.

En fait, c'est ce que je craignais ... cela ne fonctionne pas ... Il y a plusieurs lignes à vérifier, par cette méthode, rien, le programme se ferme ...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Recherche deux chaînes de caractères dans une ligne

#5

Message par Tlem »

Je ne suis pas sur de l’efficacité de mon pattern, mais voici une autre solution :

Code : Tout sélectionner

$String = "Version de Firefox (Mozilla) : 3.9 (fr) /!\ non à jour !"
$Pattern = "(Version de Firefox \(Mozilla\) : ).*( /!\\ non à jour !)"

MsgBox(0, '', StringRegExp($String, $Pattern))

; Sans (Mozilla)
$String = "Version de Firefox : 3.9 (fr) /!\ non à jour !"
MsgBox(0, '', StringRegExp($String, $Pattern))

; Avec erreur dans Firefox
$String = "Version de Firfox (Mozilla) : 3.9 (fr) /!\ non à jour !"
MsgBox(0, '', StringRegExp($String, $Pattern))
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é".
Répondre