NaturalSort/fr
│
English (en) │
français (fr) │
A propos
Le tri naturel est un classement de chaînes e caractères en ordre alphabétique, sauf que les nombres à plusieurs chiffres sont ordonnés comme un caractère simple. L'ordre de tri naturel a été présenté plus convivial ("naturel") que le pur ordre alphabétique orienté machine.
Par exemple, dans un tri alphabétique "z11" sera placé devant "z2" parce "2" est pris pour plus grand que "1", alors qu'avec le tri naturel "z2" sera placé avant "z11" car "2" est considéré plus petit que "11".
La possibilité de trier selon l'ordre naturel est disponible dans plusieurs langages et bibliothèques.
Auteurs
Antônio Galvão et Rik van Kekem
Plateformes
Linux et Windows.
Propriétés
Deux types de tri
type TSortType = (stNatural, stFloatThousand);
Le numéros thématiques, entiers et adresses IP sont triés par le type de tri stNatural. Les milliers avec séparateurs et les nombres en virgule flottante sont triés par le type de tri stFloatThousand. Les deux font l'ordre alphabétique collationné et trient les nombres internes dans des chaînes alphabétiques.
Tri alphabétique collationné (stNatural ou stFloatThousand) :
Parties alphabétiques tri par OS (Windows or Linux).
0o3ö6ãrõxögùmî1ó5egõ 1I8iuã0u4ô8EeU7öuOkü 3â0á0e6ùsunueUtö8írò 3áiokúdùsétöbïqãkôvI 4õ4îcë4ò0à1ólOaUpáxã 5î2ãgâoí8î4ü1ò3ïwowë 5úrüqUfò5u0íyïfü5âlí
Tri des numérateurs thématiques (stNatural) :
1 1.1.1 1.1.2 1.2.1 1.99.99 2
Tri des entiers (stNatural) :
0 00 000 1 2 10
Tri des adresses IP (stNatural) :
10.145.254.9 10.145.255.9 10.145.255.10 10.146.254.9 121.243.100.0 255.255.255.254
Tri des nombres en virgule flottante (stFloatThousand) :
0,99 1 1,01 1,99 2
Nombres avec milliers séparés (stFloatThousand) :
1.198 1.199 1.199,50 1.200 1.201 1.101.300
Les séparateurs de milliers et le séparateur décimal sont ceux par défaut du système.
C'est rapide. Voyez le temps comparé à d'autres fonctions :
StrCmpLogicalW: 1 WideCompareText: 1,238 NaturalSort: 0,746
Téléchargement
La dernière version est disponible là : http://sourceforge.net/projects/lazarusfiles/files/naturalsort.zip/download
Un projet de démo est inclus.
Fonctions and Procédures
procedure NaturalSort(aList: TStrings; SortType: TSortType);
Cette procédure fournit une façon de trier une liste de chaînes directement, selon le type de tri choisi, stFloatThousand (pour le tri des nombres flottants et des nombres à séparateurs de milliers ou stNatural (pour tous les autres tris supportés).
Exemple d'emploi :
procedure TForm1.Button1Click(Sender :TObject); begin NaturalSort(Memo1.Lines, stNatural); NaturalSort(Memo2.Lines, stFloatThousand); end;
function UTF8NaturalCompareList(aList: TStringList; Index1, Index2: Integer): Integer;
Exemple d'emploi :
procedure NaturalSort(aList: TStrings); var L: TStringList; begin L := TStringList.Create; try L.Assign(aList); L.CustomSort(@UTF8NaturalCompareList); aList.Assign(L); finally L.Free; end; end;
function UTF8FloatThousandCompareList(aList: TStringList; Index1, Index2: Integer): Integer;
Exemple d'emploi :
procedure FloatThousandSort(aList: TStrings); var L: TStringList; begin L := TStringList.Create; try L.Assign(aList); L.CustomSort(@UTF8FloatThousandCompareList); aList.Assign(L); finally L.Free; end; end;
Function UTF8FloatThousandCompareText(const S1, S2: string): Integer;
Function UTF8LogicalCompareText(const S1, S2: string): Integer;
Function UTF8NaturalCompareText(const S1, S2: string): Integer;
Contrôles avec tri naturel
Une TNaturalListBox et une TNaturalComboBox sont fournies dans le projet de démo.