Also die Grundlage für
Natural Sort ist
Natural Compare.
Das ist gar nicht so einfach, aber ich hab mir da mal etwas Code von der
DP geklaut (Danke xaromz!) und nochmals verbessert.
Herausgekommen ist eine
Unit, die man so direkt verwenden kann.
Man müsste vielleicht noch Anpassungen für die höheren Delphi Versionen mit
Unicode vornehmen und könnte die
Unit dann in die Code-Library eintüten.
Delphi-Quellcode:
// Anwendungsbeispiel zum "natürlichen" Sortieren
function StringListSortCompare(List: TStrings; Index1, Index2: integer): integer;
begin
// Index1 und Index2 sind vertauscht -> absteigend sortieren
if List.CaseSensitive
then Result := NaturalCompareStr(List[Index2], List[Index1])
else Result := NaturalCompareText(List[Index2], List[Index1]);
end;