Program longline;

Var
  LinePart: String;
  InFile, OutFile: Text;
  Index1, Index2: Word;
  Result: Byte;

begin { First create a test File With lines longer than     }
      { 255 caracters, this routine will generate lines in  }
      { exess of 600 caracters. The last "EOLN" at the end  }
      { is a visual aid to check that the Complete line has }
      { been copied to the output File.                     }

  Assign (OutFile, 'InFile.txt');
  ReWrite (OutFile);
  Randomize;
  For Index1 := 1 to 100 do begin
    For Index2 := 1 to (Random (5) + 1) do
      Write (OutFile, 'These are some very long Text Strings that'
        + ' are written to the File InFile.txt in order to test' +
        ' the capability of reading verylong Text lines. Lines' +
        ' that even exceed Turbo Pascal''s limit of 255' +
        ' caracters per String');
    Writeln (OutFile, 'EOLN');
  end;
  Close (OutFile);

      { Now re-open it and copy InFile.txt to OutFile.txt   }
  Assign (InFile, 'InFile.txt');
  Assign (OutFile, 'OutFile.txt');
  Reset (InFile);
  ReWrite (OutFile);

  While not Eof (InFile) do begin
    While not Eoln (InFile) do begin

      { While we are not at enf-of-line, read 255           }
      { caracters notice we use READ instead of READLN      }
      { because the latter would skip to the next line even }
      { if data was still left on this line.}

      Read (InFile, LinePart);
      Result := Ioresult;
      Writeln ('Result was ', Result);
      Write (OutFile, LinePart);
    end;

      { We have reached end-of-Line so do a readln to skip  }
      { to the start of the next line.}

    Readln (InFile);

      { Also Writeln to output File so it to, skips to the  }
      { next line.                                          }

    Writeln (OutFile);

  end;

      { Close both Files                                    }

  Close (OutFile);
  Close (InFile);
end.

