Другие языки программирования и технологии

Помогите, пожалуйста. Программирование паскаль, однонаправленные списки.

Дан файл input.txt, каждая строка которого представлена в виде: имя файла.расширение приоритет. Приоритет – число от 1 до 3
Сформировать отдельные очереди для каждого приоритета. Записать в файл output.txt сначала имена файлов из очереди с приоритетом 1, затем 2 и 3.
++ ++
++ ++
182
А в output.txt не надо как-то помечать, когда заканчивается предыдущий приоритет и начинается следующий? Ох, уж эти постановщики учебных задач.

Вот код. Вывод в output.txt дублируется в стандартный вывод, чтобы хоть как-то можно было разобраться в происходящем.
 program queues;
type
FileEntry = record
name: string;
next: ^fileEntry;
end;
var
files: array[1..3] of ^FileEntry;
tmp: ^FileEntry;
fin: text;
fout: text;
line: string;
p: integer;
fileName: string;
prioStr: string;
prio: integer;
stop: integer;
begin
for prio := 1 to 3 do files[prio] := nil;
assign(fin, 'input.txt');
reset(fin);
while not eof(fin) do begin
readln(fin, line);
p := pos(' ', line);
if p = 0 then writeln('Ошибка: нет разделителя в строке ', line)
else begin
fileName := copy(line, 1, p - 1);
prioStr := copy(line, p + 1, length(line) - p + 1);
val(prioStr, prio, stop);
if (stop 0) or (prio < 1) or (prio > 3) then
writeln('Ошибка: неправильный приоритет ', prioStr)
else begin
tmp := files[prio];
new(files[prio]);
files[prio]^.name := fileName;
files[prio]^.next := tmp
end
end
end;
close(fin);
assign(fout, 'output.txt');
rewrite(fout);
for prio := 1 to 3 do begin
writeln('Файлы с приоритетом ', prio);
tmp := files[prio];
while tmp nil do begin
writeln(tmp^.name);
writeln(fout, tmp^.name);
tmp := tmp^.next
end
end;
close(fout)
end.
Пример входного файла:
 trololo.txt 3
sadas 3
skdfjldsk 4
12k3l 2
sdkaljl 1
asdajslk 3
asdjalsk 2
twoooo 2
ooone 1
threee 3
Выходной файл после обработки этих данных:
 ooone
sdkaljl
twoooo
asdjalsk
12k3l
threee
asdajslk
sadas
trololo.txt
Заметим, что всё выводится в обратном порядке, т.е. вместо очереди у нас стек. Если нужно в прямом, то нужно переделывать код в том месте, где идёт добавление в список (new и далее - нужно хранить указатель на последний элемент каждого списка и к нему дописывать ссылку на следующий при добавлении).
Стандартный вывод при обработке:
 Ошибка: неправильный приоритет 4
Файлы с приоритетом 1
ooone
sdkaljl
Файлы с приоритетом 2
twoooo
asdjalsk
12k3l
Файлы с приоритетом 3
threee
asdajslk
sadas
trololo.txt
Денис Кулюшин
Денис Кулюшин
26 066
Лучший ответ