.STREAM READ
This subroutine is called to read a file stream.
Usage: (Option 1)
PASS <read_buffer> FIELD SHARE? Y
PASS <stream_name> FIELD SHARE? N
PASS <read_length> FIELD SHARE? Y
GOSUB --- .STREAM READ
* check for errors
IF --- .STREAM READ NE
Usage: (Option 2, 5.3.2 or later only)
PASS <read_buffer> FIELD SHARE? Y
PASS <stream_name> FIELD SHARE? N
PASS <read_length> FIELD SHARE? N
PASS <length_read> FIELD SHARE? Y
GOSUB --- .STREAM READ
* check for errors
IF --- .STREAM READ NE
Description:
This subroutine is called to read a file stream previously opened for READ access via
.STREAM OPEN.
The first two parameters are required, and the subroutine will CANCEL if they are are not all received. The <read_length> and <length_read> parameters are optional.
<read_buffer> contains the data read from <stream_name> (Required). This subroutine can read lines up to a maximum of 32000 characters long. This must be passed SHARED to return any data.
<stream_name> is the name of the previously opened stream (Required).
<read_length> is the number of bytes to read (optional). If not passed it will read up until a line termination character to a maximum of 32000 characters. If a value is passed it will read up to that number of characters or until a line termination character is encountered, whichever comes first. In Option 1, if passed shared, it will return the number of characters actually read, however, you should set it back to 32000 before the next GOSUB --- .STREAM READ, otherwise this subroutine will only read that number of characters (or less). If you PASS <length_read> as in Option 2, this will value not return anything and will not change, even if passed SHARED. In this case, the number of bytes read will be returned in <length_read>.
<length_read> is the number of characters actually read (5.3.2 and higher only). This must be passed SHARED to return a value.
If --- .STREAM READ contains 'Data was truncated', it means the <read_buffer> field you passed was not large enough to contain all the data that was read. If --- .STREAM READ contains 'EOF', then there is no more data to be read.
Binary File Support - 5.4.4
Starting in Release 5.4.4 you can open a file with a 'binary' option. In this case, the <read length> tells the API how many characters to read. If you do not pass a <read length> or pass zero, it will default to the length of the <read buffer> field. If the length of <read_buffer> is greater than 32000, only the first 32000 bytes will be read. The API might return fewer characters than requested if there aren't enough in the file. The <length read> will always tell you how many characters were actually read. The API will return EOF in .STREAM READ when there are no more characters to be read.
Comments:
Read what other users have said about this page or add your own comments.
--
JeanNeron - 2012-01-23