TRI ENTRE CHIFFRES,ET MOTS EN MINUSCULE ET EN MAJUSCULE
tigris1
Messages postés57Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention15 janvier 2009
-
26 avril 2007 à 21:40
tigris1
Messages postés57Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention15 janvier 2009
-
26 avril 2007 à 21:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
tigris1
Messages postés57Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention15 janvier 2009 26 avril 2007 à 21:40
Hello Flavmel
Bonne idée. J'ai cependant une petite réticence à voir les minuscules transformées en majuscules dans la liste résultantes. Une petite amélioration consiste à remplacer dans la procédure TriAlpha :
if Items.Strings[i] > Items.Strings[j] then begin
val:=Items[i]; Items[i]:=Items[j]; Items[j]:=val;
end;
par
if UpperCase(Items.Strings[i]) > UpperCase(Items.Strings[j]) then
val:=Items[i]; Items[i]:=Items[j]; Items[j]:=val;
end;
Il subsiste quand même un petit défaut car 2 mots identiques mais l'un en minuscules et l'autre en majuscules peuvent être dans un ordre inadéquat, comme par exemple : "adroit" qui est placé avant "ADROIT" tandis que "BADEN" est bien placé avant "baden" en fonction du hasard du placement initial.
Pour finaliser le bon tri, il faudrait tester la 1ère lettre et les suivantes, si nécessaire, pour détecter l'ordre exact entre 2 mots identiques ou partiellement identiques.
Peut-être que quelqu'un à une meilleure idée ou solution
26 avril 2007 à 21:40
Bonne idée. J'ai cependant une petite réticence à voir les minuscules transformées en majuscules dans la liste résultantes. Une petite amélioration consiste à remplacer dans la procédure TriAlpha :
if Items.Strings[i] > Items.Strings[j] then begin
val:=Items[i]; Items[i]:=Items[j]; Items[j]:=val;
end;
par
if UpperCase(Items.Strings[i]) > UpperCase(Items.Strings[j]) then
val:=Items[i]; Items[i]:=Items[j]; Items[j]:=val;
end;
Il subsiste quand même un petit défaut car 2 mots identiques mais l'un en minuscules et l'autre en majuscules peuvent être dans un ordre inadéquat, comme par exemple : "adroit" qui est placé avant "ADROIT" tandis que "BADEN" est bien placé avant "baden" en fonction du hasard du placement initial.
Pour finaliser le bon tri, il faudrait tester la 1ère lettre et les suivantes, si nécessaire, pour détecter l'ordre exact entre 2 mots identiques ou partiellement identiques.
Peut-être que quelqu'un à une meilleure idée ou solution
Cordialement