Lecture dans un tableau puis réécriture ailleur

Vous voulez de l'aide ? Postez ici :)
Post Reply
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Bonjour,

J'utilise votre logiciel depuis plusieurs mois, et avant tout bravo et merci.

Mon problème c'est que je ne suis pas un programmeur née, mes seul connaissances acquises sont celle que j'ai apprise par le biais de la toile.

Votre logiciel me sert a répéter les même action chaque jour sur un jeu. J'ai donc fais une suite d'action qui:
ouvre un fichier texte (sur le bureau)
Copie un suite de chiffre (pour cela je clique avec mon curseur je fais un mouvement je relâche puis utilise la combinaison de touche CTRL+c)
et ensuite la réinsert la ou je veux avec ctrl+v

et ça entre 100 et 150 fois par jour.

Ce programme et génial car même pour un débutant comme moi, sa tourne et plutôt bien, mais en cas de modification je passe des heures et le programme et long car beaucoup trop d'action pour finalement pas grand chose ( plus de 1700 ligne)

Donc je venais demander s'il était possible de faire un tableau avec A,B,C ..... en colonne et 1,2,3,4....... en ligne, de le remplir, et d’intégrer les variable qui se nomme [A:2] [B:4]..... et si vous pouviez me donner quelques tuyaux. Ce type de tableau me faciliterai grandement la tâche en cas de modification de donnée de base.

Voila, je vous remercie d'avance.
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Je vois que mon post ne fait pas l'enthousiasme

J'ai fais des recherches et je voulais savoir, J'ai retranscris mes données sur une feuille excel .xlsx sous forme de 3 colonnes et 47 lignes, si j'enregistre mon dossier excel au format xml, ou html, est ce que via Actionaz je peut venir pioché mes donnée?

Apparemment c'est plus facile de faire ainsi que de pioché dans une base de donnée type Acces.

merci
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lecture dans un tableau puis réécriture ailleur

Post by Jmgr »

Salut,

Alors oui, ce forum n'est pas beaucoup fréquenté et je suis moi-même en vacances en ce moment, ça explique le fait que tu n'aie pas encore eu de réponse.

Ce que tu peux faire c'est exporter tes données dans un format texte, CSV par exemple. Ça sera plus simple à lire avec Actionaz.
Un exemple :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.6.1" scriptVersion="1.0.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
        <action name="ActionReadTextFile" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionReadTextFile" comment="Lit le contenu du fichier CSV">
            <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="firstline">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="mode">
                <subParameter name="value" code="0">full</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">texteBrut</subParameter>
            </parameter>
            <parameter name="file">
                <subParameter name="value" code="0">monfichier.csv</subParameter>
            </parameter>
            <parameter name="lastline">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
        </action>
        <action name="ActionCode">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">var lignes = texteBrut.match(/[^\r\n]+/g);
var tableau = [];
for(var i = 0; i < lignes.length; ++i)
	tableau[i] = lignes[i].split(";");</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">$tableau[1][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>
    </script>
</scriptfile>
monfichier.csv contient :

Code: Select all

valeur1;valeur2
valeur3;valeur4
Après tu peux insérer le contenu où tu veux avec $tableau[ligne][colonne]. Attention ça démarre à 0.
"My software never has bugs. It just develops random features."
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Merci de ta réponse

Le fichier et au format csv, j'ai donc

Code: Select all

valeur1;valeur2;valeur3
valeur4;valeur5;valeur6
valeur7...........
Par contre je ne sais pas quoi faire de ton code, je pense que c'est celui la qui va dire a actionaz ou trouve la valeur $tableau[x][y]
J'ai essayer de le mettre a divers endroit mais sans succès


Je suis sous Windows 7 64 bit,

En te remerciant, et bonne vacance ;)



EDIT: J'avais copier ton code dans un fichier TXT puis modifier l’extension en ascr, mais sa va largement mieux en l’important directement depuis actionaz :mrgreen:

EDIT 2: T'es un chef! Fini les heures de recherche juste pour changer une valeur! Je pense que la seul obligation c'est que l'action "lire le fichier texte" et "code" soit lu une fois au début du programme? En tous cas je te remercie encore. Bonne vacance.
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Par contre j'ai fait une recherche d'image, je mémorise donc la position de l'image MemPos, je veux ensuite cliquer avec un décalage de 30:20 de cette position.

Quand dans mon action "clique" je fait appel a $MemPos il me dit que se n'est pas une position valide....

Une solution?
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lecture dans un tableau puis réécriture ailleur

Post by Jmgr »

