3.2.35. LINEIN([streamid][,[line][,count]])

Returns a line read from a file. When only streamid is specified,
the reading starts at the current read position and continues to
the first End-Of-Line (EOL) mark. Afterwards, the current read
position is set to the character after the EOL mark which
terminated the read-operation. If the operating system uses
special characters for EOL marks, these are not returned by as a
part of the string read..

The default value for streamid is default input stream. The format
and range of the string streamid are implementation dependent.

The line parameter (which must be a positive whole number) might
be specified to set the current position in the file to the
beginning of line number line before the read operation starts. If
line is unspecified, the current position will not be changed
before the read operation. Note that line is only valid for
persistent steams. For transient streams, an error is reported if
line is specified. The first line in the stream is numbered 1.

Count specifies the number of lines to read. However, it can only
take the values 0 and 1. When it is 1 (which is the default), it
will read one line. When it is 0 it will not read any lines, and a
nullstring is returned. This has the effect of setting the current
read position of the file if line was specified.

What happens when the functions finds a End-Of-File (EOF)
condition is to some extent implementation dependent. The
implementation may interpret the EOF as an implicit End-Of-Line
(EOL) mark is none such was explicitly present. The implementation
may also choose to raise the NOTREADY condition flag (this
condition is new from REXX language level 4.00).

Whether or not stream must be explicitly opened before a read
operation can be performed, is implementation dependent. In many
implementations, a read or write operation will implicitly open
the stream if not already open.

Assuming that the file /tmp/file contains the three lines: “First
line”, Second line” and “Third line”:

     LINEIN(‘/tmp/file’, 1)        –>   ‘First line’
     LINEIN(‘/tmp/file’)      –>   ‘Second line’
     LINEIN(‘/tmp/file’, 1, 0)     –>   ‘’  /* But sets read
     position */
     LINEIN(‘/tmp/file’)      –>   ‘First line’
     LINEIN()                 –>   ‘Hi, there!’  /* maybe */



PREV NEXT