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 :

Problème de parsing simple de fichier texte


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2012
    Messages : 69
    Points : 60
    Points
    60
    Par défaut Problème de parsing simple de fichier texte
    Bonjour,

    Depuis hier j'ai repris un script que j'avais laissé il y a quelques mois dont le but, en résumé, est de parser des numéros de téléphones (1 par ligne), et de réaliser ensuite des traitements en fonction.

    Or, impossible de faire fonctionner le parsing de mon fichier texte ligne par ligne.
    Voici pourtant le code que j'utilise et qui me semble correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    open my($file), '<', 'liste.txt';
    while( my $line = <$file> ) 
    {
        chomp($line) ;
        print "$line \n";
    }
    Mon fichier 'liste.txt' étant tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    0130110925
    0231392398
    0475844776
    Enfin, quand j'éxécute mon script 'test.pl', seul le dernier numéro de téléphone s'inscrit.

    Merci de m'éclairer sur ce sujet sûrement tout simple

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    ce code est correct, j'affiche bien les 3 lignes quand je le teste...
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Gardyen Voir le message
    ce code est correct, j'affiche bien les 3 lignes quand je le teste...
    Pour moi, il est correct également.

    Peut-être un problème de format du fichier en entrée, en particulier des retours à la ligne. J'ai eu un problème analogue avec un fichier n'était pas compatible avec l'OS sur lequel j'exécutais le traitement (incompatibilité entre Unix et Windows). Sauf qu'au lieu du problème classique des ^M sous Unix, on se retrouvait avec les retours en début de ligne sans les sauts de lignes. Du coup, toutes les lignes s'affichaient successivement et très rapidement sur la même ligne de l'écran et, au final, on ne voyait que la dernière ligne du fichier s'afficher.

    Précise sur quel OS tu exécutes ton programmer et d'où vient ton fichier. Ou met le fichier en pièce jointe.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2012
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    J'exécute mon script sous Windows.
    Voici mon fichier texte en pièce jointe, ainsi que le script Perl.

    Et en effet, lors de l'exécution de mon script dans une fenêtre dos, seul la dernière ligne s'affiche.

    Merci de m'éclairer, parce que là je ne vois vraiment pas pourquoi cela ne fonctionne pas
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2012
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    En fait, et cela rejoint un peu ce que disait Lolo78, mon fichier texte était en "format Macintosh".
    Du coup j'ai recrée un fichier texte format UNIX, et tout marche très bien

  6. #6
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Dans ce cas, c'est exactement ce dont je parlais. Le format Mac utilise le retour chariot sans saut de ligne comme séparateur de ligne. Du coup, sous Unix, chaque ligne s'écrit sur la précédente et tu ne vois au final que la dernière.

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

Discussions similaires

  1. problème de lecture depuis un fichier texte
    Par [Hugo] dans le forum C++
    Réponses: 12
    Dernier message: 27/10/2006, 17h46
  2. Parsing d'un fichier texte
    Par anibal dans le forum C
    Réponses: 2
    Dernier message: 18/04/2006, 15h33
  3. [VBnet] Problème de lecture d'un fichier texte.
    Par dibeloni dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2006, 20h12
  4. Problème retour chariot dans un fichier texte
    Par Redondo dans le forum Windows
    Réponses: 2
    Dernier message: 08/02/2006, 19h23
  5. Réponses: 2
    Dernier message: 28/12/2005, 16h00

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