Peux-tu poster le contenu du script ? Ça sera plus simple je crois.
"My software never has bugs. It just develops random features."
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.6.1" scriptVersion="1.0.0" os="Windows"/>
    <actions>
        <action name="ActionFindImage" version="1.0.0"/>
        <action name="ActionClick" version="1.0.0"/>
        <action name="ActionPause" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionPause">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="duration">
                <subParameter name="value" code="1">Algorithms.randomInteger(3000,6000);</subParameter>
            </parameter>
            <parameter name="unit">
                <subParameter name="value" code="0">milliseconds</subParameter>
            </parameter>
        </action>
        <action name="ActionFindImage" comment="Premiere image" pauseBefore="500" pauseAfter="500">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="2" line="001"/>
            <exception id="32" action="2" line="001"/>
            <exception id="33" action="2" line="001"/>
            <parameter name="searchExpansion">
                <subParameter name="value" code="0">15</subParameter>
            </parameter>
            <parameter name="downPyramidCount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="confidenceMinimum">
                <subParameter name="value" code="0">70</subParameter>
            </parameter>
            <parameter name="windowName">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="position">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="imageToFind">
                <subParameter name="value" code="0">C:/Users/Tom & Noélie/Documents/Actionaz File/attaque en cour.png</subParameter>
            </parameter>
            <parameter name="imageToSearchIn">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="source">
                <subParameter name="value" code="0">screenshot</subParameter>
            </parameter>
            <parameter name="maximumMatches">
                <subParameter name="value" code="0">1000</subParameter>
            </parameter>
            <parameter name="windowRelativePosition">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
        </action>
        <action name="ActionPause">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="duration">
                <subParameter name="value" code="1">Algorithms.randomInteger(3000,6000);</subParameter>
            </parameter>
            <parameter name="unit">
                <subParameter name="value" code="0">milliseconds</subParameter>
            </parameter>
        </action>
        <action name="ActionFindImage" comment="Deuxieme image" pauseBefore="1400" pauseAfter="1400">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="2" line="3"/>
            <exception id="32" action="2" line="3"/>
            <exception id="33" action="2" line="3"/>
            <parameter name="searchExpansion">
                <subParameter name="value" code="0">15</subParameter>
            </parameter>
            <parameter name="windowName">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="confidenceMinimum">
                <subParameter name="value" code="0">70</subParameter>
            </parameter>
            <parameter name="downPyramidCount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="imageToFind">
                <subParameter name="value" code="0">C:/Users/Tom & Noélie/Documents/Actionaz File/attaque planete.png</subParameter>
            </parameter>
            <parameter name="position">
                <subParameter name="value" code="0">MemPos</subParameter>
            </parameter>
            <parameter name="imageToSearchIn">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="source">
                <subParameter name="value" code="0">screenshot</subParameter>
            </parameter>
            <parameter name="maximumMatches">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="windowRelativePosition">
                <subParameter name="value" code="0">false</subParameter>
            </parameter>
        </action>
        <action name="ActionPause">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="duration">
                <subParameter name="value" code="1">Algorithms.randomInteger(3000,6000);</subParameter>
            </parameter>
            <parameter name="unit">
                <subParameter name="value" code="0">milliseconds</subParameter>
            </parameter>
        </action>
        <action name="ActionClick" comment="clic un peut a droite de la deuxieme image" pauseAfter="1900">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <exception id="33" action="0" line=""/>
            <parameter name="button">
                <subParameter name="value" code="0">left</subParameter>
            </parameter>
            <parameter name="action">
                <subParameter name="value" code="0">pressRelease</subParameter>
            </parameter>
            <parameter name="amount">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="position">
                <subParameter name="value" code="1">$MemPos</subParameter>
            </parameter>
            <parameter name="positionOffset">
                <subParameter name="value" code="0">36:20</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
Voila, toujours se problème de position de clic que j'arrive pas a mémoriser, puis mettre ne position valide.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lecture dans un tableau puis réécriture ailleur

Post by Jmgr »

En fait quand tu veux insérer une variable dans un champ, tu as deux possibilités, suivant si le champ est en mode "code" ou pas.
En mode code, avec le triangle rouge, c'est du Javascript, c'est à dire que tu peux directment écrire le nom de la variable. Dans ton cas: MemPos
En mode texte, sans triangle rouge, c'est du texte, dans ce cas il faut écrire $MemPos
Comme dans le cas d'une position tu ne peux pas utiliser le mode texte vu qu'il attend des valeurs directes il te faut mettre le champ en mode code et écrire MemPos
"My software never has bugs. It just develops random features."
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Merci, je vais essayer sa alors, je te tiens au courant.

EDIT: J'ai mis donc le mode code partout, et écris MemPos partout (dans la sortie de variable de recherche d'image et dans la position du clic) mais il me dit sa:

Uncaught exception at <anonymous script, id=129427328>:1: ReferenceError: Can't find variable: Mempos
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Lecture dans un tableau puis réécriture ailleur

Post by Jmgr »

Tu ne peux pas utiliser une variable avant qu'elle ne soit crée. Dans ton cas c'est dans ton action Trouver Image.
"My software never has bugs. It just develops random features."
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

C'est a dire, je comprend pas créer ma variable dans trouver image? :/

désolé :?

EDIT: En faite çà a l'air plus d'un problème de recherche d'image plutôt que de variable. Mon image à chercher et assez petite 20pix X 20pix, est ce que sa peut poser problème? Avec une autre image, sa marche très bien. Quand je remplace par la petite image, toujours pareil, variable introuvable. Est ce un bug? Ou le problème si situe entre le fauteuil et le clavier?

L'image est en PNG, 20*20 pixels, pris d'un print écran et modifier via paint net.

Et sinon le reste tourne bien! J'optimise mon script doucement. Encore bravo pour cette trouvaille qu'est actionaz
Metanem
Posts: 14
Joined: 19 Mar 2013, 09:35

Re: Lecture dans un tableau puis réécriture ailleur

Post by Metanem »

Trouver le problème,

Il y avais un "aller à la ligne" qui faisais sauter l'étape "trouver l'image"!
La variable n'était donc pas trouver. C'est en refaisant les actions une par une que j'ai trouver cette erreur. J'ai d'ailleurs poster une idée sur cette "aller à la ligne" qui ma rendu fou plus d'une fois.
Post Reply