[R] Révision d'un script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
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

[R] Révision d'un script

#1

Message par yohan8 »

Bonjour,

Je n'ai pas l'habitude d'exposer mes scripts mais j'en ai un qui m'énerve particulièrement car il bute contre une erreur qui survient 1 fois sur 3. :evil:
La fonction principale de celui-ci est de récupérer des proxy trouvé sur internet et de les caser dans un tableau. Par la suite je ping cette liste de proxy pour classer cette liste de proxy du plus rapide au moins rapide.

L'erreur provient lors du ping des proxy.

Code : Tout sélectionner

$proxyanonyme[$i][2] = Ping($proxyanonyme[$i][0])
Je cite "==> Array variable has incorrect number of subscripts or subscript dimension range exceeded."
Pourtant mon array possède belle et bien le nombre de colonne requise.
► Afficher le texte
Vous ne pouvez pas essayer le script chez vous a moins que vous baissiez votre résolution en 1024*768, et encore...

Bon je sais qu'on peut toujours paufinner le script en utilisant la fonction direct "Clipget()" par exmple et en supprimant tout les restants de mes "test"... mais bon, à l'époque ou je débutais le script je n'avais pas toutes ces notions. :mrgreen:

Si quelqu'un pourrait m'expliquer cette erreur qui survient, je rappelle, une fois sur trois. Sa veut dire que je peux lancer le script et découvrir par la suite mon array pingué.

Yohan :)
Modifié en dernier par yohan8 le mer. 04 juil. 2012 00:04, modifié 1 fois.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [...] Révision d'un script

#2

Message par TT22 »

yohan8 a écrit :L'erreur provient lors du ping des proxy.

Code : Tout sélectionner

$proxyanonyme[$i][2] = Ping($proxyanonyme[$i][0])
Je cite "==> Array variable has incorrect number of subscripts or subscript dimension range exceeded."
Pourtant mon array possède belle et bien le nombre de colonne requise.

Code : Tout sélectionner

Dim $proxyanonyme[1][2]
Euh, non :P
Si tu dim un array $proxyanonyme[1][2], il sera construit de la façon suivante :

Code : Tout sélectionner

$proxyanonyme[0][0]
$proxyanonyme[0][1]
Car il ne faut pas oublier qu'un array se base toujours sur la valeur 0.
Cordialement,
TT22
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: [...] Révision d'un script

#3

Message par yohan8 »

Oui mais par la suite, avant de pinguer mes proxy je fait :

Code : Tout sélectionner

ReDim $proxyanonyme [$n][3]
Ce qui règle mon histoire de colonne.
J'ai au final ma première colonne avec mes proxy, ma deuxième colonne avec mes Port et une troisième colonne qui classera mes proxy.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [...] Révision d'un script

#4

Message par TT22 »

Est-ce que tu as essayé de dimensionner ton array directement à la plus grande taille ([14][2]) ?
Cordialement,
TT22
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: [...] Révision d'un script

#5

Message par yohan8 »

Oui, toujours la même erreur qui s'affiche.
J'essaye de voir pour utiliser la valeur $n dans ma boucle. Je soupçonne $i de foirer le script.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [...] Révision d'un script

#6

Message par TT22 »

Et, l'erreur vient de la première où de la deuxième colonne ?
Cordialement,
TT22
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: [...] Révision d'un script

#7

Message par yohan8 »

Logiquement elle provient de la première colonne car la deuxième je ne l'utilise pas.
Lors de mon Ping, je crée une 3 ème colonne. Je ping le proxy de la 1ère ligne et j'inscrit son ping dans la 3ème colonne de sa ligne.
J'effectue ces actions pour toutes les lignes qui ont un proxy.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Révision d'un script

#8

Message par mikell »

Essaye en commentant le _ArrayDelete
Si tu n'as plus d'erreur, remets le _ArrayDelete et fais ta boucle comme ça

Code : Tout sélectionner

For $i = $proxyanonyme[0][0] to 1 step -1
" 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
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [...] Révision d'un script

#9

Message par yohan8 »

Je n'ai pas bien saisi cette histoire de _arraydelete mais j'ai essayé de faire ma boucle avec

Code : Tout sélectionner

For $i = $proxyanonyme[0][0] to 1 step -1
Sans résultat :cry:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Révision d'un script

#10

Message par Tlem »

Perso, je ferais plutôt ceci :
► Afficher le texte
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é".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Révision d'un script

#11

Message par mikell »

Perso, you're absolutely right :mrgreen:
Most simple, most efficient
" 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
yohan8
Niveau 6
Niveau 6
Messages : 245
Enregistré le : mer. 07 déc. 2011 22:34
Localisation : Rhône
Status : Hors ligne

