Page 1 of 2
[RÉSOLU] Lire fichier texte
Posted: 29 Dec 2011, 15:58
by davidyossef
Bonjour,
j'ai un fichier texte semblable à cela
Code: Select all
00001
00002
00003
00004
00005
etc...
et j'aimerais demander à Actionaz de prendre le premier "00001" afin de l'écrire dans une page web.
Puis après quelques lignes de code, prendre le "00002" afin de l'écrire toujours dans la même page web.
Je pars du principe que c'est faisable, la grande question étant "Comment?".
Merci d'avance pour votre aide précieuse.
Re: Lire fichier texte
Posted: 29 Dec 2011, 21:46
by marto31
Je crois pas que c'est possible de lire ligne par ligne dans un fichier texte, tu ne peu recuperer que tous le contenu.
En revanche si c'est les memes nombres que tu à mit dans ton exemple tu peux te servire d'une variable
par exemple:
$nombre = 00001
...
$nombre = $nombre + 1
...
$nombre = $nombre + 1
Re: Lire fichier texte
Posted: 30 Dec 2011, 07:45
by davidyossef
Je suis pourtant presque certain que c'est possible de lire dans un fichier ligne après ligne.
Et pour répondre à ta question, j'ai une liste de numéros complètement aléatoires.
Re: Lire fichier texte
Posted: 30 Dec 2011, 13:07
by marto31
En effet tu a raison,
http://wiki.actionaz.org/doku.php?id=fr ... adtextfile.
Après si tu a seulement besoin d'avoir un chiffre aléatoire à chaque fois tu peux utiliser une fonction qui te donne un chiffre aléatoire dans une action "code" comme par exemple :
Code: Select all
var nb = Math.floor(Math.random() * 12);
Re: Lire fichier texte
Posted: 30 Dec 2011, 18:14
by Jmgr
Voila un exemple :
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
<settings program="actionaz" version="3.1.1" scriptVersion="1.0.0" os="GNU/Linux"/>
<actions>
<action name="ActionCode" version="1.0.0"/>
<action name="ActionReadTextFile" version="1.0.0"/>
<action name="ActionGoto" version="1.0.0"/>
<action name="ActionMessageBox" version="1.0.0"/>
</actions>
<parameters/>
<script pauseBefore="0" pauseAfter="0">
<action name="ActionCode" comment="line = 1">
<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 line = 1</subParameter>
</parameter>
</action>
<action name="ActionReadTextFile" label="read" comment="read the line">
<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="1">line</subParameter>
</parameter>
<parameter name="mode">
<subParameter name="value" code="0">selection</subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">data</subParameter>
</parameter>
<parameter name="file">
<subParameter name="value" code="0">file.txt</subParameter>
</parameter>
<parameter name="lastline">
<subParameter name="value" code="1">line</subParameter>
</parameter>
</action>
<action name="ActionMessageBox" comment="output data">
<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">Data: $data</subParameter>
</parameter>
<parameter name="title">
<subParameter name="value" code="0"></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="ActionCode" comment="line = line + 1">
<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">line++</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">read</subParameter>
</parameter>
</action>
</script>
</scriptfile>
Attention : il ne vérifie pas si la fin du fichier est atteinte, mais tu peux par exemple tester si la variable data est vide pour cela.
Re: Lire fichier texte
Posted: 31 Dec 2011, 22:29
by davidyossef
Merci Marto31 et Jmgr pour vos réponses.
Une fois de plus, Jmgr me sauve la mise. Va falloir que je pense à sortir la CB pour lui faire un ptit virement à l'occasion...
Je peaufine maintenant le script et je bloque sur le retour à la ligne dans un fichier de sortie.
Je m'explique: j'ai ajouté "Écrire fichier texte". Dans le premier onglet "Standard", "Paramètres d'entrée" je dois configurer le "Fichier" et le "Texte". J'ai donc sélectionné le bon fichier et dans texte j'ai écrit $data.
Mais pour que tout fonctionne dans le meilleur des mondes, il faudrait que j'arrive à écrire $data + "retour à la ligne" afin que les prochaines entrées "$data" soient à la ligne et non pas à la suite.
Merci beaucoup pour votre aide précieuse.
Re: Lire fichier texte
Posted: 01 Jan 2012, 00:18
by Jmgr
Le retour à la ligne c'est \n.
Par exemple $data + "\n"
Re: Lire fichier texte
Posted: 01 Jan 2012, 01:43
by davidyossef
J'ai essayé avec
mais aucune de ces 4 tentatives n'a été fructueuse.
Re: Lire fichier texte
Posted: 01 Jan 2012, 03:10
by davidyossef
C'est bon, ça fonctionne.
Il fallait activer le petit triangle rouge en haut à gauche et entrer ceci :
Merci à tous!
Attention : il ne vérifie pas si la fin du fichier est atteinte, mais tu peux par exemple tester si la variable data est vide pour cela.
Jmgr, peux-tu me dire comment stopper le script quand la fin du fichier d'entrée a été atteinte?

