Все гораздо проще.
Читай сначала в массив, потом обработай данные в массиве и потом уже сохрани результат.
У тебя условие:
Тебе надо считать некоторое кол-во троек целых чисел, обработать их определенным образом, потом сохранить результат.
Я бы деле так:
Код:
type
TIntClass = class
a, b, c : Integer;
procedure ReadInts(F : File Of Integer);
procedure DoWork;
procedure SaveInts(F : File Of Integer);
end;
procedure TIntClass.ReadInts(F : File Of Integer);
begin
Read(F,a);
Read(F,b);
Read(F.c);
end;
procedure TIntClass.SaveInts(F : File Of Integer);
begin
Write(F,a);
Write(F,c);
end;
procedure TIntClass.DoWork;
begin
b := a;
a := c;
c := b;
end;
var
In, Out : File Of Integer;
Buf : TIntClass;
begin
Buf := TIntClass.Create;
AssignFile(In,'InFile.dat');
AssignFile(Out,'OutFile.dat');
Reset(In);
Rewrite(Out);
While Not EOF(In) Do
Begin
Buf.ReadInts(In);
Buf.DoWork;
Buf.SaveInts(Out);
End;
CloseFile(In);
CloseFile(Out);
Buf.Free;
end;
Чтение, обработка и сохранение вынесены в отдельный класс - так просто удобнее. Все то же можно сделать и без класса.