==================================================================
     USER-DEFINED FUNCTIONS
     ==================================================================
     PRODUCT :  R:BASE                  VERSION    :  3.1C
     CATEGORY:  PROGRAMMING             SUBCATEGORY:  FUNCTIONS
     ==================================================================
 
     UDFs are here!  Microrim is pleased to announce that the first set of
     UDF packs for 3.1C is now available. Thirty of the most commonly
     requested features are available as user-defined functions (UDFs).  Now
     you can easily add many of those neat little features you've always
     wanted in your applications by using the C programming language instead
     of R:BASE code. The UDFs have all been compiled into executable files
     and are ready to use.
 
     The packs are $19.95 each. Each UDF pack contains 10 functions in a
     ready-to-use format.  Just copy the files to your application directory
     and go!  Call the Microrim Sales Department at 1-800-628-6990 to order
     your UDFs.  UDFs can be used only in 3.1C, so if you haven't ordered
     your 3.1C update yet, you can order it at the same time.
 
     UDF Pack #1 contains the following:
       <> ADDMONTH: adds a number of months to a date
       <> ADDYEAR: adds a number of years to a date
       <> BETWEEN: determines whether a date expression lies between two
          other date expressions
       <> FILE: determines whether a file exists in the specified directory
       <> PRT_STAT: returns the status of the printer
       <> INLIST: determines whether a date is contained within a list of
          dates
       <> ISALPHA: determines whether the first character of a string is
          alphabetic (a..z, A..Z)
       <> ISDIGIT: determines whether the first character of a string is
          a number (0..9)
       <> ISLOWER: determines whether the first character of a string is
          lower case
       <> ISUPPER: determines whether the first character of a string is
          upper case
 
     UDF Pack #2 contains the following:
       <> CEILING: finds the nearest integer that is greater than or equal to
          the value provided
       <> FLOOR: finds the nearest integer that is less than or equal to the
          value provided
       <> ISLEAP: determines whether a date is a leap year
       <> MONTHBET: finds the number of months between two dates
       <> NEXTLEAP: finds the next leap year after the date provided
       <> I_BASCON: converts a number to a different base number system
       <> OCCURS: counts the number of times a substring occurs in a string
       <> PADC: pads a string on both sides with a specified character
       <> PADL: pads a string on the left with a specified character
       <> PADR: pads a string on the right with a specified character
 
 
     UDF Pack #3 contains the following:
       <> ELAPSED: finds the elapsed time between two date/time stamps
       <> FIRSTW: returns a given number of words from the beginning of a
          string
       <> FRSTLAST: switches a name from lastname, firstname to firstname
          lastname and removes the comma
       <> JULTOGRG: converts a Julian date to a Gregorian date
       <> LASTDAY: returns the last day of the month
       <> LASTFRST: switches a name from firstname lastname to lastname,
          firstname
       <> MIDW: returns a given number of words from the middle of a string
       <> NEXTDAY: finds the date of the specified day of the week following
          a given date
       <> QUARTER: finds the calendar quarter in which a specified date falls
       <> SOUNDEX: returns the Soundex code for a string