[R] En cas d'erreur,revenir à la ligne du début

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Raz2Kill
Niveau 2
Niveau 2
Messages : 22
Enregistré le : jeu. 02 sept. 2010 10:46
Status : Hors ligne

[R] En cas d'erreur,revenir à la ligne du début

#1

Message par Raz2Kill »

Bonsoir à tous!

Voilà j'ai un script de création de galerie assez compliqué qui est censé se stopper en cas de données manquantes(l'Inputbox $Lien vide et/ou Base_HTML1.txt manquant).Seulement voilà je n'arrive pas à l'arrêter :lol:
Il faut que si l'une des données est manquante,un msgbox s'affiche pour informer l'utilisateur puis que cela retourne au Select,enfin à la GUI en attente d'action quoi :roll:

Code : Tout sélectionner

While 1
    $guimsg = GUIGetMsg()
    Select
    case $guimsg = $Bouton_apropos
        MsgBox(64, "Gallery Maker", "")
    case $guimsg = $Bouton_Generer
        $RLien = GUICtrlRead($Lien)
        If $RLien = "" Then
            Do
            Until MsgBox(48, "Gallery Maker", "Erreur : Aucun code n'a été collé!")
            Exitcas
        $BaseHTML1 = FileOpen("Base_HTML1.txt")
        If $BaseHTML1 = -1 Then
            Do
            Until MsgBox(48, "Gallery Maker", "Le fichier Base_HTML1.txt est introuvable!")
        Else
            $RBaseHTML1 = FileRead($BaseHTML1)
            GUICtrlSetData($Code_Genere, $RBaseHTML1)           
        EndIf
        EndIf
        ;Suite du script non fini
    case $guimsg = $GUI_EVENT_CLOSE
        ExitLoop
    EndSelect
WEnd
Exit
Merci d'avance pour votre aide :wink:
Modifié en dernier par Raz2Kill le sam. 14 mai 2011 22:22, modifié 3 fois.

Code : Tout sélectionner

If Online_Assistant_Help ( "[b]Cool[/b]" , "[b]Listening[/b]" ) Then 
Show $PID
$PID=([b]Cordialement,Raz2Kill[/b])
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]En cas d'erreur,revenir à la ligne du début

#2

Message par Tlem »

Voici un code plus aéré et comme vous le souhaitez. ;)
J'ai pas commenté les lignes, je pense que vous comprendrez vite. :mrgreen:
► 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é".
Raz2Kill
Niveau 2
Niveau 2
Messages : 22
Enregistré le : jeu. 02 sept. 2010 10:46
Status : Hors ligne

Re: [..]En cas d'erreur,revenir à la ligne du début

#3

Message par Raz2Kill »

Merci pour la réponse rapide! :D

Un continucase ainsi qu'un switch merci pour le conseile.Si j'ai bien compris le

Code : Tout sélectionner

If @error
remplace le

Code : Tout sélectionner

If $BaseHTML1 = -1
?

Merci en tout les cas :wink:

Code : Tout sélectionner

If Online_Assistant_Help ( "[b]Cool[/b]" , "[b]Listening[/b]" ) Then 
Show $PID
$PID=([b]Cordialement,Raz2Kill[/b])
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..]En cas d'erreur,revenir à la ligne du début

#4

Message par Tlem »

Un FileRead renvoi une erreur en cas d’échec et FileOpen renvoi -1, donc oui c'est similaire. ;)

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
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é".
Raz2Kill
Niveau 2
Niveau 2
Messages : 22
Enregistré le : jeu. 02 sept. 2010 10:46
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#5

Message par Raz2Kill »

J'ai modifié seulement maintenant mon script (n'étant revenu dessus que maintenant...) et je me rend compte qu'il y a un petit souci... :?

En cas d'erreur (généré par l'absence de lien ou du fichier Base_HTML1.txt),le script se quitte après avoir validé la Msgbox.Logique,puisque le dernier case est

