Page 1 of 1
Lecture dans un tableau puis réécriture ailleur
Posted: 19 Mar 2013, 10:00
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.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 20 Mar 2013, 12:01
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
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 20 Mar 2013, 12:51
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 :
Après tu peux insérer le contenu où tu veux avec $tableau[ligne][colonne]. Attention ça démarre à 0.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 20 Mar 2013, 14:08
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
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.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 20 Mar 2013, 16:20
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?
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 21 Mar 2013, 15:18
by Jmgr
Peux-tu poster le contenu du script ? Ça sera plus simple je crois.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 21 Mar 2013, 19:15
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.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 21 Mar 2013, 19:28
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
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 21 Mar 2013, 19:44
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
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 22 Mar 2013, 00:59
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.
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 22 Mar 2013, 18:49
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
Re: Lecture dans un tableau puis réécriture ailleur
Posted: 23 Mar 2013, 13:22
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.