TAA Tools
ROTLST          ROTATE LIST                            TAACLQS

The Rotate  List command  allows a  list to  be passed  and returns  an
element  by  rotating  thru  the  list.    When  the  last  element  is
returned,  the next use of ROTLST will  return the first element.  This
can be useful when dealing with  a list of items which must  be wrapped
around.

A  typical  use  of the  command  would  be  to  receive  a list  as  a
parameter.     Assume  you   had  defined  the   following  in  command
definition:

             PARM       KWD(LIST) TYPE(*NAME) LEN(10) MIN(1) MAX(40) +
                          PROMPT('Item name')

If a CL  program is used  as the CPP  (Command Processing Program),  it
could use  the ROTLST command  to keep  returning the next  element and
wrap around when the list is complete.

             PGM        PARM(&LIST)
             DCL        &LIST *CHAR LEN(402)
             DCL        &ELEMENT *CHAR LEN(100)
             DCL        &CURNBR *DEC LEN(5 0)
             DCL        &ITEM *CHAR LEN(10)
 LOOP:       ROTLST     LIST(&LIST) ELMLEN(10) ELEMENT(&ELEMENT) +
                          CURNBR(&CURNBR)
             CHGVAR     &ITEM &ELEMENT

The program  would branch to LOOP each time it  needed the next item in
the list.

The program using  ROTLST should  not change  the value  of the  CURNBR
parameter unless you  want to start again  at the first element  in the
list.   This  is used by  ROTLST to  determine the  next element  to be
processed.   On  the first  use of ROTLST,  the CURNBR  value should be
zero.

Command parameters                                    *CMD
------------------

   LIST          The  list  as  passed  from  command  definition.    A
                 maximum  of 6000 bytes  may be  specified.   Your list
                 length may be less.

   ELMLEN        The  element  length.   The length  cannot  exceed 100
                 bytes.   This would  be the  same  value as  specified
                 for LEN on the command definition.

   ELEMENT       A required  return variable that  must be  declared as
                 *CHAR  LEN(100).   The  value  returned  will be  left
                 adjusted.

   CURNBR        This is  a  required  return  variable  that  must  be
                 declared as *DEC LEN(5 0).

                 On the  first use, the  value passed to  ROTLST should
                 be  zero.   When  ROTLST completes,  the  return value
                 will  be the  number of the  element in  the list that
                 is  returned.    You  should  not  change  this  value
                 during the  program unless you want to  start again at
                 the  first  element  in the  list.    When  the number
                 passed to ROTLST  represents the  last element in  the
                 list, the number  is automatically reset to  cause the
                 first element to be returned.

Restrictions
------------

Because  the command returns  parameters, it can  only be used  in a CL
program.

Only simple lists are supported (no use of ELEM keywords).

Prerequisites
-------------

None.

Implementation
--------------

None, the tool is ready to use.

Objects used by the tool
------------------------

   Object        Type    Attribute      Src member    Src file
   ------        ----    ---------      ----------    ----------

   ROTLST        *CMD                   TAACLQS       QATTCMD
   TAACLQSC      *PGM       CLP         TAACLQSC      QATTCL
					

Added to TAA Productivity tools February 1, 1997


Home Page Up to Top