Вот код процедуры сортировки вставками который нам дали на лекции

с етим програма не виснет спасибо за помощь! но все равно как то криво сортирует))
Код:
procedure tform1.vkluch(n:integer);
var
j,b,i,cv,mv:integer;
f:textfile;
begin
if OpenDialog1.Execute then begin
assignfile(f,opendialog1.FileName);
reset(f);
i:=1;
while not eof(f) do begin
readln(f,a[i]);
i:=2;
cv:=0;
mv:=0;
if i<=n then begin
for j:=1 to n do begin
cv:=cv+1;
if a[j]>a[i] then begin
b:=a[i];
a[i]:=a[j];
a[j]:=b;
mv:=mv+1;
i:=i+1;
stringgrid2.cells[i,0]:=inttostr(a[j]);
cv, mv - ето количество сравниваний и перестановок (для сравнения с другим методом)
теперь буду розбиратся с 2 методом