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 :

[langage] optimisation du code


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut [langage] optimisation du code
    Bonjour,

    est ce que quelqu'un pourrait m'aider à optimiser mon code :


    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
     
    $CurFile= "fichier= toto.txt;,";
    my $Ligne;
    my $Ficjoint;
    my Ficjoints;
     
    if ($Ligne =~ /$CurFile/) {
       $Ligne =~ s/;,$//;    # supprime les ;,
       $Ligne =~ s/;$//;     # supprime les ,
       $Ligne =~ s/ //g;     # supprime les espaces
       $Ligne =~ (/=(.+)$/);  # recupére tous les caractéres apres le signe=
       $Ficjoint = "$1" ;
       $Ficjoint = "${Ficjoint}" ;
       $Ficjoints = "${Ficjoints},$Ficjoint";
       $Ficjoints =~ s/ //g;
       $Ficjoints =~ s/^,//g;
    }

  2. #2
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Une erreur:

    my Ficjoints; devrait être my $Ficjoints;

    plusieurs lignes inutiles:

    $Ficjoint = "${Ficjoint}" ; inutile, car tu viens de faire $Ficjoint = "$1" ;
    de plus les guillemets sont inutiles !

    $Ficjoints =~ s/ //g; inutile, car tu as déjà éliminé tous les espaces avant

    $Ficjoints =~ s/^,//g; ne devrait être executé qu'une fois à la fin de la boucle (je suppose que tu es dans une boucle sinon ca n'a aucun intéret !)

    voila comment optimiser un peu :

    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
    $CurFile= "fichier= toto.txt;,";
    my $Ligne;
    my $Ficjoints = '';
     
    if ($Ligne =~ m/$CurFile/) {
       $Ligne =~ s/;,?$//go;    # supprime les ;, et les  ;
       $Ligne =~ s/ //g;     # supprime les espaces
       if ($Ligne =~ m/=(.+)$/o)  # recupére tous les caractéres apres le signe=
       {
           $Ficjoints .= ',' . $1;   
       }
    }
     
    # puis, à la fin de la boucle
    $Ficjoints =~ s/^,//g;

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    ça veut dire quoi "go" ?? à la fin

    merci

  4. #4
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Citation Envoyé par vince2005
    ça veut dire quoi "go" ?? à la fin

    merci
    • g pour global, la regexp va s'executer autant de fois que l'expression est trouvée
    • o pour compilation, la regexp ne sera compilée qu'une seule fois à la première execution, ensuite elle restera en cache pour utilisation ultérieure. Pratique dans les boucles !

Discussions similaires

  1. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 11h54
  2. [langage] Pb de code...
    Par perlgirl dans le forum Langage
    Réponses: 6
    Dernier message: 02/07/2004, 17h26
  3. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 10h59
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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