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 :

Hashage html: Bugs dans mon Script Perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Par défaut Hashage html: Bugs dans mon Script Perl
    Bonjour,
    j'ai écrit un script qui parrait...logique mais qui me produit deux bugs.
    Tout d'abord mon script ouvre un répertoire (donné en ligne de commande) lit les fichiers html qui s'y trouvent, les analyse et crée un fichier hash dans un répertoire de sortie (donné aussi en ligne de commande).

    1- si les lignes 50-54 sont activées, l'erreur "No directory given!" est déclenchée, pourtant le répertoire où sont les fichiers html est bien donné.

    2- si ces lignes sont désactivées, alors l'erreur en ligne 108 est déclenchée

    Si les ligne 50-54 sont restent désactivées et les lignes 79-89 dans le "main"
    on note bien que la ligne 77 est exécutée et crache le nom de tous les fichiers html du répertoire.

    ligne de commande depuis la console:

    c:\...>ErrorTracking_1.pl .\<répertoire> .\<répertoire sortie>



    QU'EST-CE QUI CLOCHE!!??

    fichiers joints:

    Test.zip contenant:

    1 Log4ta.pm
    1 ErrorTracking_1.pl
    1 répertoire de fichiers html
    Fichiers attachés Fichiers attachés

  2. #2
    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
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    déjà, erreur de logique, les lignes 50 à 54 devraient se trouver avant la ligne 40. Ce n'est pas logique de tester si j'ai bien reçu un nom de répertoire après avoir essayé de l'ouvrir.

    Ensuite, ta condition est fausse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(! defined $DIR or ! -f $DIR)
    Ce code dit: si $DIR n'est pas défini ou si $DIR n'est pas un fichier, sors en erreur. Mais $DIR n'est pas censé être un fichier, mais un répertoire.

    Change la ligne comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(! defined $DIR or ! -d $DIR)
    Pour l'erreur de la ligne 108, ta liste de fichier contient le nom des fichiers nus, sans le chemin (sans $DIR), il est donc impossible de les ouvrir. Il faudrait soit que tu ajoutes le répertoire avant le nom de fichier, soit que tu changes de répertoire dans ton script.

    Une solution plus simple serait d'utiliser la fonction glob, plutôt que opendir/reeaddir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # check for valid input parameter
    if(! defined $DIR or ! -d $DIR)
    {
    	Log_Error("No directory given!");
        die;
    }
    my @files = glob ("$DIR/*.html");
    #...
    foreach (@files) {
         # ...
    }
    L'avantage est que glob renvoie le nom du fichier avec le chemin relatif.

    Dernier point: ajoute un chomp sur $out_dir, sinon il risque de conten ir un retour à la ligne et ça ne marchera pas comme il faut.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 53
    Par défaut
    Merci Lolo78

    tu avais raison en ce qui concerne le chemin relatif des fichiers.
    je viens de terminer ce que je voulais faire, du moins la phase une qui n'est pas des moindres.

    merci!

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

Discussions similaires

  1. [POO] Bug dans mon script
    Par tremeur53 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/03/2008, 11h56
  2. Comment lancer un script perl dans un script perl
    Par kiza dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 21h02
  3. erreur dans mon script
    Par Swata dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 00h02
  4. [perl/CGI] Ecrire du HTML dans un script perl
    Par LE NEINDRE dans le forum Web
    Réponses: 3
    Dernier message: 02/08/2005, 14h50
  5. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58

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