Arret à la fin d'un texte

Vous voulez de l'aide ? Postez ici :)
Post Reply
zetaz
Posts: 3
Joined: 07 Sep 2013, 15:02

Arret à la fin d'un texte

Post by zetaz »

Bonjour
J'ai un fichier de log contenant une IP par ligne.
J'ai fait un script qui récupère la première ligne du texte ( variable IP) , Je sélectionne la ligne à lire en utilisant la même variable pour la ligne de début et de fin ( variable LN)
J'incrémente la variable ligne, exécute un script pour traiter mon ip, puis je boucle.
tout va bien sauf que la boucle ne s'arrête pas en fin de texte . Je pensais que lire une ligne qui n'existe pas dans le fichier arrêterai ce dernier.
comment faire ?

Merci

[petite edition]
J'ai trouvé une méthode de contournement "provisoire" à mon problème. En vérifiant que la variable n'est pas égale a ( rien) du coup dans mon fichier de log, ça marche. Par contre dans un fichier qui aurai des lignes vides parci parla, ça ne marcherai pas.
la question reste donc pausée.

Une solution serait de pouvoir avoir une routine qui compte le nombre de ligne d'un fichier. Ce nombre serait mis en variable et inclus dans la boucle..... ( mais ça fait lire le fichier 2 fois, et sur un fichier long, ça prend du temps)

Contenu du fichier "IP.txt"

Code: Select all

7.2.5.4
80.12.25.3
90.245.3.4

Actionaz

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.7.0" scriptVersion="1.0.0" os="Windows"/>
    <actions>
        <action name="ActionStop" version="1.0.0"/>
        <action name="ActionLoop" version="1.0.0"/>
        <action name="ActionVariable" version="1.0.0"/>
        <action name="ActionReadTextFile" version="1.0.0"/>
        <action name="ActionCommand" version="1.0.0"/>
        <action name="ActionWriteTextFile" version="1.0.0"/>
        <action name="ActionConsole" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionVariable" comment="N° de ligne">
            <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">LN</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">integer</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
            <parameter name="positionValue">
                <subParameter name="value" code="0">:</subParameter>
            </parameter>
        </action>
        <action name="ActionReadTextFile">
            <exception id="0" action="2" line="008"/>
            <exception id="1" action="2" line="008"/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="2" line="008"/>
            <parameter name="firstline">
                <subParameter name="value" code="1">LN</subParameter>
            </parameter>
            <parameter name="mode">
                <subParameter name="value" code="0">selection</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">IP</subParameter>
            </parameter>
            <parameter name="file">
                <subParameter name="value" code="0">E:/script/ip.txt</subParameter>
            </parameter>
            <parameter name="lastline">
                <subParameter name="value" code="1">LN</subParameter>
            </parameter>
        </action>
        <action name="ActionConsole">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="output">
                <subParameter name="value" code="0">information</subParameter>
            </parameter>
            <parameter name="text">
                <subParameter name="value" code="0">Ligne $LN  IP  $IP</subParameter>
            </parameter>
        </action>
        <action name="ActionVariable">
            <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">LN</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">integer</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="1">LN +1</subParameter>
            </parameter>
            <parameter name="positionValue">
                <subParameter name="value" code="0">:</subParameter>
            </parameter>
        </action>
        <action name="ActionCommand">
            <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="output">
                <subParameter name="value" code="0">whois</subParameter>
            </parameter>
            <parameter name="exitStatus">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="errorOutput">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="processId">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="parameters">
                <subParameter name="value" code="0">$IP</subParameter>
            </parameter>
            <parameter name="exitCode">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="command">
                <subParameter name="value" code="0">E:/script/whosip/whosip.exe</subParameter>
            </parameter>
            <parameter name="workingDirectory">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
        </action>
        <action name="ActionWriteTextFile">
            <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="mode">
                <subParameter name="value" code="0">append</subParameter>
            </parameter>
            <parameter name="file">
                <subParameter name="value" code="0">E:/script/result/whois.txt</subParameter>
            </parameter>
            <parameter name="text">
                <subParameter name="value" code="0">$whois
---------------
</subParameter>
            </parameter>
        </action>
        <action name="ActionLoop">
            <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">002</subParameter>
            </parameter>
            <parameter name="count">
                <subParameter name="value" code="0">4</subParameter>
            </parameter>
        </action>
        <action name="ActionStop">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
    </script>
</scriptfile>
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Arret à la fin d'un texte

Post by Jmgr »

Hm, c'est une bonne remarque. Avec l'action en elle-même une solution "simple" serait de lire le contenu du fichier en une seule fois et de compter le nombre de retours à la ligne. Par exemple :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.7.0" scriptVersion="1.0.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionReadTextFile" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionReadTextFile">
            <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">data</subParameter>
            </parameter>
            <parameter name="file">
                <subParameter name="value" code="0">fichier.txt</subParameter>
            </parameter>
            <parameter name="lastline">
                <subParameter name="value" code="0">1</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="1">"Le fichier contient " + (data.split("\n").length - 1) + " lignes" </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>
Note : En tous les cas je pense qu'il faudrait ajouter une exception ou arrêter l'action lorsque la fin du fichier est atteinte...
"My software never has bugs. It just develops random features."
Post Reply