Hallo,
ich kann aus deiner Problembeschreibung nicht erkennen, wo da ein natural sort involviert sein könnte. Hier hast du einen normalen Sort als Anschauungsmaterial:
Delphi-Quellcode:
type
TSR = record
is_directory: Boolean;
name: string;
size: Integer;
end;
TSRDynArray = array of TSR;
procedure BubbleSort(var da: TSRDynArray);
var
iInner, iOuter: Integer;
sr: TSR;
begin
for iOuter := Succ(Low(da)) to High(da) do
for iInner := Pred(iOuter) downto Low(da) do
if AnsiCompareText(da[iInner].name, da[Succ(iInner)].name) > 0 then
begin
sr := da[Succ(iInner)];
da[Succ(iInner)] := da[iInner];
da[iInner] := sr;
end else Break;
end;
Erschließen kannst du dir den Code indem du das Tutorial zu den Sortierverfahren liest oder eine kommentierte Fassung im Forum suchst.
Grüße vom marabu