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] personnaliser le tri


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 54
    Points
    54
    Par défaut [langage] personnaliser le tri
    Bonjour!

    voilà ma liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @liste=qw(a d b f é à c);
    Je voudrais trier cette liste de manière lexicographique, pour obtenir
    Je sais qu'il y a le tri asciibetique en perl, mais ce n'est pas ce que je veux, puisqu'il me mettrait 'à' et 'é' en fin de liste.

    Bien-sûr je peux toujours remplacer 'à' et 'é' par 'a' et 'e', mais je cherche une meilleure solution.
    Ce que je voudrais c'est définir exactement l'ordre à utiliser et que la fonction sort et les opérateurs gt, lt utilisent cet ordre.

    Une idée ?

  2. #2
    En attente de confirmation mail
    Inscrit en
    Mars 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    tu peux toujours essayer de définir une routine de tri:
    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
     
    #!/usr/bin/perl
     
    use strict;
     
    my @list = ('e', 'a', 'é', 'è', 'à');
     
    sub tri {
        my %hash_tri = ();
        $hash_tri{'a'} = 1;
        $hash_tri{'à'} = 2;
        $hash_tri{'e'} = 3;
        $hash_tri{'é'} = 4;
        $hash_tri{'è'} = 5;
     
        $hash_tri{$a} <=> $hash_tri{$b};
    }
     
    my @list_tri = sort tri @list;
     
     
    print STDERR "non trié: @list\n";
    print STDERR "trié: @list_tri\n";
    par contre, cela oblige de définir l'ordre de tous les caractères qu'on est susceptible de rencontrer.

  3. #3
    Expert éminent
    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
    Points : 8 586
    Points
    8 586
    Par défaut
    A priori, un petit "use locale;" au début de ton script pourrait t'aider, sinon si ta locale est mal configurée, tu devras te plonger un peu plus avant dans les arcanes du système de gestion des locales perl.
    Pour le sort, tu pourrais toujours utiliser une fonction de tri, je suppose que tu sais comment faire ??

    --
    Jedaï

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Points : 54
    Points
    54
    Par défaut
    Avec "use locale", ca marche nickel.
    Je vois pas trop pourquoi, ni comment mais ca me trie bien tout comme je veux.
    Merci beaucoup.

    Merci aussi pour la routine de tri, ca pourra toujours me servir.

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

Discussions similaires

  1. [ListView] ListView personnalisée avec tri alphabétique
    Par Nuzei dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 02/03/2011, 12h14
  2. [langage] hash et tri
    Par perlaud dans le forum Langage
    Réponses: 4
    Dernier message: 20/09/2004, 16h17
  3. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38

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