3 Replies Latest reply: Jul 15, 2014 9:23 PM by Bruno Souza RSS

    Eviter les chemins absolus dans SCRIPT

      Bonjour,

       

      Je cherche m'affranchir de l’utilisation de chemin absolue

      Quand je déplace le répertoire ou contient l'application (par exemple, vers un répertoire utilisateur ou un autre disque dur), le programme ne trouver plus les fichiers liés ni exécuter le script.

       

      FOR Each Directory IN DirList('..\PROJET1\Sources\20*') // Pour chaque dossier commençant par 20...ON va effectuer la boucle 
      Let folder='$(Directory)\*';
      FOR Each Directory IN DirList('$(folder)')
      Let folder2='$(Directory)\*';
           FOR Each File IN FileList('$(folder2)')
      LET AnneeTravail = Left(Right('$(folder)',8),4);
      LET MoisTravail = Right(Left('$(folder)',57),2);

      Ainsi sur cette base j'utilise des fonctions RIGHT() et LELFT() pour récupérer la donnée que je souhaite.

      Exemple :

      LEFT(Mid('$(folder2)',INDEX('$(folder2)', '2')+7),INDEX(Mid('$(folder2)',INDEX('$(folder2)', '2')+7),'\')-1) as Ville

      Il y aura un moyen de résoudre mon problème?

       

      Merci d'avance

       

        • Re: Eviter les chemins absolus dans SCRIPT

          Bonjour,

           

          Pourrais-tu communiquer sur la hierarchie des repertoires car je ne sais pas trop comment tu recuperes le nom d'une ville.

           

          P.S : tu n'utilises pas des chemins absolus mais relatifs (../)

            • Re: Eviter les chemins absolus dans SCRIPT

              Oui vous avez raison chemin relatif, en fait je veux juste récupérer le nom de la ville de façon dynamique.

              En fait j'ai l’architecture suivante : sur le bureau

              Projet PSR -> PSR -> Sources->

                                                                201402(Ou il ya les villes)

                                                                201403 etc...

                                                                           Marseille(ou il ya mes fichiers a traiter)

                                                                             Paris

               

              j'ai changé mon code :

              FOR Each Directory in DirList('..\PSR\Sources\20*') // Pour chaque dossier commençant par 20...on va effectuer la boucle

              LET AnneeMoisTravail = Right('$(Directory)',6);

              LET AnneeTravail = Left('$(AnneeMoisTravail)',4);

              LET MoisTravail = Right('$(AnneeMoisTravail)',2);

              LET v_chemin = Right('$(Directory)',15);

              LET folder='$(Directory)\*';

              FOR Each Directory in DirList('$(folder)')

              Let folder2='$(Directory)\*';

                  FOR Each File in FileList('$(folder2)')

               

              j'ai mis une variable "v_chemin" qui contient "\Sources\201402(AnnéeMois)"

              je voulais déterminer la position de ma chaine de caractère contenu dans "v_chemin" depuis

              le C:\Users\NomUsers\Desktop\Projet PSR\PSR

              puis prendre tous ce qu'il vient après, ainsi prendre mon nom de ville qui est compris entre les deux '\' 

              Exemple :

              C:\Users\NomUsers\Desktop\Projet PSR\PSR\Sources\201402\Marseille\

               

              Avant j'avais ça :

              left(Mid('$(folder2)',index('$(folder2)', '2')+7),index(Mid('$(folder2)',index('$(folder2)', '2')+7),'\')-1) as Ville

              Ainsi dans ma fonction MID() je lui dis de commencera partir du chiffre 2 mais si un jour j'ai chiffre 2 avant mon AnnéeMois ça ne marchera plus

               

              Je ne sais pas si j'arrive a me faire comprendre?

              Merci encoe de votre aide