<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actiona" version="3.10.0" scriptVersion="1.1.0" os="Windows"/>
    <actions>
        <action name="ActionCode" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionCode" comment=" paramètres ">
            <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">
rep_in= &quot;C:/temp/ZZ/rep_in&quot;

rep_out= &quot;C:/temp/ZZ/rep_out&quot;

ligne_en_tete = &quot;Pays;Zone;Commune&quot;;
</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="vérifications diverses">
            <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 Q = new QFileInfo(rep_in)
if (! Q.isDir()) {	
	Console.printError( &quot;le répertoire '&quot; + rep_in  + &quot;'  n existe pas&quot; )      
       Execution.stop();
}

var Q = new QFileInfo(rep_out)
if (! Q.isDir()) {	
	Console.printError( &quot;le répertoire '&quot; + rep_out  + &quot;'  n existe pas&quot; )      
       Execution.stop();
}

// = = = = = 
// rep_in et rep_out doivent etre différents
// = = = = = 
if (rep_in == rep_out) {	
	Console.printError( &quot;les répertoires 'rep_in' et 'rep_out' doivent etre différents&quot; )      
       Execution.stop();
}




// = = = = = 
// pas de  &quot; &quot; dans le nom des repertoires
// = = = = = 
if ( rep_in.indexOf(&quot; &quot;) &gt;=0) {	
        tt = &quot;Pb : Pas de ' '  dans le nom des repertoires rep_in=  &quot; + rep_in  ;	
	 Console.printWarning(tt)         
        Execution.stop();
}; // fin 
if ( rep_out.indexOf(&quot; &quot;) &gt;=0) {	
        tt = &quot;Pb : Pas de ' '  dans le nom des repertoires rep_outn=  &quot; + rep_out ;	
	 Console.printWarning(tt)         
        Execution.stop();
}; // fin 

//===== 



// = = = = = 
//recupérer le repertoire courant  
// = = = = = 
t1=	Execution.filename
pos = t1.lastIndexOf(&quot;/&quot;)
if (pos &lt;=0){pos = t1.lastIndexOf(&quot;\\&quot;)} 
rep_courant= t1.substring(0,pos)
//===== 


// = = = = = 
// NE PAS MODIFIER

// == &gt;  Comme on va utiliser une cmd DOS, il faut remplacer les &quot;/&quot; par des &quot;\&quot;
// = = = = = 
rep_courant_DOS = look_DOS(rep_courant)
rep_in_DOS = look_DOS(rep_in)

date_debut = new Date(); 

// = = = = = = = = = =
// FIN SCRIPT
// = = = = = = = = = =

// = = = = = = = = = =
// début fonctions
// = = = = = = = = = =



function  look_DOS(rep) {
rep_DOS =&quot;&quot;; 
for(i=0;i&lt;rep.length;i++){     
    if (rep.substr(i,1) == &quot;/&quot;) {
        rep_DOS += &quot;\\&quot;;        
    }
    else  {
         rep_DOS += rep.substr(i,1);
    }
} // FIN FOR
return  rep_DOS;	
} // Fin function 

</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment=" Liste de tous les fichiers sous le répertoire 'rep_in'">
            <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">//================================================
//Recuperer liste des fichiers dans  &quot;liste.txt&quot;
//================================================
var fich_out = new File();
fichier_bat=  rep_courant_DOS + &quot;\\cast.bat&quot; 

fi_liste  =   rep_courant_DOS + &quot;/liste.txt&quot; 
fi_liste_DOS =   rep_courant_DOS + &quot;\\liste.txt&quot; 

fich_out.open(fichier_bat,File.WriteOnly | File.Text);
	tt = &quot;dir /B   /A-D  &quot; + rep_in_DOS  +  &quot; &gt; &quot; + fi_liste_DOS + &quot;\n&quot;
	fich_out.writeText(tt);
fich_out.close();

pgm = fichier_bat ;
var process_BAT = new Process({
	workingDirectory: rep_courant,
        ProcessChannelMode:1,
       OpenMode:6	
});
process_BAT.start(pgm);
process_BAT.waitForFinished();
//================================================</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Charger cette liste dans un tableau" color="#e5e5e5">
            <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">
// = =  = = = = = =  = = =  =
fi_liste  =   rep_courant + &quot;/liste.txt&quot;

var fich_in = new File();
fich_in.open(fi_liste,  File.ReadOnly| File.Text);
au_km = fich_in.readText(4);
fich_in.close();

fin_ligne =String.fromCharCode(10);
t_ligne_toutes =au_km.split(fin_ligne); 
// = =  = = = = = =  = = =  =


// = =  = = = = = =  = = =  =
nb_out=0;
t_ligne = [];
for (i=0;i&lt; t_ligne_toutes.length;i++){     
	 if ( t_ligne_toutes[i] ==&quot;&quot; ){ continue;}

        t_ligne[nb_out] = t_ligne_toutes[i]   ;
	nb_out++;
} // FIN : for
// = =  = = = = = =  = = =  =
 
</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Insertion eventuelle ligne en tete ">
            <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">


for (i=0;i&lt; t_ligne.length;i++){  

var fichier_in = new File();
fichier_in_= rep_in + &quot;/&quot; +  t_ligne[i];
fichier_in.open(fichier_in_,File.ReadOnly | File.Text);

var fichier_out = new File();
fichier_out_= rep_out + &quot;/&quot; +  t_ligne[i];
fichier_out.open(fichier_out_,File.WriteOnly | File.Text);

l_fichier_in= fichier_in.readText();
fin_ligne =String.fromCharCode(10);
t_fichier_in =l_fichier_in.split(fin_ligne);


fichier_out.writeText(ligne_en_tete + &quot;\n&quot; ); 

for (ii=0;ii&lt;t_fichier_in.length;ii++)
{
fichier_out.writeText(t_fichier_in[ii] + &quot;\n&quot; ); 
}

 fichier_in.close()
 fichier_out.close()
}
</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="         FIN">
            <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">

File.remove(fichier_bat, { noConfirmDialog: true });
File.remove(fi_liste, { noConfirmDialog: true });

//= = = = = = = =
Console.print(&quot;-------&quot;);
HH=  date_debut.getHours(); 
MN= date_debut.getMinutes();  
SS=  date_debut.getSeconds(); 
Console.print (&quot;Time début : &quot; +  HH + &quot;-&quot; + MN +&quot;-&quot; + SS );
date_fin  = new Date(); 
HH=  date_fin.getHours(); 
MN= date_fin.getMinutes();  
SS=  date_fin.getSeconds(); 
Console.print (&quot;Time fin : &quot; +  HH + &quot;-&quot; + MN +&quot;-&quot; + SS );
Console.print(&quot;-------&quot;);
Console.print (&quot;Voir dans :  &quot;  + rep_out)
//= = = = = = = =

Execution.stop()</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
