Selects the nth token from a string

        [<nSkipWidth>]) --> cToken


     <cString>  Designates the string that is searched.

     <cDelimiter>  Designates the delimiter list used by the token.

     <nNumber>  Designates which token in the <cString> is copied.

     <nSkipWidth>  Designates the number of delimiter characters or
     sequences that count as delimiters for a token, even an empty token.
     The default value indicates that empty tokens are not taken into


     TOKEN() returns the token for which the number has been specified or
     returns the last token in the <cString>.


     The TOKEN() function allows you to break down date and time strings,
     sentences, file names and paths, etc..  When you specify a value for
     <nNumber>, the token with this number is returned.  If you do not
     specify a value for <nNumber> the function returns the last token in the
     <cString>.  The function uses the following list of delimiters as a

     CHR 32, 0, 9, 10, 13, 26, 32, 138, 141

     and the characters ,.;:!?/\<<>>()^#&%+-*

     The list can be replaced by your own list of delimiters, <cDelimiter>.
     Here are some examples of useful delimiters:

     Table 4-4: Recommended Delimiter Sequences
     Description         <cDelimiter>
     Pages               CHR(12)(Form Feed)
     Sentences           ".!?"
     File Names          ":\."
     Numerical strings   ",."
     Date strings        "/."
     Time strings        ":."

     The skip value designates the number of characters after which a token
     is counted again.  This also allows empty tokens within a string, like
     blanks, to be counted.


     .  When you use the skip width with NUMTOKEN() or TOKEN(), or if
        you use both functions, this value for the skip width must be equal
        in both functions.


     .  Select the last token in the character string:

        ? TOKEN("Clipper")                     // "Clipper"
        ? TOKEN(" ,   Clipper . ")             // "Clipper"
        ? TOKEN("Clipper COMPILER!")           // "COMPILER"

     .  Select the first token in a character string:

        ? TOKEN("Clipper", 1)                  // "Clipper"
        ? TOKEN("Clipper COMPILER!", 1)        // "Clipper"

     .  Select the third token:

        ? TOKEN("This is a test.", 3)          // "a"

     .  In this example only four tokens are present:

        ? TOKEN("This is a test.", 5)          // ""

     .  This example shows how to count empty tokens.  Parameters
        separated by commas are counted, but some of the parameters are
        skipped.  Therefore, a token is counted after one delimiter (comma).
        A parameter is skipped where two delimiters (commas) appear without a

        cString  :=  "one,two,,four"
        nCount   :=  NUMTOKEN(cString, ",", 1)   // Result: 4
        FOR nI = 1 TO nCount
        ? TOKEN(cString, ",", nI, 1)
        NEXT nI

     .  If the string contains different delimiters in varying
        combinations, then preparation with the aid of another function is
        always important (to enhance readability, periods have been used
        instead of spaces):

        cString  :=  "one, two,,four,...,six,.,eight"
        cString  := CHARREM(".", cString)
        ? TOKEN(cString, ",", 6, 1)              // "six"


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.