[R] Recherche et copie d'une chaîne

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

[R] Recherche et copie d'une chaîne

#1

Message par emanemos »

Bonjour,
je recherche à copier à partir d'une page internet les caractères de longueur variable qui suivent une chaîne définie.

exemple :
resulttoto
resultimpossible
resultinconnu

je recherche dans la page IE result et je veux copier dans un fichier excel toto ou impossible ou inconnu qui suivent result.

J'ai essayé avec _IEBodyReadText & StringInStr & StringRegExp : impossible
avec _IETableGetCollection & _IETableWriteToArray : impossible

A priori parce que result et toto sont collés (pas d'array).

Avez vous une idée?

Merci.
Modifié en dernier par emanemos le mar. 11 févr. 2014 12:07, modifié 1 fois.
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#2

Message par sksbir »

bonjour
ton problème n'est pas complètement expliqué : tu veux recopier une chaine de caractère depuis la fin d'une chaine prédéfinie ( "result" ) --> ok, mais jusqu'où tu veux faire la copie ? jusqu'au prochain "result" ? jusqu'à la fin de la ligne ?...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#3

Message par mikell »

A priori c'est possible mais l'énoncé est beaucoup trop vague
Faudrait donner le texte retourné par _IEBodyReadText et dire précisément ce qu'on y cherche
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#4

Message par emanemos »

plus d'explications :
dans une boucle, je recherche à chaque page IE ouverte la chaîne de caractères après result (collé à result) jusqu'à la fin de la ligne (ou avant une autre chaîne "definition").
La chaîne de caractères après result diffère d'une page IE à une autre.
Merci pour votre aide.
Modifié en dernier par emanemos le lun. 10 févr. 2014 19:15, modifié 2 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#5

Message par mikell »

mikell a écrit :Faudrait donner le texte retourné par _IEBodyReadTextet dire précisément ce qu'on y cherche
Pas moyen de donner de réponse (ou de pattern) si on ne sait pas de quoi se composent la chaîne et le texte qui la contient
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
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: [..] recherche et copie d'une chaîne

#6

Message par jchd »

D'autant plus que le concept de "ligne" en html est plutôt vague si on ne précise pas exactement ce à quoi on se réfère.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#7

Message par emanemos »

IEBodyReadText donne :
Profiltiti
Resulttoto
Modetata

Je veux copier dans Excel ce qui est entre Result & Mode, sachant que cela change entre chaque page IE ouverte.
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#8

Message par fred39 »

Bonjour pour rechercher dans un fichier texte, j'avais utilisé _stringbetween

Code : Tout sélectionner

$tableau=_StringBetween(FileRead(@WindowsDir&"\toto.log"),"TOTO_GM=",@CR)
enuite on test si $tableau=0 il ya un pb (voir fichier aide)
sinon $tableau[0] contient la chaine recherchée.

Vous pourriez avoir quelque chose du style:

Code : Tout sélectionner

$tableau=_stringbetween(IEBodyReadText($page)"Result","Mode")
remplacez "mode" par @CR si il ya des retour chariots

Bonne journée.
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#9

Message par emanemos »

Code : Tout sélectionner

$sText = _IEBodyReadText ($oIE)
If (StringInStr($sText,'Result)) Then
$sDLM = StringRegExp($sText, Result(.*)',3)
_ExcelWriteCell($oExcel, $sDLM, $j,3)
J'ai trouvé en faisant cela; mais j'ai un caractère spécial (CR) quand j'écris le résultat dans Excel.

Comment ne pas le prendre en compte? dans un cas spécial, je dois utiliser ce principe.


Je ne l'ai pas en utilisant cela :

Code : Tout sélectionner

$sText = _IEBodyReadText ($oIE)
$sDLM=_stringbetween($sText,"'Result",@CR)
_ExcelWriteCell($oExcel, $sDLM, $j,3)
mais je combine les 2 méthodes.
Modifié en dernier par emanemos le mar. 11 févr. 2014 11:56, modifié 1 fois.
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#10

Message par fred39 »

Code : Tout sélectionner

#include <String.au3>
$cherche=_StringBetween("le resultat est à la Mode","Result","Mode")
msgbox (0,@scriptname,$cherche[0])
remplacez "Mode" par @CR, ou @LF selon...
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

Re: [..] recherche et copie d'une chaîne

#11

Message par emanemos »

Code : Tout sélectionner

 If (StringInStr($sText,'Service')) Then
$sDLM = StringRegExp($sText, 'Service(.*)\r',3)
_ExcelWriteCell($oExcel, $sDLM, $j,4)
EndIf
j'ai résolu avec \r
emanemos
Niveau 4
Niveau 4
Messages : 61
Enregistré le : sam. 26 nov. 2011 12:39
Status : Hors ligne

Re: [R] recherche et copie d'une chaîne

#12

Message par emanemos »

merci pour votre aide.
Répondre