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 :

Supprimer des caractères parasites ?


Sujet :

Langage Perl

  1. #21
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Ton programme ne fonctionne pas avec cette liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @tab = ("ki-ou---a-tous","cicou---a-to-s","ki-ou---a-t--s");
    Je m'aperçois d'ailleurs que ma version non plus
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  2. #22
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Bon, c'est sûr, si kioka, change les règles, ...
    Donc, mon algo fonctionne en prenant "-" comme caractère parasite au lieu de "v" comme au début du post... ouf
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #23
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Oups désolée j'avais plus fait gaffe au v et - ...
    Mais c'est bien ton programme que j'ai réutilisé ... j'ai juste ajouté la possibilité de bouclé sur le contenu du tableau pour mettre n chaînes ...

    Grr non ça ne marche pas mon histoire ... ça ne fait qu'une comparaison 2 à 2 et si je transforme mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @tab = ("cicou---a-to-s","ki-ou---a-t--s","kikou---a-tous");
    .... bà c'est plus bon ... sniff !

  4. #24
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Oui, mais ton programme ne contrôle pas que les - sont placés identiquement sur toutes les chaines pour les supprimer, seulement s'ils sont tous placés comme sur la première chaine de la liste.

    Edit : ne désespère pas, j'ai une solution qui fonctionne
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #25
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Je crois que cette fois j'ai trouvé :
    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
    my @tab  = ("ki-ou---a-t--s","cicou---a-to-s","kikou---a-tous");
    my $ref  = shift (@tab);
    while ($ref =~ /(-+)/g)
    {
        my $i = 0;
        my $lg   = length $1;
        my $pos  = pos($ref) - $lg;
        my $tmp  = substr($ref,$pos,$lg);
     
        foreach my $el (@tab)
        {   
            my $tmp_el = substr($el,$pos,$lg);
            $i++ if ($tmp eq $tmp_el);
        }
        if($i == scalar @tab)
        {
            substr($ref,$pos,$lg,"");
            foreach my $el (@tab)
            {
                substr($el,$pos,$lg,"");
            }
        }
    }
    unshift(@tab, $ref);
    Je sais pas si c'est le plus optimum mais ça semble bien marché !

  6. #26
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Ma solution :

    Code perl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    my @chaine = ("ki-ou---a-tous","cicou---a-to-s","ki-ou---a-t--s");
    my $parasite = quotemeta "-";
    my $parasite_re = qr/${parasite}+/;
     
    my @new_chaine = @chaine;
    foreach my $chaine (@new_chaine) {
        $chaine =~ s/($parasite_re)/(grep { substr($_, pos($chaine), length($1)) ne $1 } @chaine) ? $1 : ""/ge;
    }
    print join "\n", @new_chaine, "\n";
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  7. #27
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Tient je ne connaissais pas quotemeta et je ne savais pas que je pouvais mettre un substr dans un grep !!!

    Sympa c'est plus cours que moi !
    Vais tester de suite !

  8. #28
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Ha non soucis ...il marche pour ce tableau mais si je rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @chaine = ("ki-ou---a-tous","cicou---a-to-s","ki-ou---a-t--s","ki-o----a-to-s","c-cou---a-to-s","k-kou---a-tous");
    ce n'est plus bon puisque le résultat obtenus est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ki-ouatous
    cicouato-s
    ki-ouat--s
    ki-o----ato-s
    c-couato-s
    k-kouatous
    au lieu de (obtenus avec mon code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ki-ouat--s
    cicouato-s
    kikouatous
    ki-o-at--s
    c-couato-s
    k-kouatous
    C'est bizarre ! ...

    (qui a dit que j'aimais me compliquer la vie ?
    Je m'absente du forum pour ce soir, je reviens demain )

  9. #29
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Ma version est plus courte en ligne de code, mais plus complexe à l'exécution, puisqu'elle est de l'ordre o(n.n.p) en supposant que n est le nombre de chaine, et p le nombre d'occurrence de parasite commun.
    Ton algorithme me semble de l'ordre de o(n.p).

    Par contre, avec quel programme as-tu vu le problème ?
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  10. #30
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Bien vu, ni mon algo ni le tien ne fonctionnent, puisqu'avec cette liste, c'est ton algo qui ne donne pas le bon résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @chaines = ("ki-o----a-tous",
                "cicou---a-to-s",
                "ki-ou---a-t--s",
                "ki-o----a-to-s",
                "c-cou---a-to-s",
                "k-kou---a-tous");
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #31
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Du coup, l'algorithme que j'ai donné pour 2 chaines ne doit pas fonctionner non plus.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  12. #32
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    La solution est de supprimer le + dans l'expression régulière, pour ne matcher qu'un caractère à la fois.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  13. #33
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Oulà non car si tu met de long chaîne ça explose en temps ...
    Je vais tester l'idée de mettre du code C dans mon code perl ...

  14. #34
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Ca n'explosera pas beaucoup plus qu'avant, mais surtout, ce sera fonctionnel...
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  15. #35
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Ho si ! Pour avoir tester je te garantis que ça explose en temps cette méthode si tu prend des grandes chaînes .... tu passe de quelques secondes à plus d'une dizaines de minutes !

  16. #36
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Certes, mais entre une méthode qui ne marche pas, et une méthode qui marche, il faut d'abord choisir celle qui marche !

    Par ailleurs, si la complexité est en o(n.p) (voire en o(n.n.p) comme dans mon algo), il est normal que les temps d'exécution soient plus longs).
    Je suis en train de faire des essais de profilage avec 4 algo, dont le tien (tous avec une recherche sur un caractère à la fois), et 6 chaines de 1400 octets.
    Je suis assez surpris des résultats, car sur de courtes chaines, ton algo est le plus rapide, mais sur des chaines plus longues, ce sont les algos avec la plus grande complexité qui sont les plus rapides (sauf le dernier qui doit être de l'ordre de o(n.p)).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  17. #37
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    wouaou ! C'est dans ces moments là que je me sent vraiment débutante ...
    Je tente aussi de mon côté de réfléchir à un moyen d'améliorer tout ça ! Je pique un café pour bien me réveillé et je m'y met !

  18. #38
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Mmmm... je crois que je me suis trompé dans le calcul des complexités d'algorithmes, car en faisant des essais comparatifs entre ton algorithme et les miens, l'écart se creuse de manière très importante en terme de performance quand j'augmente la taille de la chaine (et le nombre d'occurrence de parasites).

    Jedaï, help

    Voici le script qui me permet de réaliser le profilage (la fonction b correspondant à l'algo de kioka) :
    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    use Data::Dumper;
    use List::MoreUtils qw(pairwise);
     
    my $multiplier = $ARGV[0] // 100;
    my @chaines = ("Bonjourvvv je vais bien", "Bonjourvvv tu vas  bien", "Bonjourvvv nous allons bien");
    @chaines = ("ki-ou---a-tous----","cicou---a-to-s----","ki-ou---a-t--s----");
    @chaines = ("ki-o----a-tous", #ki-o-atous
                "cicou---a-to-s", #cicouato-s
                "ki-ou---a-t--s", #ki-ouat--s
                "ki-o----a-to-s", #ki-o-ato-s
                "c-cou---a-to-s", #c-couato-s
                "k-kou---a-tous");#k-kouatous
     
    my @results = b(@chaines);
    map { $_ x= $multiplier } @results;
     
    sub check {
      my (@chaines) = @_;
     
      return !pairwise { $a ne $a } @results, @chaines;
    }
     
    map { $_ x= $multiplier } @chaines;
     
    sub a {
      my @chaine = @_;
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @new_chaine = @chaine;
      foreach my $chaine (@new_chaine) {
        #$chaine =~ s/($parasite_re)/(grep { print STDERR "_=$_, pos=".pos($chaine)." len=".length($1)."\n"; substr($_, pos($chaine), length($1)) ne $1 } @chaine) ? $1 : ""/ge;
        $chaine =~ s/($parasite_re)/(grep { substr($_, pos($chaine), length($1)) ne $1 } @chaine) ? $1 : ""/ge;
      }
      return @new_chaine;
    }
     
    sub aa {
      my @chaine = @_;
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @new_chaine = @chaine;
      foreach my $chaine (@new_chaine) {
        $chaine =~ s/($parasite_re)/my $equal = 1; foreach(@chaine) { do { $equal = 0; last } if substr($_, pos($chaine), length($1)) ne $1 } $equal ? "" : $1/ge;
      }
      return @new_chaine;
    }
     
    sub aaa {
      my @chaine = @_;
     
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @parasite;
      my $ref = shift @chaine;
      while ($ref =~ /($parasite_re)/g) {
        my ($pos, $len) = (pos($ref) - length($1), length($1));
        unshift @parasite, [ $pos, $len ]  if !grep { substr($_, $pos, $len) ne $1 } @chaine;
      }
      unshift @chaine, $ref;
      #print Data::Dumper->Dump([\@parasite], [qw(*parasite)]);
      foreach my $parasite (@parasite) {
        foreach my $chaine (@chaine) {
          substr($chaine, $parasite->[0], $parasite->[1], "");
        }
      }
      return @chaine;
    }
     
    sub aaaa {
      my @chaine = @_;
     
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @parasite;
      my $ref = shift @chaine;
      while ($ref =~ /($parasite_re)/g) {
        my ($pos, $len) = (pos($ref) - length($1), length($1));
        my $all_equal = 1;
        foreach (@chaine) {
          do { $all_equal = 0; last } if substr($_, $pos, $len) ne $1
        }
        unshift @parasite, [ $pos, $len ]  if $all_equal;
      }
      unshift @chaine, $ref;
      #print Data::Dumper->Dump([\@parasite], [qw(*parasite)]);
      foreach my $parasite (@parasite) {
        foreach my $chaine (@chaine) {
          substr($chaine, $parasite->[0], $parasite->[1], "");
        }
      }
      return @chaine;
    }
     
    sub b {
      my @tab  = @_;
      my $ref  = shift (@tab);
      while ($ref =~ /(-)/g) {
        my $i = 0;
        my $lg   = length $1;
        my $pos  = pos($ref) - $lg;
        my $tmp  = substr($ref,$pos,$lg);
     
        foreach my $el (@tab) {
          my $tmp_el = substr($el,$pos,$lg);
          $i++ if ($tmp eq $tmp_el);
        }
        if ($i == scalar @tab) {
          substr($ref,$pos,$lg,"");
          foreach my $el (@tab) {
            substr($el,$pos,$lg,"");
          }
        }
      }
      unshift(@tab, $ref);
      return @tab;
    }
     
    do {
      a(@chaines);
      aa(@chaines);
      aaa(@chaines);
      aaaa(@chaines);
      b(@chaines);
    } foreach 0 .. (10000 / $multiplier);
     
    use Test::More tests => 5;
     
    if (length $results[0] < 80) {
      print "a:\n", join "\n", a(@chaines), "\n";
      print "aa:\n", join "\n", aa(@chaines), "\n";
      print "aaa:\n", join "\n", aaa(@chaines), "\n";
      print "aaaa:\n", join "\n", aaaa(@chaines), "\n";
      print "b:\n", join "\n", b(@chaines), "\n";
    }
    ok(check(a(@chaines)), "a algo");
    ok(check(aa(@chaines)), "aa algo");
    ok(check(aaa(@chaines)), "aaa algo");
    ok(check(aaaa(@chaines)), "aaaa algo");
    ok(check(b(@chaines)), "b algo");
    Ensuite, la commande bash pour le lancer :
    $ rm profilage.txt ; for f in 1 10 100 1000; do perl -d:DProf suppress_common.pl $f ; (printf "\nRESULTATS POUR $f\n";dprofpp -I) >> profilage.txt ; done
    et pour finir, le résultat :
    Code txt : 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
    RESULTATS POUR 1
    Total Elapsed Time = 8.702232 Seconds
      User+System Time = 8.563232 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     40.0   3.420  3.428  10003   0.0003 0.0003  main::aa
     32.1   2.779  2.755  10003   0.0003 0.0003  main::a
     14.4   1.241  1.241  10004   0.0001 0.0001  main::b
     10.1   0.845  0.868  10003   0.0001 0.0001  main::aaaa
     8.69   0.737  0.744  10003   0.0001 0.0001  main::aaa
     0.72   0.047  0.062      5   0.0094 0.0125  main::BEGIN
     0.19   0.016  0.016  40012   0.0000 0.0000  Regexp::DESTROY
     0.19   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.19       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.18   0.015  0.015      6   0.0025 0.0025  Test::Builder::_print
     0.16       -  0.014      5        - 0.0029  Test::Builder::ok
     0.16       -  0.014      5        - 0.0029  Test::More::ok
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  warnings::import
     
    RESULTATS POUR 10
    Total Elapsed Time = 9.478993 Seconds
      User+System Time = 9.346993 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     36.6   3.428  3.428   1003   0.0034 0.0034  main::b
     28.1   2.630  2.628   1002   0.0026 0.0026  main::aa
     21.7   2.036  2.034   1002   0.0020 0.0020  main::a
     6.77   0.619  0.633   1002   0.0006 0.0006  main::aaaa
     6.76   0.634  0.632   1002   0.0006 0.0006  main::aaa
     0.83   0.062  0.078      5   0.0124 0.0155  main::BEGIN
     0.17   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.17       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.11   0.010  0.010   4008   0.0000 0.0000  Regexp::DESTROY
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  List::MoreUtils::bootstrap
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     0.00       - -0.000      1        -      -  Exporter::export
     0.00       - -0.000      1        -      -  warnings::unimport
     
    RESULTATS POUR 100
    Total Elapsed Time = 33.28421 Seconds
      User+System Time = 33.07021 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     82.7   27.35 27.358    103   0.2656 0.2656  main::b
     7.18   2.374  2.374    102   0.0233 0.0233  main::aa
     5.77   1.907  1.907    102   0.0187 0.0187  main::a
     2.21   0.732  0.732    102   0.0072 0.0072  main::aaa
     1.94   0.641  0.641    102   0.0063 0.0063  main::aaaa
     0.23   0.062  0.077      5   0.0124 0.0154  main::BEGIN
     0.05   0.016  0.016      7   0.0023 0.0023  Test::Builder::BEGIN
     0.05       -  0.016      2        - 0.0079  Test::Builder::Module::BEGIN
     0.05       -  0.016      5        - 0.0031  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  warnings::unimport
     0.00       - -0.000      1        -      -  bytes::import
     0.00       - -0.000      1        -      -  version::(bool
     0.00       - -0.000      1        -      -  version::(cmp
     
    RESULTATS POUR 1000
    Total Elapsed Time = 323.2286 Seconds
      User+System Time = 320.9036 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     97.6   313.2 313.21     13   24.093 24.093  main::b
     0.91   2.906  2.906     12   0.2422 0.2422  main::aa
     0.69   2.219  2.219     12   0.1849 0.1849  main::a
     0.41   1.311  1.311     12   0.1092 0.1092  main::aaaa
     0.37   1.189  1.189     12   0.0991 0.0991  main::aaa
     0.02   0.015  0.078      5   0.0030 0.0155  main::BEGIN
     0.00   0.016  0.016      4   0.0040 0.0040  Data::Dumper::BEGIN
     0.00       -  0.016      8        - 0.0020  Config::FETCH
     0.00   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.00       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.00   0.015  0.015      1   0.0150 0.0150  Exporter::as_heavy
     0.00       -  0.015      1        - 0.0150  Test::Builder::Module::__ANON__
     0.00       -  0.015      2        - 0.0075  Test::Builder::Module::import
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  19. #39
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    J'ai refait des essais plus complets en faisant varier à la fois le nombre de chaine (n) et leur taille (ce qui a une incidence sur le nombre d'occurrence de caractères parasites p), et voici le nouveau code du script, comment l'appeler et le nouveau résultat.
    J'ai noté l'ordre de complexité que j'ai estimé dans les résultats des tests.
    Autant je comprends à peu près les résultats expérimentaux obtenus pour les algos en a, autant je comprends pas les résultats pour l'algo b, qui sont catastrophiques avec l'augmentation de p.

    Jedai, aurais-tu une idée ou une correction à apporter sur les ordres de complexité ?

    Code perl : 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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    #!/usr/bin/perl
     
    use strict;
    use warnings;
     
    use Data::Dumper;
    use List::MoreUtils qw(pairwise);
     
    my $multiplier = $ARGV[0] // 100;
    my $nb_chaine  = $ARGV[1] // 6;
    $nb_chaine = 2 if $nb_chaine < 2;
     
    my @chaines = ("Bonjourvvv je vais bien", "Bonjourvvv tu vas  bien", "Bonjourvvv nous allons bien");
    @chaines = ("ki-ou---a-tous----","cicou---a-to-s----","ki-ou---a-t--s----");
    @chaines = ("ki-o----a-tous", #ki-o-atous
                "cicou---a-to-s", #cicouato-s
                "ki-ou---a-t--s", #ki-ouat--s
                "ki-o----a-to-s", #ki-o-ato-s
                "c-cou---a-to-s", #c-couato-s
                "k-kou---a-tous");#k-kouatous
     
    splice @chaines, $nb_chaine;
     
    my @results = b(@chaines);
    map { $_ x= $multiplier } @results;
     
    sub check {
      my (@chaines) = @_;
     
      return !pairwise { $a ne $a } @results, @chaines;
    }
     
    map { $_ x= $multiplier } @chaines;
     
    sub a {
      my @chaine = @_;
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @new_chaine = @chaine;
      foreach my $chaine (@new_chaine) {
        #$chaine =~ s/($parasite_re)/(grep { print STDERR "_=$_, pos=".pos($chaine)." len=".length($1)."\n"; substr($_, pos($chaine), length($1)) ne $1 } @chaine) ? $1 : ""/ge;
        $chaine =~ s/($parasite_re)/(grep { substr($_, pos($chaine), length($1)) ne $1 } @chaine) ? $1 : ""/ge;
      }
      return @new_chaine;
    }
     
    sub aa {
      my @chaine = @_;
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @new_chaine = @chaine;
      foreach my $chaine (@new_chaine) {
        $chaine =~ s/($parasite_re)/my $equal = 1; foreach(@chaine) { do { $equal = 0; last } if substr($_, pos($chaine), length($1)) ne $1 } $equal ? "" : $1/ge;
      }
      return @new_chaine;
    }
     
    sub aaa {
      my @chaine = @_;
     
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @parasite;
      my $ref = shift @chaine;
      while ($ref =~ /($parasite_re)/g) {
        my ($pos, $len) = (pos($ref) - length($1), length($1));
        unshift @parasite, [ $pos, $len ]  if !grep { substr($_, $pos, $len) ne $1 } @chaine;
      }
      unshift @chaine, $ref;
      #print Data::Dumper->Dump([\@parasite], [qw(*parasite)]);
      foreach my $parasite (@parasite) {
        foreach my $chaine (@chaine) {
          substr($chaine, $parasite->[0], $parasite->[1], "");
        }
      }
      return @chaine;
    }
     
    sub aaaa {
      my @chaine = @_;
     
      my $parasite = quotemeta "-";
      my $parasite_re = qr/${parasite}/;
     
      my @parasite;
      my $ref = shift @chaine;
      while ($ref =~ /($parasite_re)/g) {
        my ($pos, $len) = (pos($ref) - length($1), length($1));
        my $all_equal = 1;
        foreach (@chaine) {
          do { $all_equal = 0; last } if substr($_, $pos, $len) ne $1
        }
        unshift @parasite, [ $pos, $len ]  if $all_equal;
      }
      unshift @chaine, $ref;
      #print Data::Dumper->Dump([\@parasite], [qw(*parasite)]);
      foreach my $parasite (@parasite) {
        foreach my $chaine (@chaine) {
          substr($chaine, $parasite->[0], $parasite->[1], "");
        }
      }
      return @chaine;
    }
     
    sub b {
      my @tab  = @_;
      my $ref  = shift (@tab);
      while ($ref =~ /(-)/g) {
        my $i = 0;
        my $lg   = length $1;
        my $pos  = pos($ref) - $lg;
        my $tmp  = substr($ref,$pos,$lg);
     
        foreach my $el (@tab) {
          my $tmp_el = substr($el,$pos,$lg);
          $i++ if ($tmp eq $tmp_el);
        }
        if ($i == scalar @tab) {
          substr($ref,$pos,$lg,"");
          foreach my $el (@tab) {
            substr($el,$pos,$lg,"");
          }
        }
      }
      unshift(@tab, $ref);
      return @tab;
    }
     
    do {
      a(@chaines);
      aa(@chaines);
      aaa(@chaines);
      aaaa(@chaines);
      b(@chaines);
    } foreach 0 .. (10000 / $multiplier);
     
    use Test::More tests => 5;
     
    if (length $results[0] < 80) {
      print "a:\n", join "\n", a(@chaines), "\n";
      print "aa:\n", join "\n", aa(@chaines), "\n";
      print "aaa:\n", join "\n", aaa(@chaines), "\n";
      print "aaaa:\n", join "\n", aaaa(@chaines), "\n";
      print "b:\n", join "\n", b(@chaines), "\n";
    }
    printf("n : nombre de chaine, p : nombre d'occurence de parasite\n");
    ok(check(a(@chaines)), "a algo d'ordre o(n.n.p)");
    ok(check(aa(@chaines)), "aa algo d'ordre o(n.n.p)");
    ok(check(aaa(@chaines)), "aaa algo d'ordre o(2.n.p)");
    ok(check(aaaa(@chaines)), "aaaa algo d'ordre o(2.n.p)");
    ok(check(b(@chaines)), "b algo d'ordre o(2.n.p)");

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    $ rm profilage.txt ; for n in 2 3 4 5 6; do for f in 1 10 100 1000; do perl -d:DProf suppress_common.pl $f $n ; (printf "\nRESULTATS POUR $n chaine de taille $f x 14\n";dprofpp -I) | tee -a profilage.txt ; done ; done

    Code text : 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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    RESULTATS POUR 2 chaine de taille 1 x 14
    Total Elapsed Time = 2.996757 Seconds
      User+System Time = 2.773757 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     35.3   0.979  0.979  10004   0.0001 0.0001  main::b
     24.8   0.706  0.689  10003   0.0001 0.0001  main::aa
     23.6   0.656  0.656  10003   0.0001 0.0001  main::aaaa
     21.4   0.626  0.594  10003   0.0001 0.0001  main::aaa
     19.0   0.560  0.528  10003   0.0001 0.0001  main::a
     2.78   0.062  0.077      5   0.0124 0.0154  main::BEGIN
     0.58   0.016  0.016      7   0.0023 0.0023  Test::Builder::BEGIN
     0.58       -  0.016      2        - 0.0079  Test::Builder::Module::BEGIN
     0.58       -  0.016      5        - 0.0031  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::exported_to
     0.00       - -0.000      1        -      -  warnings::import
     0.00       - -0.000      1        -      -  bytes::import
     0.00       - -0.000      1        -      -  Data::Dumper::bootstrap
     
    RESULTATS POUR 2 chaine de taille 10 x 14
    Total Elapsed Time = 4.206113 Seconds
      User+System Time = 4.160113 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     54.9   2.285  2.285   1003   0.0023 0.0023  main::b
     14.8   0.619  0.616   1002   0.0006 0.0006  main::aaaa
     14.2   0.578  0.591   1002   0.0006 0.0006  main::aa
     8.46   0.355  0.352   1002   0.0004 0.0004  main::aaa
     8.05   0.323  0.335   1002   0.0003 0.0003  main::a
     1.85   0.031  0.077      5   0.0062 0.0154  main::BEGIN
     0.75   0.015  0.031      5   0.0030 0.0061  Test::More::BEGIN
     0.46   0.019  0.019   4008   0.0000 0.0000  Regexp::DESTROY
     0.38   0.016  0.016      2   0.0080 0.0080  DynaLoader::BEGIN
     0.38   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  warnings::unimport
     0.00       - -0.000      1        -      -  version::(bool
     
    RESULTATS POUR 2 chaine de taille 100 x 14
    Total Elapsed Time = 20.89004 Seconds
      User+System Time = 20.62004 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     91.3   18.84 18.845    103   0.1830 0.1830  main::b
     2.82   0.581  0.581    102   0.0057 0.0057  main::aa
     2.18   0.450  0.450    102   0.0044 0.0044  main::aaaa
     2.10   0.433  0.433    102   0.0042 0.0042  main::aaa
     1.23   0.253  0.253    102   0.0025 0.0025  main::a
     0.38   0.063  0.078      5   0.0126 0.0155  main::BEGIN
     0.07   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.07       -  0.015      5        - 0.0030  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  Data::Dumper::bootstrap
     0.00       - -0.000      1        -      -  version::(bool
     0.00       - -0.000      1        -      -  version::(cmp
     0.00       - -0.000      1        -      -  Config::TIEHASH
     
    RESULTATS POUR 2 chaine de taille 1000 x 14
    Total Elapsed Time = 219.7980 Seconds
      User+System Time = 218.1380 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     98.9   215.7 215.73     13   16.594 16.594  main::b
     0.35   0.767  0.767     12   0.0639 0.0639  main::aaaa
     0.29   0.643  0.643     12   0.0536 0.0536  main::aaa
     0.27   0.593  0.593     12   0.0494 0.0494  main::aa
     0.14   0.311  0.311     12   0.0259 0.0259  main::a
     0.04   0.062  0.093      5   0.0124 0.0187  main::BEGIN
     0.01       -  0.016      1        - 0.0160  Test::Builder::Module::__ANON__
     0.01       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.01   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.01       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  Test::More::import_extra
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     
    RESULTATS POUR 3 chaine de taille 1 x 14
    Total Elapsed Time = 4.424339 Seconds
      User+System Time = 4.357339 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     35.4   1.521  1.544  10003   0.0002 0.0002  main::aa
     22.6   0.996  0.988  10003   0.0001 0.0001  main::a
     19.2   0.830  0.838  10003   0.0001 0.0001  main::aaaa
     19.2   0.837  0.837  10004   0.0001 0.0001  main::b
     14.5   0.623  0.632  10003   0.0001 0.0001  main::aaa
     1.77   0.046  0.077      5   0.0092 0.0155  main::BEGIN
     0.73   0.032  0.032  40012   0.0000 0.0000  Regexp::DESTROY
     0.37   0.016  0.016      2   0.0080 0.0080  DynaLoader::BEGIN
     0.37   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.37       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.32   0.015  0.014      5   0.0030 0.0029  Test::Builder::ok
     0.32       -  0.014      5        - 0.0029  Test::More::ok
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::More::import_extra
     
    RESULTATS POUR 3 chaine de taille 10 x 14
    Total Elapsed Time = 5.378039 Seconds
      User+System Time = 5.346039 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     54.0   2.889  2.889   1003   0.0029 0.0029  main::b
     17.6   0.946  0.944   1002   0.0009 0.0009  main::aa
     11.9   0.641  0.639   1002   0.0006 0.0006  main::a
     8.98   0.482  0.480   1002   0.0005 0.0005  main::aaaa
     6.92   0.372  0.370   1002   0.0004 0.0004  main::aaa
     1.46   0.048  0.078      5   0.0096 0.0155  main::BEGIN
     0.28   0.015  0.015      4   0.0037 0.0037  Data::Dumper::BEGIN
     0.28   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.28       -  0.015      5        - 0.0030  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  List::MoreUtils::bootstrap
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     0.00       - -0.000      1        -      -  Exporter::export
     
    RESULTATS POUR 3 chaine de taille 100 x 14
    Total Elapsed Time = 24.21103 Seconds
      User+System Time = 24.01203 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     88.8   21.32 21.325    103   0.2070 0.2070  main::b
     4.16   0.999  0.999    102   0.0098 0.0098  main::aa
     2.69   0.646  0.646    102   0.0063 0.0063  main::aaaa
     2.35   0.564  0.564    102   0.0055 0.0055  main::a
     1.55   0.372  0.372    102   0.0036 0.0036  main::aaa
     0.32   0.016  0.078      5   0.0032 0.0155  main::BEGIN
     0.07   0.016  0.016      4   0.0040 0.0040  warnings::register::mkMask
     0.07       -  0.016      1        - 0.0160  overload::BEGIN
     0.07       -  0.016      2        - 0.0080  warnings::register::import
     0.07       -  0.016      8        - 0.0020  Config::FETCH
     0.07   0.016  0.016     20   0.0008 0.0008  Test::Builder::_try
     0.07       -  0.016     10        - 0.0016  Test::Builder::_unoverload
     0.07       -  0.016     10        - 0.0016  Test::Builder::_unoverload_str
     0.07       -  0.016      5        - 0.0031  Test::Builder::ok
     0.07       -  0.016      5        - 0.0031  Test::More::ok
     
    RESULTATS POUR 3 chaine de taille 1000 x 14
    Total Elapsed Time = 251.5120 Seconds
      User+System Time = 248.4510 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     98.5   244.9 244.90     13   18.839 18.839  main::b
     0.44   1.094  1.094     12   0.0912 0.0912  main::aa
     0.36   0.904  0.904     12   0.0753 0.0753  main::aaaa
     0.32   0.797  0.797     12   0.0664 0.0664  main::aaa
     0.26   0.656  0.656     12   0.0547 0.0547  main::a
     0.03   0.047  0.077      5   0.0094 0.0155  main::BEGIN
     0.01   0.016  0.016      1   0.0160 0.0160  Exporter::as_heavy
     0.01       -  0.016      1        - 0.0160  Test::Builder::Module::__ANON__
     0.01       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.01   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.01       -  0.015      5        - 0.0030  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  Test::More::import_extra
     
    RESULTATS POUR 4 chaine de taille 1 x 14
    Total Elapsed Time = 5.829730 Seconds
      User+System Time = 5.805730 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     40.0   2.323  2.324  10003   0.0002 0.0002  main::aa
     25.6   1.503  1.488  10003   0.0002 0.0001  main::a
     17.2   1.000  1.000  10004   0.0001 0.0001  main::b
     13.4   0.795  0.780  10003   0.0001 0.0001  main::aaa
     10.8   0.631  0.631  10003   0.0001 0.0001  main::aaaa
     1.33   0.062  0.077      5   0.0124 0.0154  main::BEGIN
     0.28   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.28       -  0.016      5        - 0.0031  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  warnings::unimport
     0.00       - -0.000      1        -      -  version::(bool
     0.00       - -0.000      1        -      -  version::(cmp
     0.00       - -0.000      1        -      -  Config::AUTOLOAD
     
    RESULTATS POUR 4 chaine de taille 10 x 14
    Total Elapsed Time = 6.713003 Seconds
      User+System Time = 6.598003 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     45.1   2.978  2.978   1003   0.0030 0.0030  main::b
     24.0   1.588  1.586   1002   0.0016 0.0016  main::aa
     15.0   0.996  0.994   1002   0.0010 0.0010  main::a
     10.3   0.684  0.682   1002   0.0007 0.0007  main::aaaa
     5.62   0.373  0.371   1002   0.0004 0.0004  main::aaa
     1.17   0.046  0.077      5   0.0092 0.0155  main::BEGIN
     0.24   0.016  0.016      2   0.0080 0.0080  DynaLoader::BEGIN
     0.24   0.016  0.016      5   0.0032 0.0032  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  Test::More::import_extra
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     0.00       - -0.000      1        -      -  bytes::import
     0.00       - -0.000      1        -      -  Data::Dumper::bootstrap
     
    RESULTATS POUR 4 chaine de taille 100 x 14
    Total Elapsed Time = 27.07727 Seconds
      User+System Time = 26.90127 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     86.5   23.28 23.282    103   0.2260 0.2260  main::b
     5.28   1.422  1.421    102   0.0139 0.0139  main::aa
     3.77   1.016  1.015    102   0.0100 0.0100  main::a
     2.43   0.655  0.654    102   0.0064 0.0064  main::aaaa
     1.74   0.469  0.468    102   0.0046 0.0046  main::aaa
     0.29   0.047  0.077      5   0.0094 0.0155  main::BEGIN
     0.06   0.016  0.016      1   0.0160 0.0160  Exporter::as_heavy
     0.06       -  0.016      1        - 0.0160  Test::Builder::Module::__ANON__
     0.06       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.06   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.06       -  0.015      5        - 0.0030  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::More::import_extra
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     
    RESULTATS POUR 4 chaine de taille 1000 x 14
    Total Elapsed Time = -186764. Seconds
      User+System Time =        0 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       -      -      1        -      -  bytes::import
     0.00       -      -      1        -      -  Data::Dumper::bootstrap
     0.00       -      -      1        -      -  version::(bool
     0.00       -      -      1        -      -  version::(cmp
     0.00       -      -      1        -      -  Config::TIEHASH
     0.00       -      -      1        -      -  Config::AUTOLOAD
     0.00       -      -      2        -      -  Config::fetch_string
     0.00       -      -      1        -      -  DynaLoader::dl_load_flags
     0.00       -      -      1        -      -  warnings::import
     0.00       -      -      1        -      -  List::MoreUtils::bootstrap
     0.00       -      -      1        -      -  Test::Builder::_open_testhandles
     0.00       -      -      1        -      -  Test::Builder::exported_to
     0.00       -      -      1        -      -  Test::More::import_extra
     
    RESULTATS POUR 5 chaine de taille 1 x 14
    Total Elapsed Time = 8.221216 Seconds
      User+System Time = 8.161216 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     32.2   2.579  2.633  10003   0.0003 0.0003  main::aa
     31.2   2.563  2.554  10003   0.0003 0.0003  main::a
     15.2   1.247  1.247  10004   0.0001 0.0001  main::b
     13.9   1.114  1.137  10003   0.0001 0.0001  main::aaaa
     11.9   0.968  0.975  10003   0.0001 0.0001  main::aaa
     1.34   0.047  0.109      5   0.0094 0.0219  main::BEGIN
     0.92   0.075  0.075  40012   0.0000 0.0000  Regexp::DESTROY
     0.38   0.015  0.031      5   0.0030 0.0062  Test::More::BEGIN
     0.20   0.016  0.016      1   0.0160 0.0160  Exporter::as_heavy
     0.20   0.016  0.016      8   0.0020 0.0020  Config::FETCH
     0.20       -  0.016      1        - 0.0159  Test::Builder::Module::__ANON__
     0.20       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.20   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     
    RESULTATS POUR 5 chaine de taille 10 x 14
    Total Elapsed Time = 8.710980 Seconds
      User+System Time = 8.688980 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     37.5   3.263  3.263   1003   0.0033 0.0033  main::b
     25.6   2.229  2.227   1002   0.0022 0.0022  main::aa
     20.7   1.792  1.805   1002   0.0018 0.0018  main::a
     8.21   0.715  0.713   1002   0.0007 0.0007  main::aaaa
     7.11   0.620  0.618   1002   0.0006 0.0006  main::aaa
     1.08   0.047  0.094      5   0.0094 0.0189  main::BEGIN
     0.37   0.016  0.032      5   0.0032 0.0064  Test::More::BEGIN
     0.18   0.016  0.016      1   0.0160 0.0160  Exporter::as_heavy
     0.18       -  0.016      1        - 0.0160  Test::Builder::Module::__ANON__
     0.18       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.18   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.17   0.015  0.015     20   0.0007 0.0007  Test::Builder::_try
     0.17       -  0.015     10        - 0.0015  Test::Builder::_unoverload
     0.17       -  0.015     10        - 0.0015  Test::Builder::_unoverload_str
     0.16       -  0.014      5        - 0.0029  Test::Builder::ok
     
    RESULTATS POUR 5 chaine de taille 100 x 14
    Total Elapsed Time = 31.28524 Seconds
      User+System Time = 31.04024 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     84.2   26.14 26.141    103   0.2538 0.2538  main::b
     6.84   2.124  2.123    102   0.0208 0.0208  main::aa
     4.93   1.515  1.529    102   0.0148 0.0150  main::a
     1.96   0.610  0.609    102   0.0060 0.0060  main::aaaa
     1.86   0.579  0.578    102   0.0057 0.0057  main::aaa
     0.30   0.063  0.093      5   0.0126 0.0187  main::BEGIN
     0.05   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.05       -  0.016      5        - 0.0032  Test::More::BEGIN
     0.05   0.015  0.015      3   0.0050 0.0050  Exporter::import
     0.05       -  0.015      4        - 0.0037  Data::Dumper::BEGIN
     0.05   0.014  0.014    408   0.0000 0.0000  Regexp::DESTROY
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::More::import_extra
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     
    RESULTATS POUR 5 chaine de taille 1000 x 14
    Total Elapsed Time = 314.0599 Seconds
      User+System Time = 309.7169 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     97.8   303.1 303.11     13   23.316 23.316  main::b
     0.78   2.423  2.423     12   0.2019 0.2019  main::aa
     0.56   1.736  1.736     12   0.1447 0.1447  main::a
     0.40   1.233  1.233     12   0.1027 0.1027  main::aaaa
     0.36   1.108  1.108     12   0.0923 0.0923  main::aaa
     0.03   0.016  0.078      5   0.0032 0.0157  main::BEGIN
     0.01   0.032  0.032      4   0.0080 0.0080  Data::Dumper::BEGIN
     0.01   0.016  0.016      2   0.0080 0.0080  DynaLoader::BEGIN
     0.00   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.00       -  0.015      5        - 0.0030  Test::More::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  Test::More::import_extra
     0.00       - -0.000      1        -      -  Test::Builder::Module::_strip_impo
                                         0.0000  rts
     
    RESULTATS POUR 6 chaine de taille 1 x 14
    Total Elapsed Time = 9.790230 Seconds
      User+System Time = 9.680230 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     36.2   3.487  3.510  10003   0.0003 0.0004  main::aa
     33.2   3.208  3.216  10003   0.0003 0.0003  main::a
     15.8   1.538  1.538  10004   0.0002 0.0002  main::b
     11.7   1.112  1.135  10003   0.0001 0.0001  main::aaaa
     7.88   0.756  0.763  10003   0.0001 0.0001  main::aaa
     0.95   0.062  0.092      5   0.0124 0.0185  main::BEGIN
     0.65   0.063  0.063  40012   0.0000 0.0000  Regexp::DESTROY
     0.32   0.016  0.031      5   0.0032 0.0062  Test::More::BEGIN
     0.15   0.015  0.015      2   0.0075 0.0074  Test::Builder::Module::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     0.00       - -0.000      1        -      -  warnings::import
     0.00       - -0.000      1        -      -  bytes::import
     0.00       - -0.000      1        -      -  Data::Dumper::bootstrap
     
    RESULTATS POUR 6 chaine de taille 10 x 14
    Total Elapsed Time = 9.958015 Seconds
      User+System Time = 9.816015 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     37.8   3.713  3.713   1003   0.0037 0.0037  main::b
     25.6   2.524  2.520   1002   0.0025 0.0025  main::aa
     21.8   2.149  2.145   1002   0.0021 0.0021  main::a
     8.03   0.792  0.788   1002   0.0008 0.0008  main::aaaa
     6.67   0.659  0.655   1002   0.0007 0.0007  main::aaa
     0.95   0.047  0.093      5   0.0094 0.0186  main::BEGIN
     0.16   0.016  0.016      1   0.0160 0.0159  Exporter::as_heavy
     0.16       -  0.016      1        - 0.0159  Test::Builder::Module::__ANON__
     0.16       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.16   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.16       -  0.016      5        - 0.0031  Test::More::BEGIN
     0.15       -  0.015      8        - 0.0019  Config::FETCH
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::Builder::_my_exit
     
    RESULTATS POUR 6 chaine de taille 100 x 14
    Total Elapsed Time = 35.57522 Seconds
      User+System Time = 34.93222 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     82.1   28.69 28.690    103   0.2785 0.2785  main::b
     7.38   2.580  2.579    102   0.0253 0.0253  main::aa
     6.15   2.150  2.149    102   0.0211 0.0211  main::a
     2.14   0.749  0.748    102   0.0073 0.0073  main::aaa
     1.88   0.659  0.658    102   0.0065 0.0065  main::aaaa
     0.27   0.032  0.094      5   0.0064 0.0189  main::BEGIN
     0.09   0.015  0.031      5   0.0030 0.0062  Test::More::BEGIN
     0.05   0.016  0.016      4   0.0040 0.0040  Data::Dumper::BEGIN
     0.05   0.016  0.016      1   0.0160 0.0160  Exporter::as_heavy
     0.05       -  0.016      1        - 0.0160  Test::Builder::Module::__ANON__
     0.05       -  0.016      2        - 0.0079  Test::Builder::Module::import
     0.05   0.016  0.016      2   0.0080 0.0079  Test::Builder::Module::BEGIN
     0.00   0.000  0.000      1   0.0000 0.0000  Config::launcher
     0.00   0.000  0.000      1   0.0000 0.0000  Exporter::Heavy::heavy_export
     0.00       - -0.000      1        -      -  Test::More::import_extra
     
    RESULTATS POUR 6 chaine de taille 1000 x 14
    Total Elapsed Time = 337.6092 Seconds
      User+System Time = 332.5772 Seconds
    Inclusive Times
    %Time ExclSec CumulS #Calls sec/call Csec/c  Name
     97.5   324.5 324.54     13   24.965 24.965  main::b
     0.89   2.954  2.954     12   0.2462 0.2462  main::aa
     0.68   2.265  2.265     12   0.1887 0.1887  main::a
     0.41   1.375  1.375     12   0.1146 0.1146  main::aaaa
     0.38   1.280  1.280     12   0.1067 0.1067  main::aaa
     0.03   0.047  0.094      5   0.0094 0.0188  main::BEGIN
     0.00   0.016  0.016      6   0.0027 0.0027  Test::Builder::_print
     0.00       -  0.016      8        - 0.0020  Config::FETCH
     0.00   0.016  0.016      3   0.0053 0.0053  List::MoreUtils::BEGIN
     0.00   0.016  0.016      5   0.0032 0.0032  List::MoreUtils::pairwise
     0.00       -  0.016      5        - 0.0032  main::check
     0.00       -  0.016      5        - 0.0032  Test::Builder::ok
     0.00       -  0.016      5        - 0.0032  Test::More::ok
     0.00   0.015  0.015      2   0.0075 0.0075  Test::Builder::Module::BEGIN
     0.00       -  0.015      5        - 0.0030  Test::More::BEGIN
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  20. #40
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Cette semaine je suis blindée de réunions donc je n'ai pas le temps de me replonger dans mon code mais dès la semaine prochaine je m'y remet et dirais si j'ai vu quelque chose ou trouvé quelque chose. Viendrais voir si de nouvelles idées sont apparut ici

Discussions similaires

  1. Supprimer des caractères d'une chaine
    Par femtoserv dans le forum Access
    Réponses: 6
    Dernier message: 26/02/2007, 10h24
  2. [Tableaux] Supprimer des caractères dans une chaine
    Par ddubois dans le forum Langage
    Réponses: 10
    Dernier message: 16/12/2006, 13h53
  3. Supprimer des caractères.
    Par benitoelputoamo dans le forum Général Python
    Réponses: 2
    Dernier message: 30/10/2006, 20h17
  4. [Système] supprimer des caractères avec preg_replace
    Par Fritzoune dans le forum Langage
    Réponses: 3
    Dernier message: 02/10/2006, 13h59
  5. [VB6] Supprimer des caractères d'une chaine
    Par Overflow64 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/10/2005, 10h26

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