И не будет, я только лишнюю переменную убрал, а алгоритм не посмотрел толком, а зря
Код:
for k:=0 to Length(finword)-1 do
...
SetLength(finword,Length(finword)+1);
изначально массив равен 0, а увеличение массива происходит внутри цикла, после проверки его длины, котороя
ВСЕГДА 0.