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 :

coment lire tous les fichier html à partir d'un repertoire racine


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 24
    Points
    24
    Par défaut coment lire tous les fichier html à partir d'un repertoire racine
    salut je suis débutant en perl et je veux lire tous les fichier html à partir d'un repertoire racine
    merci.

  2. #2
    Membre actif Avatar de mobscene
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 331
    Points : 234
    Points
    234
    Par défaut
    tu peut faire sa de deux façon

    soit en utilisant glob

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pour n'importe qu'elle type de fichier
    my @html = glob(" chemin repertoire/*");
     
     
    pour un type de fichier préçis
    my @html = glob("chemin repertoire/*.htm");
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    opendir (DIR, "chemin reperoire") or die ("Impossible d'ouvrir le répertoire");
     
    # bon la on récupère tout les éléments du repertoire
    my @html = readdir(DIR);
     
    # pour ne récupérer que certain type de fichier
    my @html = grep { /\.html|\.php$/i } readdir(DIR);
     
    close(DIR);
    Everybody have in their the potential to be their own god : Marilyn Manson

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    ok merci;
    voilà de puis le temps que j'ai poser cette question, je n'arrete pas de progresser.
    mon problème maintenant est le suivant:
    apres avoir réussi à lire tout les fichier HTML ou HTM d'un répertoire; je voulez récupérer le texte qui est dans le fichier Html.
    jusqu'au la j'ai un bon résultat en utilisant ce code.


    #######################################

    # usage : perl htmltotext.pl <rep>
    use HTML::FormatText;
    use HTML::TreeBuilder;
    use Time::HiRes qw(gettimeofday);
    my $debut = gettimeofday; # date de debut de programme
    #le chemin vers le repertoire
    my $dir=$ARGV[0];
    #ouvrir le repertoire
    opendir(DIR, $dir) or die "je ne peux pas : $!";
    my @listeDeFichier= grep {/\.html?$/} (readdir DIR);
    #ordonner les fichiers
    my @listeOrdonnee = sort(@listeDeFichier);
    #fermer le fichier
    close(DIR);
    #affiche quelques statistiques
    print "+--------------------------------------------------+\n";
    print "Nom du repértoire : $dir\n";
    print "Nombre de fichiers : " . (scalar(@listeOrdonnee))."\n";
    print "Noms des fichiers : ---------\n";
    #Traitement sur la liste des fichier
    foreach my $fichier (@listeOrdonnee) {
    print "######################################\n";
    print $dir.'/'.$fichier."\n";
    my $taille = -s $dir."/".$fichier;
    print "$fichier \t $taille octets\n";

    $tree = HTML::TreeBuilder->new(); # create TreeBuilder
    $tree->parse_file($dir."/".$fichier); # parse file

    $formatter = HTML::FormatText->new(); # formatter object
    open (R, ">$dir"."/"."$fichier.txt") || die "erreur de création du fichier :$fichier.txt\n";
    my $texteTXT = ($formatter->format($tree));
    $texteTXT =~ s/<[^>]+>//g;
    $texteTXT =~ s/\[IMAGE\]//g;
    #$texteTXT =~ s/(\n\s*)+/\n/g;
    #$texteTXT =~ s/(--)+(-)?([.©\n]*)+//g;
    print R $texteTXT;
    close(R) || die "erreur de fermeture du fichier $fichier.txt\n";
    }
    my $tempsTotal = gettimeofday-$debut;
    print "temps d\'execution total: $tempsTotal\n";



    dans ce code en gros, j'ai fait apelle au module HTML::FormatText; et HTML::TreeBuilder;

    il me reste un seul souci : je ne peux pas récuperer le text écrit dans des tableaux. moi je soupçone le HTML::TreeBuilder; qui ne prends pas en compte les tableau.
    merci pour votre aide.

  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 : 498 771
    Points
    498 771
    Par défaut
    peux tu mettres ton code entre balise code (tu le selectionnes et clique sur #), c'est important pour la lisibilité
    Merci

Discussions similaires

  1. Réponses: 19
    Dernier message: 25/01/2013, 18h57
  2. [XL-2007] FICHIER.XLSX qui reprend le nom de tous les fichiers contenus dans le meme repertoire ?
    Par century94 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 21/05/2012, 02h43
  3. Traiter tous les fichiers html l'un après l'autre
    Par kavdo34 dans le forum Général Java
    Réponses: 7
    Dernier message: 15/02/2010, 17h41
  4. Lire tous les fichiers d'un répertoire
    Par louftansa dans le forum C
    Réponses: 4
    Dernier message: 16/07/2009, 20h35
  5. Lire tous les fichiers d'un repertoire en PL/SQL
    Par fifisave dans le forum PL/SQL
    Réponses: 1
    Dernier message: 25/10/2006, 17h36

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