Очень нужно решить задачу на паскале. Имеется список фамилий(который читается из файла), который упорядочен по алфавиту. Мне нужно добавить новую фамилию. Все спокойно добавляет, но! Мне нужно, чтоб  и "моя" фамилия автоматический заняла правильно место в списке. А то пишу Павлов, а он в конец отображает. Помоготи, очень надо!!! 
program St;
uses Crt;
type
 student=record
 name:string[50];
 group:byte;
 mark:char;
end;
var
 f:file of student;
 Procedure Menu;
 forward;
 Procedure Viewlist;
  var i:byte;
      s:student;
  begin
      reset(f);
      Clrscr;
      writeln(\'‘Имя \');
      writeln(\'N\':3,\'” ¬Ё«Ёп\':31,
              \'Возраст\':7,\'Пол\':

;
    i:=0;
    while not eof(f) do
     begin
           i:=i+1;
         read(f,s);
          writeln(i:3,s.name:31,s.group:7,s.mark:7);
     end;
     menu;
  end;
  Procedure add;
  var s:student;
  begin
      write(\'имя \');
      readln(s.name);
      write(\'‚возраст \');
      readln(s.group);
      write(\'пол \');
      readln(s.mark);
      while not eof(f) do
      read(f,s);
      writeln(s.name, s.group);
      seek(f,filesize(f));
      write(f,s);
      menu;
      end;
  Procedure Menu;
  var c:char;
  begin
     writeln(\'0-выход\');
     writeln(\'1-просмотр\');
     writeln(\'2-добавить  \');  
     c:=readkey;
     case c of
      \'0\':exit;
      \'1\':Viewlist;
      \'2\':add;
     end;
  end;
begin
   assign(f,\'exam2.dat\');
   reset(f);
   clrscr;
   menu;
end.
к сожалению, у меня нет файла exam2.dat, но смысл в том, что там стояли фамилии в алфавитном порядке.
Ребят, очень надо!!! извините за оффтопик!!!