Добрый вечер вам уважаемые коллеги....у меня не получается сортировка, исходный масив записей выводится, а обратный выводится такой же но не отсортированный....помогите пожалуйста мне, очень надо

...


Program LR_5; Uses Crt;
Type
St = String[15];
Struct = Record
NF : String[15];
AI : String[17];
AD : String[32];
Tel : Longint;
End;
Fl = File Of Struct;
Var i : integer;
Z : Struct;
Fi, Fr : Text;
F : Fl;

{Процедура вывода данных одной строки}
Procedure P;
Begin With Z do
Writeln (Fr, NF, AI, AD, Tel);
End;

{Процедура сортировки методом последовательного слияния}
Procedure Posl_Sl;
Type TA = Array[1..10] Of Struct;
PTA = ^TA;
Var A, B : PTA;
Dl, Dl_1, Dl_2, i1, i2, N1, N2, k, N : Integer;
p1, p2 : Boolean;
Label M1, M2, M3;

{Пересылка очередного элемента в выходной массив}
Procedure PS(Var i, NP : integer; Var p : Boolean);
Begin
B^[k] := A^[i]; i := i+1;
If i > NP then p := False;
End;
BEGIN
Reset(F); N := FileSize(F);
GetMem(A, N*Sizeof(Struct));
Writeln(Fr, 'Массив до сортировки');
For i := 1 to N do Begin
Read(F, Z); P; A^[I] := Z;
End;
For i := N DownTo 2 do Begin
Dl := 1;
M1 : Dl_1 := Dl_1-1; i1 := 1;
M2 : N1 := i1+Dl_1; i2 := N1+1; N2 := i2+Dl_1;
p1 := True; p2 := True;
End;
If N2 <= N Then GoTo M3; N2 := N;
If i2 <= N then GoTo M3; p2 := False;
If N1 > N then N1 := N;
M3 : For k := i1 to N2 Do
If P1 and p2 then
If A^[i].NF < A^[i2].NF then PS(i1, N1, p1)
else PS(i2, N2, p2)
else
If p1 then PS(i1, N1, p1)
else PS(i2, N2, p2);
If N2 < N then Begin
i1 := N2+1; GoTo M2; End;
A^ := B^;
If Dl < (N+1) div 2 then Begin
Dl := Dl*2; GoTo M1; End;
Writeln(Fr, #10#13, 'Массив после сортировки');
Seek(F, 0);
For i := 1 to N do Begin
Z := A^[i]; Write(F, Z); P;
End;
Close(F);
FreeMem(A, N*SizeOf(Struct));
END;

{----- ОСНОВНАЯ ПРОГРАММА -----}
Begin CLRSCR;
Assign (F, 'lr8.typ');
Assign (Fr, ''); Rewrite (Fr);
Writeln(' Туристические фирмы г.Москвы');
Writeln('Название Веб-сайт Адрес Телефон');
Writeln;
Posl_Sl;
Readln;
Close (Fr);
End.

приведу даже вам текстовый файл
Pegas_Touristic www.pegast.ru Ленинградский_Пр.д.53 9678142
LGM-Tour www.lgm-tour.ru Большая_Татарская_Ул.д.15 7451433
Vremia_Tour www.vremiatour.ru Столешников_Пер.д.11 7837570
TEZ-Tour www.teztour.ru Донская_Ул.д.13 1051050
Super_Nova www.s-nova.ru Гагаринский_Пер.д.19/3 9959822
Amarco_Tours www.amarco.ru 2-я_Тверская-Ямская_Ул.д.40/3 7880688
Miriada www.miriada.ru Трофимова_Ул.д.2/1 5070244
NTA_Travel www.ntatravel.ru Миусская_Пл.д.6/3 2506903
BSI_Group www.bsigroup.ru 2-ой_Щемиловский_Пер.д.4 7855535
Capital_Tour www.capital-tour Мира_Пр.д.22 9376444


Добавлено через 4 мин.
Самое главное тему забыл написать...Дан массив типа запись. Запись содержит сведения о туристических фирмах и состоит из четырёх полей: название, адрес в интернете, физический адрес и телефон. Упорядочить элементы массива, используя сортировку методом последовательного слияния