switch ou quelque chose comme ca

Vous voulez de l'aide ? Postez ici :)
Post Reply
orckiller
Posts: 5
Joined: 15 Sep 2012, 17:41

switch ou quelque chose comme ca

Post by orckiller »

Bonjour,

Je souhaiterai pouvoir dans une boucle générer une variable aléatoire, la tester et en fonction de la valeur qui pourra aller de 1 à 10 adresse une procédure particulière. Ca ressemble au switch case de C si je me souvient bien. Pouvez vous m'aider et me dire comment faire ca??

Merci d'avance
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: switch ou quelque chose comme ca

Post by Jmgr »

Salut,

Il y a plusieurs façon d'y arriver. Par exemple :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.4.2" scriptVersion="1.0.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionBeginProcedure" version="1.0.0"/>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionVariable" version="1.0.0"/>
        <action name="ActionCallProcedure" version="1.0.0"/>
        <action name="ActionEndProcedure" version="1.0.0"/>
        <action name="ActionGoto" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionBeginProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="0">proc0</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Procédure 0</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="textMode">
                <subParameter name="value" code="0">automatic</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionEndProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionBeginProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="0">proc1</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Procédure 1</subParameter>
            </parameter>
            <parameter name="textMode">
                <subParameter name="value" code="0">automatic</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionEndProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionBeginProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="0">proc2</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="windowIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Procédure 2</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="textMode">
                <subParameter name="value" code="0">automatic</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="customIcon">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionEndProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionVariable" label="var">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <parameter name="colorValue">
                <subParameter name="value" code="0">::</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">procName</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">string</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="1">"proc" + Algorithms.randomInteger(0, 2)</subParameter>
            </parameter>
            <parameter name="positionValue">
                <subParameter name="value" code="0">:</subParameter>
            </parameter>
        </action>
        <action name="ActionCallProcedure">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="name">
                <subParameter name="value" code="1">procName</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="line">
                <subParameter name="value" code="0">var</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
"My software never has bugs. It just develops random features."
orckiller
Posts: 5
Joined: 15 Sep 2012, 17:41

Re: switch ou quelque chose comme ca

Post by orckiller »

Bonjour

Merci de ta réponse... Mais je n'y comprends rien....Je ne lst pas le script dans le texte. Comment obtiens tu ce résultat dans Actionaz? Il faut mettre une boite de code et entrer tout ca dedans? ou y a t'il une autre manière de faire?

est ce que je peux faire comme ca :
Mettre le code suivant dans une boite "code" :
var random;
random = Algorithms.randomInteger(1,2);

switch (random)
{
case 1 : test1; break;
case 2 : test2 ; break
}

Et définir 2 procédures test1 et test2 avec une action dans chacune.

Pour l'instant ca ne marche pas....

EDIT : Ca y est j'ai compris ton fichier. Et je vois comment faire avec la définition de variable. Par contre mon exemple peut il fonctionner?

Merci d'avance
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: switch ou quelque chose comme ca

Post by Jmgr »

Oui j'ai oublié de le préciser, c'est à importer avec Fichier->Importer->Contenu du script.

Tu peux aussi faire ça avec du code : (soit dans une action Code, soit dans n'importe quel champ en mode "code", c'est à dire avec le triangle rouge)

Code: Select all

var random;
random = Algorithms.randomInteger(1,2);

function test1()
{
    //Contenu de la procédure 1
    //Pour changer l'action suivante : Script.nextLine = 42;
    //Ou alors avec un label : Script.nextLine = "monLabel";
}

function test2()
{
    //Contenu de la procédure 2
}

switch (random)
{
case 1 : test1(); break;
case 2 : test2(); break
}
Pour la liste complète des objects du code : http://wiki.actionaz.org/doku.php?id=fr:code
"My software never has bugs. It just develops random features."
orckiller
Posts: 5
Joined: 15 Sep 2012, 17:41

Re: switch ou quelque chose comme ca

Post by orckiller »

Merci de ton aide.

J'ai encore une question désolé : comment on fait pour définir des variables globales qui permettent de mémoriser une valeur entre 2 executions successives. Par exemple je selectionne une touche et je ne veut pas la selectionner à nouveau pendant n minutes. L'idéal est d'avoir une varible avec l'heure d'activation et de comparer ensuite. Je ne vois pas comment la mettre en globale.

Merci d'avance
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: switch ou quelque chose comme ca

Post by Jmgr »

Dans ce cas je te conseillerais d'écrire puis de lire la variable depuis un fichier texte.
"My software never has bugs. It just develops random features."
Post Reply