Нужна помощь в решении задачи на файлы

Дан файл, компонентами которого являются целые числа. Упорядочить
компоненты файла так, чтобы в начале шли все отрицательные, а затем
все положительные числа.

Так и чем помочь? Что именно не получается?

набросал кое какую программу, не знаю верна ли она

uses crt;
var f:file of integer;
    n,i,j,p:integer;
    c,d,x:integer;
    k:byte;
begin
clrscr;
assign(f,'file1');
rewrite(f);
write('Введите количество чисел в файле n=');
readln(n);
writeln('Введите целые и отрицательные числа');
for i:=1 to n do
 begin
  readln(c);
  write(f,c);
 end;
reset(f);
writeln('Содержание исходного файла:');
clrscr;
while not eof(f) do
 begin
  read(f,c);
  write(c,' ');
 end;
writeln;
reset(f);
p:=0;
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,c);
  if c>0 then{если положительное}
   begin
    p:=p+1;{считаем}
    x:=c;{запоминаем}
    for j:=i downto p do{идем назад}
     begin
      seek(f,j-1);{читаем предыдущее число }
      read(f,d);
      seek(f,j);{вставляем вперед}
      write(f,d);
     end;
    seek(f,p-1);{вставляем на место которое нашли}
    write(f,x);
   end
 end;
if (p=0)or(p=filesize(f)) then
  begin
   write('Перестановок не было!');
   close(f);
  end
else
 begin
  writeln('Содержание нового файла:');
  reset(f);
  while not eof(f) do
   begin
    read(f,c);
    write(c,' ');
   end;
  close(f);
 end;
readln
end.

Так запустите и проверьте делает ли она то, что просят в задании )