Bonjour,
J'essaie de trier un liste avec un customSort. J'aimerais trié uniquement sur la partie "names" de la liste. J'utilise donc cutomSort pour écrire mon tri.
Je vous joins un exemple simplifié
Le tri me donne
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 function CompareString(List : TStringList; Index1, Index2 : integer) : integer; begin result := AnsiCompareText(List.Names[Index1], List.Names[Index2]); end; procedure TForm1.Button1Click(Sender: TObject); begin Memo2.Clear; Liste.CustomSort(CompareString); Memo2.Lines.Append(Liste.GetText) end; procedure TForm1.FormCreate(Sender: TObject); begin Liste := TStringList.Create; Liste.Append('INFOS_NEGOCE=NUM_CDE'); Liste.Append('INFOS_NEGOCE=DATE_CDE'); Liste.Append('INFOS_NEGOCE=NOM_REPERTOIRE_ENT'); Liste.Append('INFOS_NEGOCE=NOM_CONTACT'); Memo1.Lines.Clear; Memo1.Lines.Append(Liste.GetText) end;
INFOS_NEGOCE=NOM_REPERTOIRE_ENT
INFOS_NEGOCE=NOM_CONTACT
INFOS_NEGOCE=NUM_CDE
INFOS_NEGOCE=DATE_CDE
Alors que dans mon cas, je m'attends à avoir aucune modification. J'ai même essayé de mettre 0 en dur comme retour à la fonction de comparaison, elle continue à m'intervertir les lignes d'une façon que je ne comprends pas.
Partager