Код
var
Numbers: array[0..10000-1] of LongInt;
Trash: array[0..high(Numbers)] of string;
procedure DoIt;
var f:Text; i,j,L,k:LongInt; was:boolean;
begin
i:=0;
Assign(f, 'Rask.txt');
Reset(f);
while not eof(f) do
begin
read(f, Numbers[i]);
readln(f, Trash[i]);
i:=i+1;
end;
Close(f);
L:=i;
Assign(f, 'Error.txt');
Rewrite(f);
for i:=0 to L-1 do
if Numbers[i]<>-1 then
begin
k:=Numbers[i];
was:=false;
for j:=i+1 to L-1 do
if Numbers[j]=k then
begin
if not was then
write(f, k, Trash[i]);
write(f, ' e ', Numbers[j], Trash[j]);
was:=true;
Numbers[j]:=-1;
end;
if was then writeln(f);
end;
Close(f);
end;
begin
DoIt;
end.
Numbers: array[0..10000-1] of LongInt;
Trash: array[0..high(Numbers)] of string;
procedure DoIt;
var f:Text; i,j,L,k:LongInt; was:boolean;
begin
i:=0;
Assign(f, 'Rask.txt');
Reset(f);
while not eof(f) do
begin
read(f, Numbers[i]);
readln(f, Trash[i]);
i:=i+1;
end;
Close(f);
L:=i;
Assign(f, 'Error.txt');
Rewrite(f);
for i:=0 to L-1 do
if Numbers[i]<>-1 then
begin
k:=Numbers[i];
was:=false;
for j:=i+1 to L-1 do
if Numbers[j]=k then
begin
if not was then
write(f, k, Trash[i]);
write(f, ' e ', Numbers[j], Trash[j]);
was:=true;
Numbers[j]:=-1;
end;
if was then writeln(f);
end;
Close(f);
end;
begin
DoIt;
end.
А не лучше ли выводить номера совпадающих строк? Восьмизначная цифра не может равняться -1?
P.S. А плюсик не сможешь поставить

