[..] Script sur des fichiers

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
DCVolo
Niveau 4
Niveau 4
Messages : 57
Enregistré le : dim. 25 avr. 2010 20:54
Status : Hors ligne

Re: [..] Script sur des fichiers

#21

Message par DCVolo »

Non pas vraiment en fait.

une ligne ou le pseudo est écrit ça donne ceci :
<b><a href="admin_users.php?mode=edit&u=166&rci=f9ec0e461ed1802ae8abd9e3c86d3064" >gRaph</a></b>
ou ceci
<b><a href="admin_users.php?mode=edit&u=2&rci=f9ec0e461ed1802ae8abd9e3c86d3064" style="color:#FFA34F"><b>LegenD</b></a></b>

gRaph et LegenD sont les deux pseudo à recuperer
Le fichier fait plusieurs milier de lignes, pour l'instant avant d'utiliser la BDD je voudrais simplement que les pseudo soient rangés ( un pseudo par 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: [..] Script sur des fichiers

#22

Message par mikell »

DCVolo a écrit :gRaph et LegenD sont les deux pseudo à recuperer
Heu c'était pas possible comme ça ?

Code : Tout sélectionner

$list = ""
$object = ObjCreate("InternetExplorer.Application")
$object.navigate($adresse)
$oLinks = $object.document.links
For $oLink In $oLinks
    If StringInStr($oLink.href, "admin_users.php?mode=edit") Then $list &= $oLink.innerText
Next
MsgBox(0, "", $list)
Modifié en dernier par mikell le lun. 24 oct. 2011 18:26, modifié 1 fois.
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
DCVolo
Niveau 4
Niveau 4
Messages : 57
Enregistré le : dim. 25 avr. 2010 20:54
Status : Hors ligne

Re: [..] Script sur des fichiers

#23

Message par DCVolo »

Non, je veux recuperer ces données via un fichier. Et pour IE j'ai déjà expliqué que par exemple moi je n'ai plus IE. Désolé d'être casse pied ^^

Le nombre de pseudo a recuperer n'est pas fixe, parcontre forcement le nombre de mail a recuperer = le nombre de pseudo récupéré.

Ces deux lignes sont des exemples mais les caractères peuvent varier après le u=

Le plus simple serai de recuperer chaque ligne ( toute la ligne ) contenant : <b><a href="admin_users.php?mode=edit&u=

d'enregistrer chacune de ces lignes dans un fichier texte encore une fois ligne par ligne. De faire la même chose avec les e-mails dans un autre fichier texte.

puis ensuite de supprimer les caractères inutiles autour du pseudo qui est contenu à chaque fois entre ces balises >$pseudo< puis de supprimer ces deux caractères.

pour l'e-mail <div><a href="mailto:email@email.com"> pareil avec le caractère "

le tout en sauvegardant bien le resultat du vrai pseudo et du vrai e-mail dans un ou deux fichiers qui serviront ensuite à recreer la BDD.


Donc devant ce système de recherche, je suis couché...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script sur des fichiers

#24

Message par mikell »

DCVolo a écrit : Et pour IE j'ai déjà expliqué que par exemple moi je n'ai plus IE.
Avec ça plus besoin d'IE... ça s'adapte au nombre variable de pseudos et ça renvoie aussi le nombre de pseudos et les adresses mail

Code : Tout sélectionner

$object = ObjCreate("Shell.Explorer.2")
$object.navigate($adresse)
$oLinks = $object.document.links
For $oLink In $oLinks
    If StringInStr($oLink.href, "admin_users.php?mode=edit") Then $list &= $oLink.innerText
    If StringInStr($oLink.href, "mailto") Then $mail &= StringTrimLeft($oLink.href, 6)
Next
DCVolo a écrit :Non, je veux recuperer ces données via un fichier.
C'est pour faire une sauvegarde ? rien n'empêche de crér un fichier à côté avec les données récupérées...
" 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
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Script sur des fichiers

#25

Message par PandiPanda »

Ou ceci? certe c'est moche, et améliorable *1000 par des StringRegEx() mais c'est fonctionnel :P
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
DCVolo
Niveau 4
Niveau 4
Messages : 57
Enregistré le : dim. 25 avr. 2010 20:54
Status : Hors ligne

Re: [..] Script sur des fichiers

#26

Message par DCVolo »

C'est pas si moche que ça pour moi =)

Je vais passer quelques heures sur le pc aujourd'hui à voir comment ameliorer ton script avec des StringRegEx pour la recherche dans le fichier de plusieur milier de lignes et copier le resultat de la ligne dans un autre fichier et ensuite ton script va reutiliser ces lignes pour supprimer l'inutile.

Merci beaucoup.
DCVolo
Niveau 4
Niveau 4
Messages : 57
Enregistré le : dim. 25 avr. 2010 20:54
Status : Hors ligne

Re: [..] Script sur des fichiers

#27

Message par DCVolo »

Moi parcontre j'ai quelque chose de non fonctionnel a faire verifier ^^




Code : Tout sélectionner

#include <file.au3>


$file5 = "C:\blablabla\Backup\admin_userlist.php.htm"
$CountLines = _FileCountLines($file5)
$rechercherlignemail = StringRegExp ($file5, '<div><a href="mailto:.*">',0 )
$rechercherlignepseudo = StringRegExp ($file5, '<b><a href="admin_users.php?mode=edit&u=.*</b>',0 )
$lignemailretourneun = 
$ligneduspeudoretourneun = 

func _recherche()
    
while 1
if $rechercherlignemail = 1 Then
FileWriteLine("C:\blablabla\Backup\Mails.txt", $lignemailretourneun)
EndIf

if $lignepseudo or $lignemail = 1 Then
FileWriteLine("C:\blablabla\Backup\Pseudos.txt", $ligneduspeudoretourneun)
EndIf
WEnd

EndFunc



for FileReadLine ($file5 , 0) to ($file5 ,$CountLines)
_recherche()
next

 
le truc là dans ce code c'est recuperer la ligne sinon je pense qu'il est bon? :oops: non ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Script sur des fichiers

#28

Message par mikell »

Image

Code : Tout sélectionner

for FileReadLine ($file5 , 0) to ($file5 ,$CountLines)
_recherche()
next
Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
DCVolo
Niveau 4
Niveau 4
Messages : 57
Enregistré le : dim. 25 avr. 2010 20:54
Status : Hors ligne

Re: [..] Script sur des fichiers

#29

Message par DCVolo »

M**** pourtant je l'ai dans mon code ce filereadline en moins ici ^^

sinon comme je suis trop fort j'ai fait ça aussi :

Code : Tout sélectionner

 

$file5 = "C:\blablabla\Backup\admin_userlist.php.htm"
$rechercherlignemail = StringRegExp ($file5, '<div><a href="mailto:.*">',0 )
$rechercherlignepseudo = StringRegExp ($file5, '<b><a href="admin_users.php?mode=edit&u=.*</b>',0 )
$file = FileOpen($file5, 0)




if not FileExists ("C:\blablabla\Backup\Mails.txt") And not FileExists ("C:\blablabla\Backup\Pseudos.txt") Then
    FileWrite ("C:\blablabla\Backup\Mails.txt", "")
    FileWrite ("C:\blablabla\Backup\Pseudos.txt", "")
EndIf


; Check if file opened for reading OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Read in lines of text until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
        
    ;MsgBox(0, "Line read:", $line)
    
    FileReadLine("C:\blablabla\Backup\Mails.txt", $rechercherlignemail)
    FileReadLine("C:\blablabla\Backup\Pseudos.txt", $rechercherlignepseudo)
    
Wend

FileClose($file)
 
Ah si si y'a pas d'erreur, mais sa fonctionne pas pour autant :evil:

Faut reperer la ligne qui contient le patern dans une variable et enregistrer la ligne complete dans un fichier.
J'vais finir completement dingue xD
Répondre