[Perl] Trier des noms par ordre alphabétique

Olivier Mengué olivier.mengue at gmail.com
Mar 21 Mar 23:20:30 CET 2017


Dis donc, serais-tu en train de travailler sur des listes électorales ou
des annuaires ?
Tu ne nous as pas dit quel serait l'usage de cette liste triée. La réponse
la plus apropriée peut par exemple différer selon si le rendu sera sur du
papier ou s'il sera interactif (ou non) sur un écran.

Je découvre cette norme NF Z 44-001 :
https://fr.geneawiki.com/index.php/La_norme_AFNOR_NF_Z44-001
Pas facile à appliquer puisqu'il semble nécessaire de connaître la
nationalité de la personne en plus de son nom.

En plus elle ne semble pas correctement prendre en compte le cas "de la" :
http://blog.pinsonnais.org/post/2009/09/02/Ce-que-je-pense-de-la-norme-AFNOR-NF-Z-44-2

Voici des conseils de tris de La Sorbonne :
http://theleme.enc.sorbonne.fr/cours/edition_epoque_moderne/etablissement_des_index
Mais ça semble plus adapté à un classement manuel pour l'édition qu'à un
classement automatisé.

Une solution flexible serait d'impliquer un humain dans le processs :
1. trier les noms en deux listes :
  - les noms simples sans espace ou apostrophes ou tiret => triés
automatiquement avec une collation adapté (vérifier « oe » vs « œ »)
  - les autres à donner à un humain (en faisant éventuellement des
suggestions basées sur NF 44-001 ou autre) qui doit donner la clé de tri
2. insérer la seconde liste dans la première en utilisant la clé de tri

Idéalement il faut prévoir des renvois dans le rendu de la liste finale.

Olivier.


Le 21 mars 2017 à 16:10, mirod <xmltwig at gmail.com> a écrit :

> Bonjour,
>
> Une question dont la réponse n'est pas forcément du Perl: j'ai des noms,
> généralement français, dans une DB Postgres. je voudrais les sortir en
> ordre alphabétique "traditionel".
>
> Bon déjà la définition de "traditionel" pose problème: l'AFNOR NF Z 44-001
> ne me plait pas trop, classer "du Château" avec les "D", "de Mi" avec les
> "M" et "de la Tour" avec les "L", ça semble bizarre. (et oui, j'ai des noms
> à particule dans la base).
>
> Mais bref, si je comprends bien Postgres ne peut pas grand chose pour moi,
> il n'a pas de collation compliquées, donc je dois générer une clef de tri
> moi même. Dites moi si je me trompe (ce qui m'arrangerait bieng!). Et si je
> ne me trompes pas, est-ce qu'il existe un module, ou du code quelque part,
> qui pourrait me créer ma clef sans que j'ai à le faire moi-même?
>
> merci.
>
> --
>
> mirod
>
>
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20170321/bd3c1e8f/attachment.html>


Plus d'informations sur la liste de diffusion Perl