WRITES

Write the next sequential record to a channel

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
WRITES(channel, data_area[, label][, GETRFA:new_rfa]) [[error_list]]

channel

The channel on which the file is open. The channel must already have been opened in output, append, or update mode. (n)

data_area

An expression that contains the information to be written. (a)

label

(optional) The label to which control is transferred if the output device is full.

GETRFA

(optional) Returns the record’s RFA after the WRITES has been performed. See GETRFA for a complete description.

error_list

(optional) An I/O error list. If any one of the specified errors occurs as part of the WRITES, control is transferred to the associated label.

The WRITES statement is only supported for non-ISAM files.

The WRITES statement writes the record immediately following the most recent record that was read from or written to the output file to a specified channel. It also appends a record terminator to the data area written.

After the WRITES, any automatic record locks are released.

When using xfServer, setting the SCSPREFETCH environment variable turns on record buffering for the WRITES statement.

If you have a telnet terminal connection, see $ERR_IOFAIL for more information.

The following example scans through a file, extracting the name field into a separate list file.

subroutine find_rec
    a_chn               ,d              ;Input file channel
.include "REC:who.rec"                  ;Record "who" includes field "name"
.define TMPCHN          ,99
record
    list_file           ,a*,    "WRK:name.lst"

proc
    xcall flags(4020, 1)
    open(TMPCHN, o, list_file)
    repeat
      begin
        reads(a_chn, who, done)
        writes(TMPCHN, name)
      end
done,
    close TMPCHN
    xreturn
endsubroutine