| #import - WRAP |
This is a specialised #import facility.
| WRAP DEFINITIONS/OPTIONS |
These definitions are specific to the "WRAP" import mode. If you can't understand how they work then I suggest you try using /debug or #debug to watch what variables the import uses etc.
This definition lists zero, one or more names as used on previous "#AsIs SETUP" commands (separated by whitespace). Each is added in turn.
To prevent all character conversions you should assign an empty value to this parameter.
The line is passed as a rexx statement which when executed will restore the line.
Your macro can do anything it likes as it determines what if anything get generated.
The following rexx variables are relevant:
If the contents starts with 'EOF:' then the current record and ALL following are dropped.
| Example of WRAP Import |
Assume "PEOPLE.TXT" contains people data of the following form (each record spans 3 lines with blank lines being ignored and little validation of data):
Harry 18 male Lisa 20 female
Then we could create a simple HTML table as follows:
;--- Define some macros to handle the imported data ----------------------
#define InitMultiLineFieldImport \
#RexxVar RxFieldCount = 0
#define TermMultiLineFieldImport \
#if [RxFieldCount <> 0] \
#error "Incorrectly specified record, have <??RxFieldCount> of 3 fields" \
#endif
#define EachLine \
;--- "read" the line (no blank lines) ------- \
#evaluate+ '' ^ThisLine = strip({$Line})^ \
\
;--- Save information ----------------------- \
#RexxVar RxFieldCount + 1 \
#RexxVar RxField_<??RxFieldCount> = ThisLine \
\
;--- If end of record then output it -------- \
#if [RxFieldCount = 3] \
<TR><TD><??RxField_1> is <??RxField_3> and <??RxField_2> years old \
#RexxVar RxFieldCount = 0 \
#endif
;--- Start the table -----------------------------------------------------
<$InitMultiLineFieldImport>
<BR>
<CENTER>
<TABLE COLS=3 BORDER=1>
;--- Import the data (leaving default at dropping blank lines) -----------
#import "PEOPLE.TXT" WRAP EachLine
;--- End The table -------------------------------------------------------
</TABLE>
</CENTER>
<$TermMultiLineFieldImport>