Показать сообщение отдельно
  #7  
Старый 03.01.2010, 23:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Все гораздо проще.
Читай сначала в массив, потом обработай данные в массиве и потом уже сохрани результат.

У тебя условие:
Тебе надо считать некоторое кол-во троек целых чисел, обработать их определенным образом, потом сохранить результат.

Я бы деле так:

Код:
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;

Чтение, обработка и сохранение вынесены в отдельный класс - так просто удобнее. Все то же можно сделать и без класса.
Ответить с цитированием