Re: Lire fichier texte
Posted: 01 Jan 2012, 18:28
by Jmgr
Au temps pour moi, mon exemple n'était pas très clair.
En fait tu as deux solutions, soit en mode texte (sans le triangle rouge) tu peux ouvrir l'éditeur de texte multilignes avec le bouton à gauche du triangle et sauter une ligne.
Ou, comme tu l'as fait, en mode code (avec le triangle rouge) :
Code: Select all
data + "\n" + "mon texte à la ligne"
Jmgr, peux-tu me dire comment stopper le script quand la fin du fichier d'entrée a été atteinte?
Voila :
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
<settings program="actionaz" version="3.1.1" scriptVersion="1.0.0" os="GNU/Linux"/>
<actions>
<action name="ActionCode" version="1.0.0"/>
<action name="ActionReadTextFile" version="1.0.0"/>
<action name="ActionGoto" version="1.0.0"/>
<action name="ActionStop" version="1.0.0"/>
<action name="ActionVariableCondition" version="1.0.0"/>
<action name="ActionMessageBox" version="1.0.0"/>
</actions>
<parameters/>
<script pauseBefore="0" pauseAfter="0">
<action name="ActionCode" comment="line = 1">
<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 line = 1</subParameter>
</parameter>
</action>
<action name="ActionReadTextFile" label="read" comment="read the line">
<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="1">line</subParameter>
</parameter>
<parameter name="mode">
<subParameter name="value" code="0">selection</subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">data</subParameter>
</parameter>
<parameter name="file">
<subParameter name="value" code="0">file.txt</subParameter>
</parameter>
<parameter name="lastline">
<subParameter name="value" code="1">line</subParameter>
</parameter>
</action>
<action name="ActionVariableCondition">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<parameter name="ifEqual">
<subParameter name="line" code="0">stop</subParameter>
<subParameter name="action" code="0">goto</subParameter>
</parameter>
<parameter name="comparison">
<subParameter name="value" code="0">equal</subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">data</subParameter>
</parameter>
<parameter name="value">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="ifDifferent">
<subParameter name="line" code="0"></subParameter>
<subParameter name="action" code="0">do_nothing</subParameter>
</parameter>
</action>
<action name="ActionMessageBox" comment="output data">
<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">Data: $data</subParameter>
</parameter>
<parameter name="title">
<subParameter name="value" code="0"></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="ActionCode" comment="line = line + 1">
<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">line++</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">read</subParameter>
</parameter>
</action>
<action name="ActionStop" label="stop">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
</action>
</script>
</scriptfile>
Re: Lire fichier texte
Posted: 02 Jan 2012, 02:08
by davidyossef
T'assures Jmgr!
Re: Lire fichier texte
Posted: 05 Jan 2012, 23:36
by davidyossef
Bonsoir à tous.
Une info et une question ce soir:

- la condition de variable permettant de stopper le script fait planter Actionaz à chaque fin de lecture du fichier d'entrée. Bug? Mais bon, ce n'est pas très grave.