Code : Tout sélectionner

        case $GUI_EVENT_CLOSE
            ExitLoop

    EndSwitch
WEnd
Or,je souhaiterais qu'en cas d'erreur avec le lien,le programme ne se quitte pas pour que l'utilisateur puisse en coller un dans l'inputbox.En revanche pour le fichier manquant je pense qu'il vaut mieux laisser comme ça car sans ce fichier,le programme n'a aucune utilité :mrgreen:

Cordialement,

Code : Tout sélectionner

If Online_Assistant_Help ( "[b]Cool[/b]" , "[b]Listening[/b]" ) Then 
Show $PID
$PID=([b]Cordialement,Raz2Kill[/b])
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#6

Message par Tlem »

Le dernier Case n'est exécuté que si vous fermez la fenêtre principale, donc si vous avez un problème, il ne vient pas de cette partie.
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é".
Raz2Kill
Niveau 2
Niveau 2
Messages : 22
Enregistré le : jeu. 02 sept. 2010 10:46
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#7

Message par Raz2Kill »

Tlem a écrit :Le dernier Case n'est exécuté que si vous fermez la fenêtre principale, donc si vous avez un problème, il ne vient pas de cette partie.
Dans ce cas...D'où viens le problème?J'ai beau chercher je ne vois pas :(
Voici le code dans son intégralité,pour peut-être identifier le problème :|
► Afficher le texte
Le dernier MsgBox est simplement là pour signaler la fermeture du programme.Et j'ai essayé plusieurs méthodes mais sans succès,juste des erreurs qui plantent le script dès le démarrage :cry:

Merci d'avance

Cordialement

Code : Tout sélectionner

If Online_Assistant_Help ( "[b]Cool[/b]" , "[b]Listening[/b]" ) Then 
Show $PID
$PID=([b]Cordialement,Raz2Kill[/b])
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#8

Message par Tlem »

Mettez le Case $GUI_EVENT_CLOSE au début de la liste des cas et là ça fonctionne. ;)

Edit :
Finalement, je reviens sur le code que j'ai proposé, car en réalité, il n'a pas vraiment toute la logique nécessaire.
Voici donc la dernière version de la boucle While qui présente cette fois-ci toutes les caractéristiques d'une boucle standard. ;)
► 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é".
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#9

Message par ani »

C'est une soluce tlem d'indiquer le gui_event_close en première position met çà ne résoudra pas la suite du programme pour ma part je voit plus le "continuecase" remplace le par "ContinueLoop" comme c'est une condition de IF ... Then.

le fichier base_html1.txt y a quoi dedans ?
et le $Lien il te sert à quoi ?

bonne continuation et merci pour le site :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#10

Message par Tlem »

C'est pour cela que j'ai rectifier par un edit mon message. :P
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é".
Raz2Kill
Niveau 2
Niveau 2
Messages : 22
Enregistré le : jeu. 02 sept. 2010 10:46
Status : Hors ligne

Re: [..] En cas d'erreur,revenir à la ligne du début

#11

Message par Raz2Kill »

Désolé pour ma réponse tardive!

J'ai essayé les 2 solutions.Je préfère garder le Case $GUI_EVENT_CLOSE en début de While car une boucle standard me rendait les choses bien trop compliquées... :roll:
ani a écrit :le fichier base_html1.txt y a quoi dedans ?
et le $Lien il te sert à quoi ?
Ce programme récupère un lien sur le site http://www.swfcabin.com (hébergement de fichier SWF) et génère à la place un code HTML ready-to-copy dans un forum par exemple :wink:
Le fichier base_html1.txt contient ainsi une partie du code à rajouter en plus du lien

Même si je pourrais le faire manuellement ce script me facilite nettement la tâche :mrgreen:

Merci pour vos réponses :D

Sujet Résolu!

Code : Tout sélectionner

If Online_Assistant_Help ( "[b]Cool[/b]" , "[b]Listening[/b]" ) Then 
Show $PID
$PID=([b]Cordialement,Raz2Kill[/b])
Répondre