PUT statement

Sends the value of one or more expressions to an output destination other than the terminal.

Syntax

PUT
  [ STREAM stream | STREAM-HANDLE handle ]
  [ UNFORMATTED ]
  [{expression
       [ FORMAT string ]
       [{ AT | TO }expression ]
      }
    |  SKIP [ ( expression ) ]
    |  SPACE [ ( expression ) ]
  ]...
PUT [ STREAM stream | STREAM-HANDLE handle ] CONTROL expression...
STREAM name
Specifies the name of a stream. If you do not name a stream, the AVM uses the unnamed stream. See the DEFINE STREAM statement reference entry and chapter on alternate I/O sources in OpenEdge Development: Programming Interfaces for more information on streams.
STREAM-HANDLE handle
Specifies the handle to a stream. If handle it is not a valid handle to a stream, the AVM generates a run-time error. Note that stream handles are not valid for the unnamed streams. See the chapter on alternate I/O sources in OpenEdge Development: Programming Interfaces for more information on streams and stream handles.
UNFORMATTED
Tells the AVM to display each expression in the same format produced by the EXPORT statement, but without quotes.
expression
Specifies a constant, field name, variable name, or expression.
FORMAT string
The format in which you want to display the expression. If you do not use the FORMAT option, the AVM uses the defaults shown in the following table.
Default display formats
Type of expression Default format
Field Format from Dictionary
Variable Format from variable definition
Constant character Length of character string
Other Default format for the data type of the expression

The following table shows the default formats for other expressions.

Default data type display formats
Data type Default display format
CHARACTER x(8)
CLASS and ENUM >>>>>>9
DATE 99/99/99
DATETIME 99/99/9999 HH:MM:SS.SSS
DATETIME-TZ 99/99/9999 HH:MM:SS.SSS+HH:MM
DECIMAL ->>,>>9.99
HANDLE >>>>>>9
INT64 ->,>>>,>>9
INTEGER ->,>>>,>>9
LOGICAL yes/no
LONGCHAR1 See footnote.
MEMPTR2 See footnote.
RAW2 See footnote.
RECID >>>>>>9
ROWID2 See footnote.
AT expression
Specifies the column position where you want to place the output value. If that position has already been used on the current line, PUT skips to the next line and puts the expression in the specified column.
TO expression
Specifies the column position where you want to end the output value being output. If that position has already been used on the current line, PUT skips to the next line and puts the expression in the specified column.
SKIP [ ( expression ) ]
Specifies the number of new lines you want to output. If you do not use the SKIP option, PUT will not start a new line to the output stream. If you use the SKIP parameter, but do not specify expression (or if expression is 0), the AVM starts a new line only if output is not already positioned at the beginning of a new line.
SPACE [ ( expression ) ]
Specifies the number of spaces you want to output. Spaces are not placed between items being PUT unless you use the SPACE option.
CONTROL expression
The expression specifies a control sequence that you want to send without affecting the current line, page counters, and positions maintained within ABL. Following CONTROL, expression can be a character-string expression or a RAW variable. It can include null character constants of the form NULL or NULL( expression ), where expression specifies the number of NULLs to send. See the Notes section in this reference entry for details.

Example

This procedure creates a text file that contains the names of each customer. The names are separated from each other by a slash (/). The entire file consists of one long line.

r-put.p

DEFINE STREAM s1.

OUTPUT STREAM s1 TO cus.dat.

FOR EACH Customer NO-LOCK:
  PUT STREAM s1 name "/".
END.

OUTPUT STREAM s1 CLOSE.

Notes

See also

DEFINE STREAM statement, DISPLAY statement, EXPORT statement, OUTPUT TO statement, PAGE statement, PUT SCREEN statement, Stream object handle