Page 1 of 1

switch ou quelque chose comme ca

Posted: 14 Oct 2012, 22:57
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

Re: switch ou quelque chose comme ca

Posted: 15 Oct 2012, 19:49
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>

Re: switch ou quelque chose comme ca

Posted: 15 Oct 2012, 20:48
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

Re: switch ou quelque chose comme ca

Posted: 16 Oct 2012, 08:44
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

Re: switch ou quelque chose comme ca

Posted: 21 Oct 2012, 22:33
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

Re: switch ou quelque chose comme ca

Posted: 22 Oct 2012, 07:41
by Jmgr
Dans ce cas je te conseillerais d'écrire puis de lire la variable depuis un fichier texte.