Page 1 sur 1
[R] Recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 16:26
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.
Re: [..] recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 16:30
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 ?...
Re: [..] recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 17:28
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
Re: [..] recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 18:19
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.
Re: [..] recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 19:07
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
Re: [..] recherche et copie d'une chaîne
Posté : lun. 10 févr. 2014 22:22
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.
Re: [..] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 09:23
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.
Re: [..] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 10:27
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.
Re: [..] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 11:39
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.
Re: [..] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 11:54
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...
Re: [..] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 12:05
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
Re: [R] recherche et copie d'une chaîne
Posté : mar. 11 févr. 2014 14:09
par emanemos
merci pour votre aide.