- quelqu'un sait-il comment exploiter désormais deux informations par ligne dans le fichier d'entrée, exemple:
Code: Select all
data1 data1bis
data2 data2bis
data3 data3bis
etc...
Pour être encore plus clair:
1) clic dans la case "à remplir" du navigateur web
2) copie de "data1" du fichier d'entrée, collage de "data1" dans la case "à remplir" puis pression touche "Entrée"
3a) si réponse négative pour "data1" => retour au début du script pour tester "data2"
3b) si réponse positive pour "data1" => copie de "data1bis" du fichier d'entrée, collage de "data1bis" dans la case "à remplir" puis pression touche "Entrée"
4a) si réponse négative pour "data1bis" => retour au début du script pour tester "data2"
4b) si réponse positive pour "data1bis" => copie de la ligne complète ("data1 data1bis") et collage dans fichier de sortie puis retour au début du script pour tester "data2"
En somme, dans mon fichier de sortie, il ne doit y avoir que les lignes dont les deux numéros ont obtenu des réponses positives aux tests.
Jmgr nous a montré comment tester un fichier contenant un numéro par ligne, comment faire avec deux numéros par ligne?
Par avance, un grand merci pour vos réponses.
Re: Lire fichier texte
Posted: 06 Jan 2012, 19:30
by Jmgr
- la condition de variable permettant de stopper le script fait planter Actionaz à chaque fin de lecture du fichier d'entrée. Bug? Mais bon, ce n'est pas très grave.
Bien vu, c'est un bug. Je corrige ça pour la prochaine version. (un crash ce n'est jamais très agréable)
Pour ta question je te conseilles d'utiliser la fonction Javascript split qui permet de couper une chaîne de caractères en deux à partir d'un séparateur :
Code: Select all
var s = "data1 data1bis".split(' ');
var first = s[0];
var second = s[1];
Re: Lire fichier texte
Posted: 07 Jan 2012, 22:43
by davidyossef
Merci Jmgr pour ta réponse.
Dans son message du 01-01-2012 à 19:28:31, Jmgr nous donne un script qui fonctionne à merveille lorsque le fichier d'entrée ne comporte qu'une seule donnée par ligne.
Quelqu'un saurait-il adapter son code à deux données par ligne désormais?
Merci beaucoup à tous par anticipation.
Re: Lire fichier texte
Posted: 07 Jan 2012, 23:08
by Jmgr
Voila l'exemple modifié qui utilise la fonction split() du Javascript :
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
<settings program="actionaz" version="3.1.1" scriptVersion="1.0.0" os="GNU/Linux"/>
<actions>
<action name="ActionGoto" version="1.0.0"/>
<action name="ActionReadTextFile" version="1.0.0"/>
<action name="ActionMessageBox" version="1.0.0"/>
<action name="ActionCode" version="1.0.0"/>
<action name="ActionVariableCondition" version="1.0.0"/>
<action name="ActionStop" version="1.0.0"/>
</actions>
<parameters/>
<script pauseBefore="0" pauseAfter="0">
<action name="ActionCode" comment="line = 1">
<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 line = 1</subParameter>
</parameter>
</action>
<action name="ActionReadTextFile" label="read" comment="read the line">
<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="1">line</subParameter>
</parameter>
<parameter name="mode">
<subParameter name="value" code="0">selection</subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">data</subParameter>
</parameter>
<parameter name="file">
<subParameter name="value" code="0">file.txt</subParameter>
</parameter>
<parameter name="lastline">
<subParameter name="value" code="1">line</subParameter>
</parameter>
</action>
<action name="ActionCode" comment="split the line">
<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 s = String(data).split(' ');
var first = s[0];
var second = s[1];</subParameter>
</parameter>
</action>
<action name="ActionVariableCondition">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<parameter name="ifEqual">
<subParameter name="line" code="0">stop</subParameter>
<subParameter name="action" code="0">goto</subParameter>
</parameter>
<parameter name="comparison">
<subParameter name="value" code="0">equal</subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">first</subParameter>
</parameter>
<parameter name="value">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="ifDifferent">
<subParameter name="line" code="0"></subParameter>
<subParameter name="action" code="0">do_nothing</subParameter>
</parameter>
</action>
<action name="ActionMessageBox" comment="output data">
<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">First: $first
Second: $second</subParameter>
</parameter>
<parameter name="title">
<subParameter name="value" code="0"></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="ActionCode" comment="line = line + 1">
<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">line++</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">read</subParameter>
</parameter>
</action>
<action name="ActionStop" label="stop">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
</action>
</script>
</scriptfile>