REVREMOVE value FROM dynarray SETTING delim
|value||A variable used to receive the extracted element value.|
|dynarray||A dynamic array from which successive data values are to be extracted.|
|delim||A local variable that resolves to an integer code for the dynamic array delimiter type. delim must be specified as a local variable, not as a numeric literal. delim can accept a single dynamic array reference (A<i>), a single substring reference (A[s,l]), or a substring reference nested inside a dynamic array reference (A<i>[s,l]).|
REVREMOVE efficiently extracts successive data values from a dynamic array beginning at the end of the string. The extracted element value is placed in the value variable. REVREMOVE operates on a single dynamic array level; you specify the level delimiter using the delim argument. REVREMOVE maintains an internal pointer so that repeated calls return successively previous element values. When the last element value has been extracted, REMOVE sets value to the empty string.
You can use the GETREM function to return the character position in dynarray of the REVREMOVE pointer.
The REVREMOVE statement is identical to the REMOVE statement, except that it operates in the reverse direction. The REMOVE function, REMOVE statement, and REVREMOVE statement all share the same pointer. It is incremented by a Remove and decremented by a Revremove.
The delim variable resolves to an integer code with one of the following values:
|0||End of file|
|1||@IM Item Mark CHAR(255)|
|2||@FM Field Mark CHAR(254)|
|3||@VM Value Mark CHAR(253)|
|4||@SM Subvalue Mark CHAR(252)|
|5||@TM Text Mark CHAR(251)|
The following example successively extracts the last 5 Value Mark elements from a dynamic array:
names="Fred":@VM:"Barney":@VM:"Wilma":@VM:"Betty" FOR x=1 TO 5 REVREMOVE val FROM names SETTING 3 PRINT val ! Returns: ! Betty ! Wilma ! Barney ! Fred ! "" NEXT