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 :

Globing et traitement de fichiers


Sujet :

Langage Perl

  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Par défaut Globing et traitement de fichiers
    Bonjour,

    Je bute sur un problème assez crétin :
    J'ai une liste de fichier que je dois prendre un par un et appliquer un traitement sur le contenu...
    Je tente ca :

    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
     
    #!/usr/bin/perl -w
    use warnings ;
    while (defined($fichier = <../arg_retag/*01.txt>))
    {
    #  print "Le fichier est $fichier\n" ;
       open(FICHIER,"$fichier") || die "Pas d'ouverture" ;
       while ($Ligne=<FICHIER>)
       {
          if $Ligne =~ /Artiste = (.*)/)
          {
             $artist = $1 ;
          }
       }
       close(FICHIER) ;
       print "$artist\n" ;
    }
    Lorsque je décompose le globing d'un coté et le traitement d'un fichier de l'autre, ca marche mais comment traiter fichier par fichier ?
    (je soupsonne une m*rdouille dans open )

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Deux remarques : le defined est superflu (mais ça n'a rien à voir avec ton problème), et ton print est placé étrangement. Comme je ne sais pas ce que tu cherches à obtenir ni ce que tu obtiens en fait, je ne peux en dire plus pour le moment.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Par défaut
    Citation Envoyé par Schmorgluck Voir le message
    Deux remarques : le defined est superflu (mais ça n'a rien à voir avec ton problème), et ton print est placé étrangement. Comme je ne sais pas ce que tu cherches à obtenir ni ce que tu obtiens en fait, je ne peux en dire plus pour le moment.
    Le defined a été honteusement pompé sur un exemple et le print me sert a controler la sortie, sachant qu'il y aura un traitement à la place (dans la boucle... )

    edit quelques minutes + tard

    Voila le msg d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    stef@arthur:~/scripts$ ./test-fichier.pl
    syntax error at ./test-fichier.pl line 13, near "if $Ligne "
    syntax error at ./test-fichier.pl line 20, near "}"
    Execution of ./test-fichier.pl aborted due to compilation errors.
    Et j'ai changé le print final de place

  4. #4
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    J'ai failli te dire la cause, mais finalement non, c'est du débogage de routine, on ne va pas non plus te tenir la main. Tu as toutes les informations nécessaires.

    Une remarque supplémentaire en passant : utilise le pragma strict. Toujours.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Par défaut
    Groumph

    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
     
    #!/usr/bin/perl -w
     
    use warnings ;
     
    while ($fichier = <../arg_retag/*01.txt>)
    {
       open(FICHIER,"$fichier") || die "Pas d'ouverture" ;
     
       while ($Ligne=<FICHIER>)
       {
          if ($Ligne =~ /Artiste = (.*)/)
          {
             $artist = $1 ;
          }
       }
       print "$artist\n" ;
       close(FICHIER)
    }
    La version corrigée qui fait ce que je veux (c'est con une parenthèse )

Discussions similaires

  1. [Traitement de fichiers] substitutions
    Par david_m dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2006, 09h27
  2. traitement de fichier
    Par loic_86 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/11/2005, 17h56
  3. Réponses: 1
    Dernier message: 24/07/2005, 22h25
  4. TRaitement de fichier avec PERL
    Par Dr_GonZO dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2005, 12h38
  5. traitement de fichier XML dans une Tache planifiée
    Par marivi dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/06/2005, 10h40

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