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 :

extraire plusieurs lignes d'un fichier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut extraire plusieurs lignes d'un fichier
    Bonjour
    J'ai un fichier de ce type issu d'un capteur
    xxxxx;aaaaaa10;zzzz;rrrrr;.......
    xxxxx;aaaahh30;dddd;ffff;.......
    xxxxx;aaaaau20;aaaa;hhh;.......
    xxxxx;aaayyy30;rrrrrr;kkkk;.......
    xxxxx;aaaaii20;ttttt;oooo;.......
    xxxxx;arrrrr10;eeee;vvvv;.......
    ....
    je doit faire ressortir certaines occurrences par exemple ..aa20; qui sont distribuées de manière aléatoires, ça c'est fait mais je doit aussi récupérer les 5 lignes qui suivent cette occurrences et ça je ne sait pas faire.
    Si vous avez une idée.

    extrait du code:

    foreach $ligne (@fic) {
    chomp ($ligne);
    @champs = split(/;/,$ligne);
    if ( substr($champs[1],10,2) == 20){
    print "$ligne\n";
    }
    }

    merci par avance

  2. #2
    Membre averti Avatar de philouelgeek
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 60
    Par défaut
    Salut et bienvenue sur le forum,

    Ce code devrait fonctionner.
    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
     
    use strict;
    use warning;
     
    my cptligne = 0;
     
    foreach  $ligne (@fic) {
    cptligne++;
    chomp ($ligne);
    @champs = split(/;/,$ligne);
           if ( substr($champs[1],10,2) == 20){
         print "$ligne\n";
     
           for (my $i = 0; $i < 5; $i++) { 
             print $fic[$cptligne+$i];
           }
     
        }
    }

    @++

    Ps : N'oublie pas de mettre ton code entre les balises prévues à cet effet [ code] [\ code]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Merci ça fonctionne et la prochaine fois je n'oublierai pas les balises.
    A+

  4. #4
    Membre averti Avatar de philouelgeek
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 60
    Par défaut
    De rien et n'oublie pas le tag "Résolu"

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

Discussions similaires

  1. Extraire plusieurs ligne d'un fichier texte
    Par stpaul04 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/08/2009, 18h41
  2. extraire plusieures lignes d'un fichier
    Par win-pierre dans le forum C++
    Réponses: 7
    Dernier message: 22/05/2008, 17h43
  3. recupérer plusieurs ligne d'un fichier
    Par vince2005 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 10h50
  4. Réponses: 12
    Dernier message: 18/06/2006, 19h42
  5. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22

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