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 :

Erreur d'algorithme ou pas


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut Erreur d'algorithme ou pas
    hello,

    Je reviens avec un bout de script (également présent dans un ensemble TK)
    Le script prend tous les fichiers .JPG et test si il en manque dans la numérotation.

    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
        my $premier = $entry_saisie1->get;
        my $dernier = $entry_saisie2->get;
        open OUT, ">$repertoire/Fichiers_Manquants.txt" or die;
        open OUT2, ">$repertoire/Fichiers_presents.txt" or die;
        opendir (my $FhRep, $repertoire) or die "impossible d'ouvrir le répertoire $repertoire\n";
        my @Contenu = grep { /\.JPG/ } readdir($FhRep);
        closedir ($FhRep);
        @Contenu = sort @Contenu;
        my $nb;
        my @liste;
        my @liste2;
        my $total = $dernier - $premier;
        $total = $total + 1;
        foreach my $nom ( @Contenu ) {
          $nom =~ /(\d\d?\d?\d?)\.\w{3}/;
          $nb = $1;
          push (@liste, $nb);
          }
        @liste = sort @liste;
        while ( ! $total < 1 ) {
          if ("@liste" !~ /$dernier/){
            push (@liste2, $dernier);
            }
          $total--;
          $dernier--;
          }
        print $total."\n";
        @liste2 = sort @liste2;
        print OUT "@liste2\n";

    les tests que j'ai fait :

    1) j'ai 6 fichiers .JPG : 1,2,3,10,11,15
    en fichier manquant j'ai : 4, 6, 7, 8, 9, 12, 13, 14 ( et pas le 5 )

    2) j'ai 6 fichier .JPG : 1, 2, 3, 10, 11, 16
    en fichier manquant j'ai : 4, 5, 7, 8, 9, 12, 13, 14, 15 ( et pas le 6 )

    donc il semble que le 15 soit traiter à la fois comme 15 et comme 5 pareille pour le 16...



    Je ne comprend pas comment le résoudre.

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Il faudrait nous afficher le contenu du répertoire que tu traites.
    Si tu est sous Windows Sous Linux

  3. #3
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    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
     
    20.07.2011  14:50    <REP>          .
    20.07.2011  14:50    <REP>          ..
    26.10.2010  18:12         4'648'356 1.JPG
    26.10.2010  18:11         5'037'593 10.JPG
    26.10.2010  18:13         6'212'322 11.JPG
    26.10.2010  18:13         5'041'140 16.JPG
    26.10.2010  18:13         6'202'268 2.JPG
    26.10.2010  18:13         6'642'217 3.JPG
    13.07.2011  12:09         4'044'862 C.exe
    13.07.2011  12:07               898 C.pl
    13.07.2011  11:45               513 C2.pl
    13.07.2011  12:06                25 LOG.txt
    15.07.2011  14:55               786 n.pl
    11.07.2011  09:11         4'048'433 numerotation.exe
    19.07.2011  09:12            10'282 Numérobis2.pl
    11.07.2011  16:36         4'048'462 R.exe
    11.07.2011  16:35             1'097 R.pl
    11.07.2011  17:02               979 ReadMe.txt
    15.07.2011  14:54               786 renome jpg.pl
    18.07.2011  14:12             7'637 test-tk.pl
    18.07.2011  11:39             2'226 test2.pl
    18.07.2011  15:30             6'942 test3.pl
    12.07.2011  12:06               774 Y.pl
                  21 fichier(s)       45'958'598 octets

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Attention, la fonction sort (sans code associé) fait un tri alphabétique et non numérique par défaut, de sorte que 15 est inférieur à 5.
    Pour faire un tri numérique, il faut forcer la comparaison numérique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @liste = sort { $a <=> $b } @liste;
    Dans les exemples que je t'avais donné pour trouver les "not in a list" je l'avais écrit ainsi pour trier la liste de numéro avant traitement.

  5. #5
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    merci j'essaie tout de suite...

  6. #6
    Membre éclairé Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Par défaut
    il me manque toujours mon fichier manquant 6 (voir 2è test)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/05/2006, 12h43
  2. [struts]erreur 404:ne trouve pas l'action...
    Par questionneuse dans le forum Struts 1
    Réponses: 7
    Dernier message: 05/05/2006, 10h55
  3. Erreur JS dans IE pas firefox
    Par zevince dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/03/2006, 17h22
  4. Erreur avec IE mais pas avec Netscape
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2005, 15h15
  5. erreur que j ai pas comprise ds mon pg informix
    Par zineb dans le forum Informix
    Réponses: 2
    Dernier message: 16/07/2003, 13h53

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