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 le contenu d'un fichier


Sujet :

Langage Perl

  1. #1
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut lire le contenu d'un fichier
    bonjour,
    dans un prog je recupere le contenu d'un fichier ds un variable, se variable est passer a un sous prog.
    comment je peux lir le contenu ligne par ligne de se variable?
    merci.
    Merci Developpez.com

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    montre nous ton script!!!

  3. #3
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    je recupere le contenue d'une page web. ce dernier je le passe a la fonction ci_desous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       sub get_links_banniers{
            my $ligne  =  shift(@_);
            print  "http://rextopia.com$1\n"  if( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ )  ;
       }
    mais il consider le contenu de la variable passer comme un seul string.
    Merci Developpez.com

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    le code complet!!!!!!!!!!!!!!!
    comment pas tu l'info à ta fonction!!!

  5. #5
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    je passe la var comme ça:

    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 -i.bak
     
          use strict;
          use WWW::Mechanize;
          use LWP::Debug qw(+);
     
          sub get_links_banniers{ 
            my $ligne  =  shift(@_); 
            print  "http://rextopia.com$1\n"  if( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ )  ; 
       }
     
     
          my $m = WWW::Mechanize->new();
          $m->get($url);
          get_links_banniers($m->content);
    Merci Developpez.com

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Citation Envoyé par rootdaoud
    je passe la var comme ça:

    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 -i.bak
     
          use strict;
          use WWW::Mechanize;
          use LWP::Debug qw(+);
     
          sub get_links_banniers{ 
            my $ligne  =  shift(@_); 
            print  "http://rextopia.com$1\n"  if( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ )  ; 
       }
     
     
          my $m = WWW::Mechanize->new();
          $m->get($url);
          get_links_banniers($m->content);
    verifie ce qu'il y a dans en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $mon_texte = $m->content;
    print $mon_texte;
    si c'est ok,
    alors tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get_links_banniers($mon_texte);

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Pourquoi voudrais-tu lire la variable ligne à ligne ? Ca n'a pratiquement aucun intérêt dans ton cas.

    --
    Jedaï

  8. #8
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    j'ai verifiee ca, mais le probleme persist.
    Merci Developpez.com

  9. #9
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    j'ai voulais eviter le faite de recuperer le contenu ds un fichier puis le consulter pour recuperer les liens.
    Merci Developpez.com

  10. #10
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    tu dois avoir de \n dans ta variable, mais c'est le but de ton script?

  11. #11
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    j'ai pas compris djebril.
    mais mon but c'est de recuperer quelque liens a partir d'une page web. puis consulter un par un ces liens.
    Merci Developpez.com

  12. #12
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    au fait, t'as quoi comme reponse???
    des message d'erreur ou non, sinon ça peu venir de ta regex!![/code]

  13. #13
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    je recupere une seul ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://rextopia.com/publishers/display_affiliate_banner_stats.html?program_id=608&offset=0&start_date=2005-08-31&end_date=2005-08-31
    .
    mais je pense qu'il y a un probleme ds l'expression regulier.
    je dois verifier le syntax.
    Merci Developpez.com

  14. #14
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    bon je pense que tu te melange les pedales.
    recupere un fichier html (donc avec le \n)
    on va faire un script plus long et tu comprendras:
    fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $answer = $r->content;
    open (RECUP, ">test.txt") || die "impossible de creer le fichie $!";
    print RECUP $answer;
    close (RECUP);
    affiche nous le contenu de fichier test.txt

  15. #15
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Non, il veut dire qu'il n'obtient qu'un seul résultat avec sa regex, ce qui est assez compréhensible puisqu'il n'utilise pas /g...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sub get_links_banniers{
            my $ligne  =  shift(@_);
            print  "http://rextopia.com$1\n"  while ( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/g )  ;
    }
    --
    Jedaï

  16. #16
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    +1
    toutes ces lignes pour un g

  17. #17
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    merci les amis,
    j'ai resolut le probleme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       sub get_links_banniers{
            my $ligne  =  $_[0];
            while( $ligne =~ m/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>/ )  {
               $ligne =~ s/<a href="(\/publishers\/display_affiliate_banner_stats.html\?program_id=.*)">(.*)<\/a>//;
               print  "http://rextopia.com$1\n";
            }
       }
    je sais que c'est pas tres propre, si vous avez une sugestion je suis a l'ecoute, par ce que je suis assez experimenter en perl.
    Merci Developpez.com

  18. #18
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par rootdaoud
    si vous avez une sugestion je suis a l'ecoute, par ce que je suis assez experimenter en perl.
    J'imagine que tu voulais écrire inexpérimenté, non ?
    Relis mon message quelque post plus haut pour une bonne solution (la tienne donne le résultat mais elle est assez lourde et innefficiente).

    --
    Jedaï

  19. #19
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut

    oui c'est ca amigo inexpérimenté bien sur .
    merci
    Merci Developpez.com

  20. #20
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    oui jedai,
    ton code marche tres bien , je m'exuse d'avoir dis qu'il ne marche pas par ce que j'ai pas remarquer le while.
    merci :o
    Merci Developpez.com

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

Discussions similaires

  1. Lire le contenu d'un fichier PDF
    Par skywaukers dans le forum Delphi
    Réponses: 6
    Dernier message: 18/07/2006, 12h01
  2. Lire le contenu d'un fichier xml
    Par Invité dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 10/01/2006, 19h13
  3. Comment lire le contenu d'un fichier ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 24/11/2005, 08h17
  4. [FPDF] Lire le contenu d'un fichier PDF, possible ?
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/11/2005, 18h47
  5. [Fichier] Lire le contenu d'un fichier
    Par bart64 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/09/2004, 18h18

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