[R] Lire la ligne où se trouve la chaîne X

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

[R] Lire la ligne où se trouve la chaîne X

#1

Message par Rancar »

Bonjour,

En fait, je coince sur un bête truc : lire le numéro de la ligne où se trouve la chaîne rechercher.
Je suppose que je dois utiliser FileReadLine et StringInStr mais je n'en sais pas plus ^^

J'ai essayé ceci mais ça ne fonctionne pas =/
Ici, je cherche la ligne qui contient la première chaîne "Cherche"

Code : Tout sélectionner

FileReadLine("blabla.txt",StringInStr("blabla.txt","Cherche",0,1))
Merci de votre aide et désolé pour la "débilité" de ma question :roll:
Modifié en dernier par Rancar le mar. 27 août 2013 19:22, modifié 1 fois.
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#2

Message par yohan8 »

Il me semble que la fonction FileReadLine ne te permet pas de "lire un numéro de ligne", mais plutot de "Lire une ligne dans son intégralité".

En revanche la fonction _FileReadToArray te permet de remplir un tableau avec chaque ligne de ton fichier.
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#3

Message par Rancar »

Merci pour votre réponse :)
Je vais creuser du côté de _FileReadToArray :)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#4

Message par mikell »

Nan nan, FileReadLine était la bonne piste

Code : Tout sélectionner

$file = FileOpen("test.txt", 0)
$i = 0
$found = false
While 1
    $i += 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    If StringInStr($line,"cherche") Then 
        $found = true
        ExitLoop
    EndIf
WEnd
FileClose($file)
If $found Then MsgBox(0, "", "ligne  " & $i)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#5

Message par Rancar »

Merci Mikell mais j'ai trouvé une autre solution :
_FileReadToArray fonctionne aussi comme ceci :

Code : Tout sélectionner

Local $ReadText
_FileReadToArray("blabla.txt",$ReadText)
For $x = 1 To $ReadText[0]
    If StringInStr($ReadText[$x],"Cherche",0,1) Then
        MsgBox(0,"","Ligne : "&$x)
    EndIf
Next
Exit
Laquelle est la plus efficace/ plus rapide ? :)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#6

Message par mikell »

Efficacité identique, rapidité non (le fichier est intégralement lu dans une array puis l'array est relue) mais pour ce traitement-là la différence n'est pas significative :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#7

Message par Rancar »

Oki merci :)
Une dernière petite question qui n'a rien avoir (mais qui ne nécessite pas vraiment l'ouverture d'un nouveau sujet)
Comment analyser une chaîne et retirer les nombres ?
Ex : "blahk hfk hr4574ff jlfj" devient "4574" ? ^^
J'ai cherché du côté de StringRegExp mais je ne comprends rien :shock:
Avatar du membre
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#8

Message par yohan8 »

L'avantage est que ton script est plus "propre" avec _FileReadToArray :D
Rancar a écrit :J'ai cherché du côté de StringRegExp mais je ne comprends rien
Image
Modifié en dernier par yohan8 le mar. 27 août 2013 19:20, modifié 1 fois.
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#9

Message par Rancar »

Certes mais il nécessite une include quand même :mrgreen:
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#10

Message par mikell »

StringRegExp sert exactement à ça mais a une syntaxe bien personnelle

Code : Tout sélectionner

$txt = "blahk hfk hr4574ff jlfj"
$res = StringRegExp($txt, '\d+', 3)
Msgbox(0,"", $res[0])
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Rancar
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 11 avr. 2013 23:46
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire la ligne où se trouve la chaîne X

#11

Message par Rancar »

C'est parfait ! :D
Merci à vous :D

Sujet résolu :)
Répondre