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 :

Parser un fichier par ligne vide


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Par défaut Parser un fichier par ligne vide
    Bonjour à tous,

    Voila ce que je cherche à faire.

    Imaginons un fichier texte basique dans ce style la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fdlsflsjdlf jlksdj flk sjdlkfj kls d
    sdkfjsd jlfks jdlkf s
     
    dskfj l sdjlfk jsld flks
    sdk fkjslkd jfklskd jfls
    sdkfj ls jdlfsjdfls df
     
    ddsjlkfjsdlkfjskdlfjls
    Je cherche a parser ce fichier par ligne vide. C'est a dire me retrouver dans ce cas précis avec un tableau du style
    $tableau[0] (les lignes 1 et 2)
    $tableau[1] (les lignes 4 5 et 6)
    $tableau[2] (la ligne 8)

    Je cherche bien sur une solution fonctionnelle sur tout fichier (le mien fais en réalité 300 lignes).

    Avez une idée sur comment procéder ?
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 221
    Par défaut
    un truc du genre comme cela devrait fonctionner (j'ai pas testé)

    le principe est d'avoir un tableau avec au depart une variable d'index (pour le tableau) egale à zéro.
    puis on parcourt le fichier.
    si on rencontre une ligne vide, on incrémente la variable d'index
    sinon, on ajoute la ligne à l'entrée en cours dans le tableau

    #!/usr/local/bin/perl

    my @tab;
    my $ind = 0;

    open (MYFILE, 'data.txt');
    while (<MYFILE>) {
    if ( $_ =~ m/^\s+|\s+$/ )
    {
    $ind += 1;
    }
    else
    {
    $tab[$ind] = $tab[$ind].$_;
    }
    }
    close (MYFILE);
    A voir par conter pour l'initialisation de la variable $tab[$ind] lors de la concaténation.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Tu peux faire tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @tableau = split /\n+/m, $contenu_fichier;

Discussions similaires

  1. Sortie d'un fichier sans lignes vides ni commentaires
    Par Invité dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 24/10/2013, 10h00
  2. parser un fichier XML ligne par ligne
    Par nancy maman dans le forum Général Python
    Réponses: 10
    Dernier message: 22/07/2011, 16h20
  3. Ouvrir un fichier dans lignes vides
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2011, 18h59
  4. Codes sources pollués par lignes vides
    Par MilaP dans le forum EDI
    Réponses: 4
    Dernier message: 04/02/2011, 19h44
  5. chemin fichier par ligne de commande
    Par amirym dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 19/05/2007, 09h25

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