[R] Pas d'incrémentation de FilereadLine dans un do..while

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
AutoItUser
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 25 juil. 2012 19:37
Status : Hors ligne

[R] Pas d'incrémentation de FilereadLine dans un do..while

#1

Message par AutoItUser »

Bonjour,

Je rencontre un problème avec un bout de code destiné à tester le retour de requêtes HTTP/HTTPS.

Mon script bloque de manière infinie sur la première ligne du fichier qui contient les URLs à tester. Il ne passe jamais à à la seconde ligne de ce fichier (en fait il se contente de les lire et de les afficher pour le moment, le traitement attendu viendra après).

La structure du des lignes du fichier contenant les url à tester est la suivante : Nom;URL;code de retour attendu. En voici un exemple :

Code : Tout sélectionner

Mon site vide;http://www.XXXXXX.fr;200
Les diverses variables utilisées dans le bout de code suivant sont valides :

Code : Tout sélectionner

FileOpen($URLFile,0)
do
    $LineOfURLFile = FileReadLine($URLFile)
    StringInStr($LineOfURLFile, ";")
    $PieceOfURL = StringSplit($LineOfURLFile, ";")
    MsgBox(0, "yep", $PieceOfURL[1] & " " & $PieceOfURL[2] & " " & $PieceOfURL[3])
Until @error = 1
FileClose($URLFile)
J'ai testé un certain nombre de variations (au départ, j'ai pensé à une boucle infinie) sans succès : seule la première ligne est affichée en boucle, quoi que je fasse.

Je sèches ! Je ne comprends pas pourquoi on ne passe jamais à la seconde ligne.

Merci d'avance.
Modifié en dernier par AutoItUser le sam. 28 juil. 2012 13:09, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Pas d'incrémentation de FilereadLine dans un do..wh

#2

Message par sylvanie »

Bonsoir,
c'est normal, vous avez fait une confusion entre le nom de fichier et son handle d’ouverture en lecture :
► Afficher le texte


là comme il s'agit du handle, l'incrément est implicite. Dans votre mouture, c'est le nom de fichier qui est donné, et là l'incrément doit être explicitement donné et géré via un indice (en plus du fait quele fichier se fait ouvrir et fermer à chaque fois, ce qui n'est pas top). et donc vous lisiez toujours la ligne 1 de par la valeur par défaut
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pas d'incrémentation de FilereadLine dans un do..wh

#3

Message par mikell »

Sans compter que la boucle Do n'est pas très adaptée dans ce cas
En effet avec ton script ou celui de sylvanie on ne sort jamais de la boucle, à cause du test @error qui est mal placé... Il faudrait passer par un "If @error Then" juste sous le FileReadLine, et/ou utiliser un interrupteur

Code : Tout sélectionner

$test = 0
do
    $LineOfURLFile = FileReadLine($hnd)
    If @error Then $test = 1
    If $test = 0 Then MsgBox(0, "yep", $LineOfURLFile)
Until $test = 1
Et on se complique la vie... donc à moins d'avoir une raison particulière d'utiliser le Do, dans ce cas vaut mieux le While
Pourquoi ne pas appliquer l'exemple de l'aide et vouloir changer quelque chose qui marche ?
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
AutoItUser
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 25 juil. 2012 19:37
Status : Hors ligne

[R.] Pas d'incrémentation de FilereadLine dans un do..while

#4

Message par AutoItUser »

Bonjour,

Merci pour ces explications claires que je vais intégrer.

Concernant l'utilisation de do..while, elle est la résultante des différents essais infructueux réalisés en fonction des bouts de codes que trouvé sur le net
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Pas d'incrémentation de FilereadLine dans un do..whi

#5

Message par sylvanie »

Bien vu, je ne m'étais concentré que sur l'histoire du handle ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
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] Pas d'incrémentation de FilereadLine dans un do..whi

#6

Message par mikell »

Niarf niarf niarf :twisted: miaou
sylvanie a écrit :ouaiiis :twisted:
Ceci dit c'est courant chez les nains :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 )
Répondre