Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
23. Apr 2009
Der höchste Index, der vorkommt ist max(j+k) = max(i+k) = max(countTo-k+k) = countTo. Und das ist im ersten Fall = length(files) > high(files) und deshalb krachts.
Gammatester
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
23. Apr 2009
Na ja: Auf jeden Fall das "<=" in "<" ändern, sonst gibt es unter bestimmten Umständen die Endlosschleife. Dann nimm meinen Vorschlag für den Startwert von k und verrate uns, welcher Fehler auftritt. (Wie schon gesagt, sollte das ganze für jede fallende Folge von k-Werten mit Endwert 1 funktionieren).
Forum: Sonstige Fragen zu Delphi
Delphi
by gammatester,
23. Apr 2009
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 durchk := (High(Files) - Low(Files) + 1) div 2;
...
k := k div 2; erzeugte Schrittweitenfolge ist suboptimal.
...