Scheint mir zumindest ein Bug im Originalquellcode zu sein. Der wird provoziert durch die neumodische Art, arrays meist bei Index 0 anfangen zu lassen. Das erste k soll wohl gleich der halben Anzahl der Elemente sein, also etwa
k := (High(Files) - Low(Files) + 1) div 2;
Nebenbei: die durch
Delphi-Quellcode:
k := (High(Files) - Low(Files) + 1) div 2;
...
k := k div 2;
erzeugte Schrittweitenfolge ist suboptimal.
Gammatester