IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[file::find] probleme avec les arguments obtenus


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut [file::find] probleme avec les arguments obtenus
    bonjour a tous je suis tout nouveaux et c'est mon premier post j’espère respecter les réglés du forum bon j ai un problème avec mon code j utilise le module file::find pour avoir le chemin de n importe quelle fichier excel se trouvant dans une arborescence le code me retourne le chemin comme suit :
    c:\X/Y/Z.xls pourvu que je veux que le chemin soit de la forme classique c:\X\Y\Z.xls car je vais prendre les chemin de ce code pour ouvrir les fichier excel
    avec une autre fonction voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     #!/usr/bin/perl
        #use warnings;
        use strict;
        use File::Find;
        use Cwd;
        use Win32::OLE qw(in with);                              
    print 'entrer le lien : ';
    $a = <STDIN>;
    my $b = chomp($a);
    my $repertoire = "$a";  
    find( { wanted => \&process, }, $repertoire );
    my @fichier;
     my $fichier;
      my $i=0;
    sub process {
       if (( -f $File::Find::name) && ($File::Find::name =~ m/[a-z]*.xls$/) ) 
        {
             #my $i=0;
             foreach ($File::Find::name)
             {
             $fichier[$i]= $File::Find::name;
             $i++;
             }  
        }  
    }
    for ($i = 0;$i <3; $i++) {
    my $c = chomp($fichier[$i]);
    print"$fichier[$i]\n";
    }

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    merci mais votre lien ne marche pas deja est ce que dans ton lien on cherche dans toute l arboressence car moi j ai besoin de donner par exemple c:\ et le programe doit chercher dans tout le disque dur et trouver des fichier excel

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    votre lien a marché mais c est pas d une grande aide puisque moi je cherche a ouvrir tout dossier qu il y a partir d'un chemin et chercher les fichier qui ont l extention .xls mon code marche bien j ai qu un problem que j ai posé c est avec les slach

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Inspire toi de ce programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #!/usr/bin/perl
    use strict;
    use warnings;
    use File::Find;
    use File::Spec;
     
    use Cwd;
    use Win32::OLE qw(in with);
    my @fichiers;
    print 'entrer le lien : ';
    my $repertoire = <STDIN>;
    chomp $repertoire;
    find( { wanted => \&process, }, $repertoire );
     
    sub process {
      my $fichier = $File::Find::name;
     
      if ( ( -f $fichier ) && ( $fichier =~ m/[a-z]*.xlsx?/ ) ) {
        $fichier = File::Spec->catfile($fichier);
        push @fichiers, $fichier;
      }
    }
     
    foreach my $file (@fichiers) {
      print "- $file\n";
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 17
    Par défaut
    bonjour votre code m'est vraiment utile merci mais j'ai pas compris comment vous avez fais puisque je veux modifier le code pour avoir l les liens sous la forme c:\\perl\\y\\... car je veux rentrer ces liens comme argument pour une fonction Open('c:\\perl\\y\\... ') et merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec les arguments
    Par Pitou5464 dans le forum C
    Réponses: 6
    Dernier message: 06/11/2006, 16h16
  2. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo