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 :

pb code perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut pb code perl
    bonjour ,
    je suis débutante en perl , et dans le cadre d'un projet je suis ammené à améliorer un code existant , mais j'ai des erreurs à l'execution et le code manque cruellement de commentaires

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    #!/usr/bin/perl5
    #################################################################################
    # selection les documents
    # Usage: Selection.pl <documents> <rep_documents> <rep_nos_documents>
    # Exemple: selection.pl /tmp/test/dea/doc /tmp/test/dea/sourcecp /tmp/test/dea/tri
    #################################################################################
     
    unless (@ARGV == 3){
        die "\n\Usage : $0 <documents> <rep_documents> <rep_nos_documents>\n";
    }
     
    if (!open(DOC1, "$ARGV[0]")){
        print "\n Erreur  d'ouverture de $ARGV[0] : Documents \n";
        exit(0);
    }
     
    if (!opendir(DIR1, "$ARGV[1]")){
        print "\n Erreur  d'ouverture de $ARGV[1] :  Répertoire des Documents \n";
        exit(0);
    }
     
    @files = grep !/^\./, readdir DIR1;
    $ext=".html";
    if (!opendir(DIR2, ">$ARGV[2]")){
        system("mkdir $ARGV[2]");
        opendir(DIR2, "$ARGV[2]");
    }
     
    while ($_ = <DOC1>){
     
        ($num,$titre,$poids) = split(/\s+/,$_);
        $document{$num} = substr($titre,0,10);
        $doc{$num}=$titre;
        foreach  $file (@files) {
    	#print "$file\n";
    	$document{$num}=lc($document{$num});
    	if ($document{$num} eq substr($file,0,10)){
    	    $nfile=substr($file,0,10);
    	    system("gzip -d $ARGV[1]$file");
    	    system("cp $ARGV[1]$nfile $ARGV[2]$nfile");
    	    #print "$num, $ARGV[2], $ARG[2]$nfile, $doc{$num}\n";
    	    &subextrait($num,$ARGV[2],$ARGV[2].$nfile,$doc{$num});
    	    system("rm $ARGV[2]$nfile");
    	}
        }
    }
     
    sub subextrait{
        my($numfile,$repfile,$file,$titrefile)=@_;
        #print "$numfile, $repfile, $file, $titrefile\n";
        if (!open(IN, "$file")){
    	print "\n Erreur  d'ouverture de $file : Documents \n";
    	exit(0);
        }
     
        if (!open(OUT, ">$repfile$numfile")){
    	print "\n Erreur  d'ouverture de $repfile$numfile :  Documents \n";
    	exit(0);
        }
        $flag=0;
        while ($a = <IN>){
    	$a=~s/^\s+|\s+$//g;
    	@motlist=split(/ +/,$a);
    	if ($motlist[0] eq "<DOCNO>$titrefile</DOCNO>"){
    	    print OUT "<DOC>\n";
    	    #print OUT "$motlist[0]\n";
    	    $flag=1;
    	}
    	if ($flag==1){
    	    print OUT "@motlist\n";
    	    if ($motlist[0] eq "</DOC>"){
    		last;
    	    }
    	}
        }
        system("cp $repfile$numfile $repfile$numfile$ext");
        system("rm $repfile$numfile");
        close(IN);
        close(OUT);
    }
     
    close(DOC1);
    closedir(DIR1);
    closedir(DIR2);
    merci d'avance

  2. #2
    Expert confirmé
    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
    Par défaut
    Et donc ? La question est ?
    Si tu veux qu'on t'aide à comprendre le code, il vaudrait mieux que tu nous donnes un minimum de détail sur le projet sur lequel tu bosses... Et si tu as des erreurs, il faut nous les donner.

    --
    Jedaï

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    mon projet consiste à optimiser un algorithme de classification des résultats obtenu à partir de moteur de recherche
    ce code correspond à une fonction de selection qui extrait à partir d'un répertoir qui contient des docs html sous forme .gz un nombre restreint de docs
    les erreurs : erreur d'overture de fichier
    pourtant j'ai lui donnée les droits (wrx)
    normelement en sortie je dois avoir un répertoir qui contient des fichiers .html, mais il me donne un repertoire vide
    en plus, je n' arrive pas à comprendre la logique du programme.

    je ne comprend pas cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @files = grep !/^\./, readdir DIR1;
    voilà , j'éspère que j'étais clair
    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    bonjour,
    le problème est résolue. j'ai trouvé où sont les erreurs
    merci

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

Discussions similaires

  1. [TOMCAT] Code PERL
    Par Superdub dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 20/12/2006, 12h08
  2. explication sur un code perl
    Par Melvine dans le forum Langage
    Réponses: 5
    Dernier message: 05/10/2006, 16h32
  3. Réponses: 1
    Dernier message: 29/11/2005, 22h05
  4. [langage] code Perl
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2004, 11h26

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