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 :

Lire plusieurs fichier à la suite


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut Lire plusieurs fichier à la suite
    Bonjour,

    Je dispose de plusieurs fichier. Je dispose de mon code que j'aimerai effectuer sur tous les fichier en même temps. Ceci étant dit j'aimerai que mon code s'execute sur l'ensemble des fichiers.

    Je m'explique. Si par exemple j'ai "fichier.txt" qui dispose de 3 mots et que j'ai "fichier 2.txt" qui dispose de 5 mots et que mon code compte les nombres de mots, j'aimerai que mon code passe par les deux fichier pour me dire qu'il y a 8 mots dans l'ensemble de mes fichiers (et non dire 3 dans le premier et 5 dans le deuxieme).

    En fait j'aimerai qu il lise plusieurs fichiers exactement de la même facon que si ca n'était que un fichier.

    En esperant avoir été clair...

    Merci d'avance et à bientot!

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Bonjour.

    Eh bien c'est fort simple ton affaire et je te propose une solution rapide à mettre en place : tu places en tant que fonction toute la partie de ton code qui ouvre un fichier et compte les mots qu'il y trouve.

    C'est tout simple : la fonction reçoit comme argument le nom du fichier (ou bien le chemin d'accès au fichier + son nom si le fichier ne se trouve pas au même endroit que ton script) et elle te retourne un scalaire contenant le nombre de mots lus dans le fichier.

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    Bonjour Arioch,

    Mon code fais déjà cela.

    Ce que je veux c'est faire la même chose avec plusieurs fichiers mais comme si ca n'était qu un fichier (cf mon post précédent)

    Si je ne suis pas clair dans ma question n'hésitez pas à me le dire!

    A bientot!

  4. #4
    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
    bah ecoute, ce que je comprends, c'est que tu peux te faire une fonction ( procedure) qui comptabilise le nombre de mot dans un fichier. tu l'appliques sur chaque fichier et met la valeur dans une variable qui s'increment.
    Donc si fichier 1 => 3 mot, fichier 2 => 5 mot => bah c'est juste une question d'addition.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Citation Envoyé par ecthelion
    Bonjour Arioch,

    Mon code fais déjà cela.

    Ce que je veux c'est faire la même chose avec plusieurs fichiers mais comme si ca n'était qu un fichier (cf mon post précédent)

    Si je ne suis pas clair dans ma question n'hésitez pas à me le dire!

    A bientot!
    Tu seras quand même obligé d'ouvrir chacun des fichiers pour en compter les mots, autant donc fonctionnaliser tout ton bloc de code qui ouvre et lit un fichier pour en compter les mots.

    Montre nous ton code, qu'on te le fonctionnalise.

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 53
    Par défaut
    Laissez tomber l'exemple du nombre de mot. C'est pas du tout ce que je fais mais c'était un exemple pour vous expliquer le principe de ce que je veux faire.

    Mon code est deja dans une fonction et j'appelle deja cette fonction avec le chemin de mon fichier.

    Ce que je veux c appeler deux fichiers (ou plus) l'un apres l'autre comme si ils ces deux fichiers n'était qu un seul fichier.

    Je vais donner un autre exemple qui sera plus clair

    On a deux fichiers:


    Fichier1.txt

    "Bonjour Monsieur et Madame"

    Fichier2.txt

    "Bonjour Madame Machin"

    J'ai un code (encore un exemple pour expliquer!!) qui compte le nombre de mots differents dans un fichier.

    Dans "fichier1.txt" il retourne donc 4 et dans "fichier2.txt" il retourne 3

    Ce que je veux faire c qu'il fasse comme si les deux fichiers n'étaient qu un seul fichier et retourner un nombre de mots différents égal à 5 dans mon cas précis puisque Bonjour et Madame sont présents dans chaque fichier.

    Ce que je veux c une solution générique qui marcherait quelque soit le code que je veux executer.

    Merci d'avance!

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Techniquement, tu ne peux pas ouvrir plus d'un fichier par un seul appel à la fonction open.

    Sous un système Unix/Linux, via la commande 'cat', tu pourrais faire afficher les fichiers que tu veux et les retourner dans un tableau ou une variable de type scalaire et là, faire en un seul traitement ce que tu veux.

    Et qu'est-ce qui te chagrine dans le fait d'avoir à ouvrir plusieurs fichiers ? D'autant plus que tu peux trés bien, via ta fonction justement, lui envoyer tous les fichiers que tu veux, comme par exemple :

    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
    Ma_Chtite_Fonction_A_Moi("fichier1", "fichier2", "fichier3");
     
    sub Ma_Chtite_Fonction_A_Moi
    {
        my @fichier = @_;
     
        foreach my $fic(@fichier)
        {
            open(FIC, $fic) or warn ("attention fichier $fic non ouvert : $!\n");
            while(<FIC>)
            {
                # tu fais ce que tu dois faire ici
            }
            close(FIC);
        }
    return;
    }

  8. #8
    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
    En tout cas, c'est toujours pas clair pour moi.
    Donc ce que tu peux faire, c'est de creer un fichier temporaire qui sera la concatenation de tous tes fichiers à traiter. et ensuite, tu travailles directement sur ce fichier temporaire que tu pourra supprimer en fin de script.
    Voilà

Discussions similaires

  1. [Débutant] faire une boucle pour lire plusieurs fichiers à la suite
    Par hittie dans le forum MATLAB
    Réponses: 6
    Dernier message: 30/12/2011, 13h39
  2. Réponses: 2
    Dernier message: 27/04/2007, 13h45
  3. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39
  4. Réponses: 6
    Dernier message: 28/09/2006, 18h58

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