REC( ) |
Expand IOList Specification |
1. |
REC(iol_obj$[,REC=name$][,ERR=stmtref]) | |
2. |
REC(IOL=iolref[,REC=name$][SEP=char$][,ERR=stmtref]) | |
3. |
REC(FILE chan[,ERR=stmtref]) |
char$ |
Hex or ASCII string value. Character to use as separator to parse the data; e.g. SEP=".". Dynamic SEP=* separators are not supported. If the REC( ) function statement also contains a REC= clause, the REC= clause must precede the SEP= clause. |
chan |
File (channel) from which the REC= value will be returned. |
iol_obj |
String expression that contains the object code of an IOList. |
iolref |
Either a string variable containing the object code of an IOList or a statement reference to an IOList (statement number/label). |
stmtref |
Program line number or statement label to which to transfer control. |
name$ |
String variable. Optional record name/prefix for all of the variables in the IOList (REC=VIS(string$) can also be used). |
String, name/contents of IOList.
The REC( ) function returns the name or contents of an IOList and can be used to define a record prefix.
Expand IOList from Object Code
REC(iol_obj$[,REC=string$][,ERR=stmtref])
With this format, the string returned by the REC( ) function is expanded from a string expression consisting of the object code of an IOList.
Expand from IOList
REC(IOL=iolref[,REC=string$][SEP=char$][,ERR=stmtref])
The string returned by the REC( ) function in this format is expanded from a variable list (IOL=iolref).
In both the above formats, you can add a REC= clause to assign a record name as a prefix to all the variables in the list (similar to a prefix for a composite string variable); that is, the variable you identify in your string variable defines a prefix for the variable names in your IOList. Both formats also allow you to have other functions and directives return values based on a variable name for the record: e.g. LEN (X$) and PRINT X$.
You can also use a SEP=char$. Note that if you include both this and a REC= clause, the REC= clause must precede the SEP= clause.
In the following example, PxPlus would place the input data in CUST.NAME$, CUST.ADR1$ and CUST.ADR2$ using the IOList at line 0110 as a template (even though there is no matching prefix in the IOList); that is, you can use the same IOList as a template for different REC= prefix specifications:
0100 print X$
0110 iolist NAME$,ADR1$,ADR2$
0120 input edit "Name",@(9),": ",CUST.NAME$
0130 input edit "Address 1: ",CUST.ADR1$
0140 input edit @(8),"2: ",CUST.ADR2$
0150 let X$=rec(iol=0110,rec=CUST$)
0160 if len(X$)>100 then print "TOO-LONG"; goto 0120
0170 print X$
->run
BRETT'S BODYSHOP
123 SOME ST. ANYTOWN SK S0M 0V0
Name : YVONNE'S BODYSHOP The values are displayed with the prompts. The user edits to change them.
Address 1: 123 SOME RD.
2: NEWTOWN SK S0M 0V0
YVONNE'S BODYSHOP
123 SOME RD. NEWTOWN SK S0M 0V0
Return Default Value
REC(FILE chan[,ERR=stmtref])
Use this format to obtain the name of the REC= default value for your given file.