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 :

Trier par ordre alphabétique des chaînes comportant des caractères accentués


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut Trier par ordre alphabétique des chaînes comportant des caractères accentués
    J'aimerais comprendre comment on peut trier des chaines avec éèçàï. Alors j'ai écris un bout de code, mais la sortie est incohérente pour moi. J'aurais donc besoin de vos conseils.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
     
    my @liste = qw/cales abricot entonnoir couchette aïd arrosoir caleçon élève zozo/ ;
     
    print join (' ' , ( sort @liste )) . "\n";
     
    use locale ;
    print "use locale\n" ;
    print join (' ' , ( sort @liste )) . "\n" ;
    et la sortie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    aïd abricot élève arrosoir caleçon cales couchette entonnoir zozo
    Alors que je désire obtenir cet ordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    abricot aïd arrosoir caleçon cales couchette élève entonnoir zozo
    Merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Je me réponds à moi-même. Voici ce que j'ai trouvé et qui fonctionne :
    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
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
     
    my @liste = qw/cales abricot entonnoir couchette aïd arrosoir caleçon élève zozo/ ;
     
    sub desaccent {
        my $in = shift ;
     
        $in =~ s/[é|è|ê]/e/g ;
        $in =~ s/[É|È|Ê]/E/g ;
        $in =~ s/ç/c/g ;
        $in =~ s/Ç/ç/g ;
     
        return lc $in ;
    }
     
    @liste = sort { desaccent($a) cmp desaccent($b) } @liste ;
     
    print join(' ' , @liste) . "\n" ;
    retourne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    abricot aïd arrosoir caleçon cales couchette élève entonnoir zozo

  3. #3
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Bon ben ça ne marche pas à tous les coups. Le programme avec une nouvelle chaîne :
    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
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
     
    my @liste = qw/Alphonse
                   Éric
                   Emmanuel
                   Gilbert/ ;
     
    sub desaccent {
        my $in = shift ;
     
        $in =~ s/[é|è|ê]/e/g ;
        $in =~ s/[É|È|Ê]/E/g ;
        $in =~ s/ç/c/g ;
        $in =~ s/Ç/ç/g ;
        $in =~ s/à/a/g ;
        $in =~ s/À/A/g ;
        $in =~ s/ï/i/g ;
        $in =~ s/Ï/I/g ;
     
        return lc $in ;
    }
     
    @liste = sort { desaccent($a) cmp desaccent($b) } @liste ;
     
    print join(' ' , @liste) . "\n" ;
    retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alphonse Éric Emmanuel Gilbert
    où Éric pose encore un problème.

    Help, please.

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour

    pas le temps d'entrer dans les détails maintenant, mais cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $in =~ s/Ç/ç/g ;
    me paraît erronée.

    Tu veux sans doute:
    Sinon, la fonction tr/.../.../ est sans doute plus adaptée à ton problème qu'une expression régulière de type s/.../.../et, accessoirement, plus rapide). Jette un coup d’œil à sa documentation.



    .

  5. #5
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Avec tr c'est pas mieux. J'ai rajouté deux lignes pour vérifier ce qui sort de la fonction desaccent et les résultats sont surprenants.
    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
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
    # use utf8 ;
     
    my @liste = qw/Alphonse
                   Éric
                   Emmanuel
                   Gilbert/ ;
     
    sub desaccent {
        my $in = shift ;
     
        $in =~ tr/ÉÈÊéèê/e/ ;
        # $in =~ s/[éèêÉÈÊ]/e/g ;
        # $in =~ s/[çÇ]/c/g ;
        # $in =~ s/[àÀ]/a/g ;
        # $in =~ s/[ïÏ]/i/g ;
     
        return  $in ;
    }
     
    foreach ( @liste ) {
        print desaccent($_) . "\n" ;
    }
     
    @liste = sort { desaccent($a) cmp desaccent($b) } @liste ;
     
    print join(' ' , @liste) . "\n" ;
    Sortie sans use utf8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Alphonse
    eeric
    Emmanuel
    Gilbert
    Alphonse Emmanuel Gilbert Éric
    Sortie avec use utf8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Alphonse
    eric
    Emmanuel
    Gilbert
    Alphonse Emmanuel Gilbert ic
    ce n'est pas une erreur de copié-collé, il a bien mangé deux lettre.

    Je n'y comprends rien, pourquoi l'utilisation de ne règle pas le problème simplement (voir mon premier post) ?
    N'y a-t-il pas un moyen simple de trier des chaînes avec des caractères français, ce qui semble une opération triviale ?

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Citation Envoyé par Raoul_Pinette Voir le message
    J'aimerais comprendre comment on peut trier des chaines avec éèçàï. Alors j'ai écris un bout de code, mais la sortie est incohérente pour moi. J'aurais donc besoin de vos conseils.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
     
    my @liste = qw/cales abricot entonnoir couchette aïd arrosoir caleçon élève zozo/ ;
     
    print join (' ' , ( sort @liste )) . "\n";
     
    use locale ;
    print "use locale\n" ;
    print join (' ' , ( sort @liste )) . "\n" ;
    et la sortie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    aïd abricot élève arrosoir caleçon cales couchette entonnoir zozo
    Alors que je désire obtenir cet ordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    abricot aïd arrosoir caleçon cales couchette élève entonnoir zozo
    Merci
    Attention, ici, tu sembles en utf8 et qu'en tu n'utilises pas la locale, le perl se considère en locale "C" qui ne comprend pas l'accentuation. Et quand tu lui dit d'utiliser la locale, tu sembles être en iso8859-1 et comme en réalité c'est de l'utf8, il se perd.
    Par contre, si ta locale est en utf8, le trie est correcte:
    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
    $ locale
    LANG=fr_FR.UTF8
    LC_CTYPE="fr_FR.UTF8"
    LC_NUMERIC="fr_FR.UTF8"
    LC_TIME="fr_FR.UTF8"
    LC_COLLATE="fr_FR.UTF8"
    LC_MONETARY="fr_FR.UTF8"
    LC_MESSAGES="fr_FR.UTF8"
    LC_PAPER="fr_FR.UTF8"
    LC_NAME="fr_FR.UTF8"
    LC_ADDRESS="fr_FR.UTF8"
    LC_TELEPHONE="fr_FR.UTF8"
    LC_MEASUREMENT="fr_FR.UTF8"
    LC_IDENTIFICATION="fr_FR.UTF8"
    LC_ALL=
    $ perl ./script.pl
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    abricot aïd arrosoir caleçon cales couchette élève entonnoir zozo
    Cordialement.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    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
    $ locale
    LANG=fr_FR.UTF-8
    LC_CTYPE="fr_FR.UTF-8"
    LC_NUMERIC=fr_FR.UTF-8
    LC_TIME="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_PAPER="fr_FR.UTF-8"
    LC_NAME="fr_FR.UTF-8"
    LC_ADDRESS="fr_FR.UTF-8"
    LC_TELEPHONE="fr_FR.UTF-8"
    LC_MEASUREMENT="fr_FR.UTF-8"
    LC_IDENTIFICATION="fr_FR.UTF-8"
    LC_ALL=
    Je suis pourtant bien en UTF8 et n'obtiens pas le bon résultat ! Une idée ?

  8. #8
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 857
    Points : 6 555
    Points
    6 555
    Par défaut
    Que te renvoie la commande locale -a?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  9. #9
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Que te renvoie la commande locale -a?
    842 lignes de locales que je ne vais pas coller ici.

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    C'est bizarre...

    Et que donne:
    En même temps, si tu pouvais nous dire ton OS ainsi que la version du perl.
    Cordialement.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    C'est bizarre...

    Et que donne:
    En même temps, si tu pouvais nous dire ton OS ainsi que la version du perl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ locale -k LC_COLLATE
    collate-nrules=4
    collate-rulesets=""
    collate-symb-hash-sizemb=2707
    collate-codeset="UTF-8"

  12. #12
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Je viens de tester chez moi et ça fonctionne aussi...
    Le test fait:
    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
    $ locale
    LANG=C
    LANGUAGE=C
    LC_CTYPE="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_MESSAGES="C"
    LC_PAPER="C"
    LC_NAME="C"
    LC_ADDRESS="C"
    LC_TELEPHONE="C"
    LC_MEASUREMENT="C"
    LC_IDENTIFICATION="C"
    LC_ALL=
    $ perl xyz.pl 
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    $ LC_COLLATE=fr_FR.UTF-8 perl xyz.pl 
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    abricot aïd arrosoir caleçon cales couchette élève entonnoir zozo
    Cordialement.

  13. #13
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 857
    Points : 6 555
    Points
    6 555
    Par défaut
    Dans ce cas limite les résultats avec:locale -a | grep ^fr, l'idée étant que tes variables d'environnements sont toutes sur fr_FR.UTF-8 mais que celui-ci ne serait pas disponible (parce que pas généré). Cela dit, sur 842 ce serait vraiment pas d'bol.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  14. #14
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    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
    $ locale -a | grep ^fr
    fr_BE
    fr_BE@euro
    fr_BE.iso88591
    fr_BE.iso885915@euro
    fr_BE.utf8
    fr_CA
    fr_CA.iso88591
    fr_CA.utf8
    fr_CH
    fr_CH.iso88591
    fr_CH.utf8
    french
    fr_FR
    fr_FR@euro
    fr_FR.iso88591
    fr_FR.iso885915@euro
    fr_FR.utf8
    fr_LU
    fr_LU@euro
    fr_LU.iso88591
    fr_LU.iso885915@euro
    fr_LU.utf8
    le fr_FR.utf8 est bien présent. Je n'y comprends rien. Ça viendrait donc en fait d'un problème de conf. de mon système ?

  15. #15
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Et en plus, tu as la même conf du LC_COLLATE que moi, donc ta conf aussi semble bonne...

    Et que donne le script suivant où on force le LC_COLLATE directement dans le perl (fonctionne chez moi quelque soit la locale de définie ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/env perl
    use strict;
    use warnings;
    use diagnostics;
    use POSIX qw(locale_h);
     
    my @liste = qw/cales abricot entonnoir couchette aïd arrosoir caleçon élève zozo/ ;
     
    print join (' ' , ( sort @liste )) . "\n";
     
    use locale;
    setlocale(LC_COLLATE, "fr_FR.utf8");
    print "use locale\n" ;
    print join (' ' , ( sort @liste )) . "\n" ;
    Cordialement.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Mouarf, de pis en pis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abricot arrosoir a cales calen couchette entonnoir zozo e
    use locale
    abricot a arrosoir calen cales couchette e entonnoir zozo

  17. #17
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Je ne trouve pas, le trie semble bon, c'est l'affichage qui délire ici...

    Si tu regardes bien, les mots incomplets sont ceux avec les accents mais sur la première ligne ils sont dans l'ordre habituel et sur la 2ème ligne ils sont au bon endroit:
    aïd en 3éme position et élève juste avant entonnoir.

    Un premier test, c'est de recharger ton environnement et de réessayer le script.

    Un deuxième test:
    Remplace la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_COLLATE, "fr_FR.utf8");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, "fr_FR.utf8");
    Cordialement.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Remplace la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_COLLATE, "fr_FR.utf8");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_ALL, "fr_FR.utf8");
    J'obtiens le même résultat.

  19. #19
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Et si tu retires les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use POSIX qw(locale_h);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_COLLATE, "fr_FR.utf8");
    LC_COLLATE est peut-être maintenant LC_ALL chez toi.

    Quel est le résultat ?

    En principe, là, c'est le trie qui ne fonctionnera pas mais l'affichage des mots devrait être correcte.
    Cordialement.

  20. #20
    Futur Membre du Club
    Homme Profil pro
    chômeur
    Inscrit en
    Juillet 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : chômeur

    Informations forums :
    Inscription : Juillet 2017
    Messages : 39
    Points : 7
    Points
    7
    Par défaut
    Au temps pour moi, il y avait un use utf8 qui trainait, sans lui il n'y a pas de lettre qui manque, mais j'ai le même résultat avec LC_COLLATE et LC_ALL, c.à.d :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    abricot arrosoir aïd cales caleçon couchette entonnoir zozo élève
    use locale
    aïd abricot élève arrosoir caleçon cales couchette entonnoir zozo

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Trier par ordre alphabétique des onglets d'une certaine couleur
    Par shimuno dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 17h54
  2. Réponses: 6
    Dernier message: 13/01/2011, 08h31
  3. Réponses: 11
    Dernier message: 28/06/2010, 11h16
  4. Trier par ordre alphabétique un tableau
    Par barbiche dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 09/03/2007, 17h15
  5. Réponses: 1
    Dernier message: 27/05/2006, 23h13

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