Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@SET (format 6) - Modify current increment and line number

&pagelevel(3)&pagelevel

This format of the @SET statement defines the current line number and the current increment or restores earlier values for the line number and increment.

Operation

Operands

F mode, L mode

@SET

[line [(inc)] [:text] ] ]

line

inc

This operand specifies the new current line number.

This operand specifies the new current increment. If inc is not specified
then the increment implicitly specified by line is used (see section “Implicit increment assignment”).

text

EDT statement or data input which is executed or inserted in the new
current line after the new current line number and increment have been
defined. The string is treated as if it had been entered at the prompt in L
mode. In particular, the decision to interpret the text as data input or as a
statement is made in accordance with the same rules (for more information,
see section “L mode”).

The text operand starts immediately after the character ':', i.e. any
specified blanks form part of the operand and are taken over into the line in
the case of data input.

If text is not specified (although the colon is), then an empty line (line of
length 0) is inserted. If neither the text operand nor the colon are specified
then only the new current line and increment are defined.

Every @SET line [(inc)] statement defines a new current line number and a new current increment. The values that previously represented the current line number and increment for the current work file are stored in a memory area which can accommodate a maximum of three pairs of values (line number/increment).

The pairs of values previously stored in this memory area slip down one place every time the values are redefined. When the memory area is full the last (oldest) pair of values is lost.

If the @SET statement is specified without operands then the last pair of values saved in this memory area is used as the current line number and current increment.
The movement of the pairs of values in the memory area depends on whether or not the memory area was already full. If the memory area was not already full then all the pairs of values move forward one place.
The last place in the memory area remains empty. If the memory area is already empty when @SET is issued without operands then the previous current line number and the previous current increment are retained and the message EDT4964 is output.

If the memory area is already full when the @SET statement is specified without operands then the last pair of values saved in this memory area is again used as the current line number and current increment.

However, in this case, the values in the memory area are rotated, i.e. all the pairs of values in the memory area except for the first pair move forwards one place and what was previously the first pair in the memory area (and now forms the new current line number and the new current increment) is stored in the last place in the memory area.

If the work file is completely deleted then the memory area is emptied.

In this statement, the statement name may be omitted entirely. Unlike the other formats of the @SET statement, in F mode it is then necessary to specify the statement symbol.

Particular attention is required when using the text operand in F mode. When it is used, EDT temporarily switches to L mode and then reactivates F mode again.
This also occurs if the operand contains a statement which causes a switch to L mode. If the operand contains data input which in turn contains a semicolon or non-paired double quotes then this results in the statement line being broken down into subsegments, possibly with unexpected consequences.