Re: [...] Révision d'un script

#12

Message par yohan8 »

Bon [...] je voie que ma logique ne plait pas à tout le monde :evil:

Mais c'est vrai que cette méthode me parait plus simple. :mrgreen:
Malheureusement j'ai bien peur que le site crypte ces proxys.
Faîte les tests chez vous en enlevant le code ci dessous :

Code : Tout sélectionner

 _ArrayDelete($aTableData, $i)
EDIT :
Wait five minutes I have found the solution
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Révision d'un script

#13

Message par Tlem »

Image
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é".
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: [...] Révision d'un script

#14

Message par yohan8 »

Bon bas du coup, comme vous avez pu le remarquer je n'au pas trouvé cette solution.

Le script est bon sauf que nous avons dans la colonne adresse IP nous avons des éléments en trop. Élément que j'ai marqué en rouge

Code : Tout sélectionner

[1]|[color=#FF0000]IPDecode("%3c%61%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%66%72%65%65%70%72%6f%78%79%6c%69%73%74%73%2e%6e%65%74%2f%66%72%2f%31%38%38%2e%31%36%35%2e%32%30%35%2e%31%32%39%2e%68%74%6d%6c%22%3e%31%38%38%2e%31%36%35%2e%32%30%35%2e%31%32%39%3c%2f%61%3e")[/color]188.165.205.129|80|HTTP|Anonyme|France|0|0|56.5%|0|0
Ce code en rouge change en fonction des IP.
L'idée serait de supprimer avec StringRegExpReplace les éléments de la colonne 1 comprit entre IPDecode( et ").
Malgré mes l'aide d'autoit & les exemples je n'ai pas trouvé :|
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Révision d'un script

#15

Message par Tlem »

Dans le tableau retourné par le code que je vous ai proposé, je n'ai pas ces données supplémentaires. Donc je ne vois pas le problème.
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é".
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: [...] Révision d'un script

#16

Message par yohan8 »

C'est pas une blague le copié-collé de la 1ère ligne :P
Lorsque je fait le tableau j'ai effectivement le proxy mais j'ai également cette partie que j'ai mis en rouge dans mes précédent poste.
J'essaye maintenant de supprimer ce surplus d'information.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [...] Révision d'un script

#17

Message par mikell »

Exact, c'est bien dans le code source de la page

Code : Tout sélectionner

<td><script type="text/javascript">IPDecode("%3c%61%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%66%72%65%65%70%72%6f%78%79%6c%69%73%74%73%2e%6e%65%74%2f%66%72%2f%39%31%2e%31%32%31%2e%31%35%31%2e%37%36%2e%68%74%6d%6c%22%3e%39%31%2e%31%32%31%2e%31%35%31%2e%37%36%3c%2f%61%3e")</script></td>
<td align="center">3128</td>
<td align="center">HTTPS</td> etc
Par contre ce qui est strange c'est que tu récupères le code javascript et l'IP en clair, en principe ça devrait être l'un ou l'autre
(chez moi je récupère juste l'IP, comme Tlem)
Sinon le regexp c'est

Code : Tout sélectionner

$txt = 'IPDecode("%3c%61%20%68%72%65%66%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%66%72%65%65%70%72%6f%78%79%6c%69%73%74%73%2e%6e%65%74%2f%66%72%2f%31%38%38%2e%31%36%35%2e%32%30%35%2e%31%32%39%2e%68%74%6d%6c%22%3e%31%38%38%2e%31%36%35%2e%32%30%35%2e%31%32%39%3c%2f%61%3e")188.165.205.129'
$txt = StringRegExpReplace($txt, '^.+?\)', "")
msgbox(0,"", $txt)
" 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
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Révision d'un script

#18

Message par Tlem »

Boudiou, je ne comprenais pas d'ou venait cette suite de caractères parasites jusqu'à ce que j'essaie le script sous Windows 7 !!! C'est donc IE9 qui ne réagit pas comme IE8 ...

Bref, avec la ligne indiquée par mikell, nous avons le code ci-dessous qui fonctionne sur Windows XP, Windows 7 et je testerais sous Windows 8 demain car pour l'instant, il est en cours d'installation ... ^^
► Afficher le texte
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é".
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: [...] Révision d'un script

#19

Message par yohan8 »

Great !

Merci & sujet clos :D

EDIT :

Je vais cloturer ce sujet sur une note final de script achevé avec le trie des proxy, du plus au moins rapide

► Afficher le texte
Répondre