Операции над записями и типизированными файлами

Описать структуру с именем AEROFLOT содержащию след поля: --название пункта назначения рейса --номер рейса --тип самолета Написать программу выполняющею следующие действия с помощью процедур или функций: --ввод с клавиатуры данных в файл состоящий из элементов типа AeroflotЭ записи должны быть упорябочены по возростанию номера рейса. --чтение данных из этого файла --вывод на экран номеров рейсов и типов самолетов вылетающих в пукнт назначения, название которого совпало с названием введенным с клавиатуры. --если таких рейсов нет выдать соответсвующее сообщение
Program Aeroflot;
uses crt;
Type AEROFLOT=record
		Punkt:string[20];
		N:integer;
		Tip:string;
End;

Var 	f:file of AEROFLOT;
		Elem1,Elem2:AEROFLOT;
 number:integer;


Procedure Create_file;
Begin

Reset(f);
Writeln('Vvedite svedeniya reisah');
Writeln('EXIT zmy *');
While True Do
		Begin
			Write('Vvedite Punkt');
			Readln(Elem1.Punkt);
			If Elem1.Punkt='* ' Then Exit;
			Write('Vvedite Nя');
			Readln(Elem1.N);
			Writeln('Vvedite TIp');
			Readln(Elem1.Tip);
			Write(f,Elem1)
		End
End;


Procedure Sort_file;
Var i,j:integer;
Begin
Reset(f);
		Seek(f,0);
		For i:=filesize(f)-1 downto 1 do
			For j:=0 to i-1 do
			Begin
				Seek(f,j);
				Read(f,Elem1,Elem2);
				If Elem1.N>Elem2.N then
				Begin
					Seek(f,j);
					Write(f,Elem2,Elem1);
				End
			End
End;

Procedure Print_file;
Begin
Reset(f);
		Seek(f,0);
		Writeln('Punkt', 'Nomer', 'Tip');
		While not eof(f) do
			Begin
				Read(f,Elem1);
				Writeln(Elem1.Punkt, Elem1.N, Elem1.Tip);
			End
	End;


Begin
Assign(f,'c:\1.dat');

While True Do
Begin
clrscr; 
Writeln('1-Vvedite dannue');
Writeln('2-Sortirovka fila');
Writeln('3-Vyvod faila');
Writeln('4-EXIT');
Writeln('-------------------------------');
Writeln('Vvedite nomer punkta menu');
Readln(Number);
Case Number Of 
1:Create_file;
2:Sort_file;
3:Print_file;
4:Exit 
End;
End;
end.
Почему то не работает чтение из файла И не знаю как реализовать вывод на экран номеров рейсов и типов самолетов вылетающих в пукнт назначения, название которого совпало с названием введенным с клавиатуры.(здесь как я понял нужно только вывести номер рейса и тип самолета. Незнаю как сделать пропуск пункта назначения)
1 ответ

program laba_2;
uses crt;
const N=7;
type
 AEROFLOT=record
 NAZN:string;
 NUMB:integer;
 TIP:string;
 end;
 
var
 ******:array[1..N]of AEROFLOT;

procedure input;
 var
 i:integer;
begin
 for i:=1 to N do
 begin
 writeln('Введите название рейса');
 read(******[i].NAZN);
 writeln('Введите номер рейса');
 read(******[i].NUMB);
 writeln('Введите тип самолёта');
 read(******[i].TIP);
 end;
end;

procedure sort;
 var
 i,j,tmp:integer;
begin
for i:=n-1 downto 1 do
 for j:=1 to i do
 if ******[j].NUMB>******[j+1].NUMB then
 begin
 tmp:=******[j].NUMB;
 ******[j].NUMB:=******[j+1].NUMB;
 ******[j+1].NUMB:=tmp;
 end;
end;

procedure output;
var
s:string;
i,k:integer;
begin
 writeln('Введите название рейса по которому хотите получить информацию');
 read(s);k:=0;
 for i:=1 to N do
 if (s=******[i].NAZN) or (s=******[i].NAZN)then
 begin
 writeln('Искомый маршрут:');
 writeln(' Пункт назначения: ', ******[i].NAZN);
 writeln(' Тип самолёта: ', ******[i].TIP);
 writeln(' Номер рейса: ', ******[i].NUMB);
 k:=1;
 end;
 if k=0 then writeln('Таких рейсов нет.');
end;

begin
 clrscr;
 input;
 sort;
 output;
 readkey;
end.
вот программа, только без работы с файлами... но это написать не сложно....