извините за задержу, вот мой код(нерабочий)
основные проблемы:
1. при считывании из файла, последняя строка обрезается до1 буквы, а после идут крякозабры и иероглифы.
2. два файла не считывает, а считывает лишь один.
сижу над прогой несколько дней, и теперь она помоему ещё хуже стала работать.(в начале считывался из двух только 1 файл в конце с крякозабрами, а теперь вобще ничего не считывает)
	Код:
	program example;
{$APPTYPE CONSOLE}
uses
  SysUtils;
type
  Stud = record
    Name: String[20];
    Year: Integer;
  end;
  StFile = file of Stud;
procedure OutputFile(var FileToWrite: StFile);
var
  TempRecord: Stud;
begin
  Reset(FileToWrite);
  while not EOF(FileToWrite) do
  begin
    Read(FileToWrite, TempRecord);
    with TempRecord do
      Write(Name);
    Writeln;
  end;
end;
procedure SortFile(var FileToSort: StFile);
var
  I, J: Integer;
  MaximumYear: Integer;
  TempRecord: stud;
  IndexOfMaxRecord: Integer;
  RecordNumberI: stud;
  MinRecord: stud;
begin
  for I := 0 to FileSize(FileToSort) - 2 do
  begin
    Seek(FileToSort, I);
    Read(FileToSort, RecordNumberI);
    MaximumYear := RecordNumberI.Year;
    IndexOfMaxRecord := I;
    for J := I + 1 to FileSize(FileToSort) - 1 do
    begin
      Read(FileToSort, TempRecord);
      if TempRecord.Year > MaximumYear then
      begin
        MaximumYear := TempRecord.Year;
        IndexOfMaxRecord := J;
      end;
    end;
    Seek(FileToSort, IndexOfMaxRecord);
    Read(FileToSort, MinRecord);
    Seek(FileToSort, IndexOfMaxRecord);
    Write(FileToSort, RecordNumberI);
    Seek(FileToSort, I);
    Write(FileToSort, MinRecord);
  end;
end;
procedure Input(var F, G: Stfile; out J: TextFile);
var
  Temp: Stud;
begin
  Reset(F);
  Rewrite(J);
  Reset(J);
  while not Eof(F) do
  begin
    Read(F, Temp);
    Write(J, Temp.Name);
  end;
  Reset(G);
  while not Eof(G) do
  begin
    Read(G, Temp);
    Write(J, Temp.Name);
  end;
end;
var
  F: StFile;
  A: StFile;
  J: Textfile;
begin
  Assign(F, 'C:\file1.dat');
  Reset(F);
  Assign(A, 'C:\file1.dat');
  Reset(A);
  Writeln('Исходный файл:');
  OutputFile(F);
  Writeln;
  Writeln('Исходный файл №2:');
  OutputFile(A);
  Writeln;
  Assign(J, 'result.txt');
  Rewrite(J);
   Input(F, A, J);
  SortFile(F);
  Writeln;
  Writeln('Отсортированный исходный файл:');
  OutputFile(F);
  CloseFile(F);
  CloseFile(A);
  Readln;
end.