home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #3 / MONSTER.ISO / clipper / rlib32.txt < prev    next >
Text File  |  1993-09-15  |  16KB  |  344 lines

  1.  
  2.                                  RLIB 3.2
  3.  
  4.            Useful Functions for Clipper Application Developers
  5.  
  6.                               By Richard Low
  7.  
  8.  
  9.   Introduction
  10.   ============
  11.  
  12.   This file lists the features and highlights of RLIB 3.2, a function
  13.   summary by category, and an order form.
  14.  
  15.   The shareware version of RLIB 3.2 is available for download from
  16.   CompuServe in the CLIPPER forum library in the file named RLIB32.EXE.
  17.  
  18.  
  19.   What is RLIB?
  20.   =============
  21.  
  22.   RLIB is a Clipper function library that furnishes the application
  23.   programmer a collection of routines to aid in rapid application
  24.   development.  RLIB also contains a set of sophisticated high level
  25.   functions to help you build intuitive end user applications.
  26.  
  27.   RLIB is a collection of functions that simplify a wide range of
  28.   applications oriented programming tasks such as creating and
  29.   maintaining menus, message boxes, database record selection routines,
  30.   network locking functions and much more.
  31.  
  32.   There are many libraries available for Clipper programmers that
  33.   provide indispensable functions.  Most of these library functions are
  34.   written in C and Assembler and provide access to features which are
  35.   not currently supported in Clipper.  RLIB was not designed to provide
  36.   these types of functions, which are widely available from a number of
  37.   sources and provide excellent functionality.  RLIB was designed for
  38.   the Clipper programmer that creates customized application programs
  39.   and systems and who is interested in using a collection of functions
  40.   to make this job faster and above all, consistent.
  41.  
  42.   All RLIB functions are written in Clipper and all of the routines that
  43.   RLIB utilizes are in the CLIPPER and EXTEND libraries distributed in
  44.   the Clipper package.  Clipper has a rich set of commands and functions.
  45.   If you are curious as to some of the capabilities of Clipper, then
  46.   check out the functions in RLIB.  They are ALL WRITTEN 100% IN CLIPPER!
  47.  
  48.  
  49.   Optimized for 5.0
  50.   =================
  51.  
  52.   RLIB contains libraries for CA-Clipper 5.2, Nantucket Clipper 5.01 and
  53.   Summer '87.  Moreover, the 5.x RLIB functions have been fully optimized
  54.   for, not merely re-compiled under, Clipper 5.x.  PRIVATE and PUBLIC
  55.   variables have been converted to LOCAL and STATIC to take advantage of
  56.   the increased performance and reduced object code size.  Code blocks are
  57.   extensively used in place of macros for significant speed enhancements.
  58.  
  59.  
  60.   Instructional Source Code
  61.   =========================
  62.  
  63.   All RLIB functions are written 100% in Clipper and come with full source
  64.   code in both Clipper 5.x and Summer '87.  The source code is an
  65.   excellent example of sound and consistent coding style with innovative
  66.   techniques.  Each RLIB function is meticulously coded, well commented,
  67.   and very readable.  These functions are the result of eight years of
  68.   Clipper programming experience, constantly exploring every Clipper
  69.   feature.
  70.  
  71.   The source code is also a superb example of how to optimize your code
  72.   conversion from Summer '87 to 5.x.  By comparing the source code from
  73.   the Summer '87 to the 5.x RLIB library functions, you can see how to get
  74.   the most from your conversion.  You will see how to make the most
  75.   efficient use of LOCAL and STATIC variables and how to optimally convert
  76.   from the use of macros to code blocks.
  77.  
  78.  
  79.   Includes Message Reader 2.0
  80.   ===========================
  81.  
  82.   RLIB 3.2 comes bundled with Message Reader 2.0, a program which
  83.   simplifies and diversifies the management of messages captured from
  84.   CompuServe forums.  Message Reader lets you easily handle the voluminous
  85.   amounts of information to be gleaned from the CompuServe forum message
  86.   bases.  RLIB 3.2 includes the full source to Message Reader 2.0, over
  87.   3,500 lines of commented and highly instructional code that is an
  88.   excellent sample of what RLIB functions can do.
  89.  
  90.  
  91.   Features
  92.   ========
  93.  
  94.   * Demo program with over 90K of sample code that demonstrates practical
  95.     use of RLIB functions.
  96.  
  97.   * An extensive Norton Guides on-line function reference database for
  98.     instant pop-up RLIB reference.
  99.  
  100.   * PICKREC() - The premier database picklist function!  Use it once and
  101.     you'll never give it up.  Much simpler than TBROWSE() or DBEDIT().
  102.     Built in cursor control with speed key index lookup.  A mark option
  103.     builds a set of records to process, similar to the F5 key in NetWare
  104.     menu utilities.  Border boxing options with extensive color control.
  105.     Create a partial (conditional) view of an indexed database with one
  106.     parameter!  Specify a procedure or function to be executed with each
  107.     keypress.  Designate exit condition keys.
  108.  
  109.   * PDOWNMENU() - Professional pull down menus with separator lines,
  110.     dynamic graying of options and much more.  Automatic menu boxing
  111.     (double line active, single line in-active) and dimming.  Color
  112.     options let you control all menu elements; top menu options and
  113.     highlight, pull down menu options and highlight, unselectable options,
  114.     box colors (both active and inactive), and menu option message text.
  115.  
  116.   * QUERY() - With one function call you have a complete full screen menu
  117.     driven query manager with AND and OR connector logic.  Displays an
  118.     English like description while you build your query.
  119.  
  120.   * OPENED() - Open multiple database and index files with one call to
  121.     OPENED() with complete error reporting.  Reduce coding by 90%,
  122.     especially in network environments!
  123.  
  124.   * Complete set of network file open, record and file lock, and append
  125.     functions with automatic error recovery and message generation.
  126.  
  127.   * ASCII text file 250+ page user manual containing an extensive function
  128.     reference, with descriptions, information and examples.
  129.  
  130.   * Over 9,000 lines of executable source code in both Clipper 5.x and
  131.     Summer '87.  This source code is extremely well formatted and legible
  132.     with extensive comments.
  133.  
  134.   * The RHELP compiler and function API which lets you create text-based,
  135.     indexed access help files.
  136.  
  137.   * Free unlimited technical support via CompuServe Mail.
  138.  
  139.  
  140.   List of RLIB 3.2 Functions By Category
  141.   ======================================
  142.  
  143.   Array Functions
  144.   ---------------
  145.   ADIM2()         Formulate two dimension reference to a linear array.
  146.   ALIST()         List the elements of an array in a screen window.
  147.   ARRAYLEN()      Count the number of contiguous elements in an array.
  148.  
  149.   Character Functions
  150.   -------------------
  151.   ACRONYM()       Convert a text string to its abbreviated acronym.
  152.   ANYCHARSIN()    Test if any characters in a string are in another.
  153.   BRIGHT()        Convert Clipper color string to its bright equivalent.
  154.   DECRYPTED()     Decrypt a character string encrypted with ENCRYPTED().
  155.   ENCRYPTED()     Encrypt a character string.
  156.   GETKEY()        Replace INKEY() to allow internal customization.
  157.   GETPARM()       Retrieve comma delimited token from character string.
  158.   MIDDLE()        Center string by padding with leading/trailing spaces.
  159.   NAMESPLIT()     Swap from First Middle Last to Last, First Middle.
  160.   NOTEMPTY()      Validate that data was entered in a field.
  161.   PARENT()        Retrieve parent directory for a specified directory.
  162.   PATHTO()        Search DOS path for path leading to a given filename.
  163.   STRETCH()       Pad string with blanks or truncate to a defined width.
  164.   TYPEC()         Test if a PUBLIC/PRIVATE is character and not blank.
  165.   VALTYPEC()      Test if a LOCAL/STATIC is character and not blank.
  166.  
  167.   Database Functions
  168.   ------------------
  169.   CATF()          Copy array values to database fields.
  170.   CFTA()          Copy database field values to an array.
  171.   CHANGED()       Test if memory copies of fields have been changed.
  172.   CLOSEAREA()     Close multiple database work areas with one command.
  173.   DBFCREATE()     Dynamically create a database from a structure array.
  174.   FORGET()        Release field variables created with MEMORIZE().
  175.   ISDBF()         Test if a file is a valid .DBF format database file.
  176.   ISFIELD()       Test if a field name is valid in the selected area.
  177.   MAKEALIAS()     Construct a database alias from a full filename.
  178.   MARKREC()       Mark/select multiple records from a pick list.
  179.   MEMORIZE()      Save fields from database record to memory variables.
  180.   MREPLACE()      Replace fields with memvars created with MEMORIZE().
  181.   NO_APPEND()     Network append blank function with error trapping.
  182.   NO_FLOCK()      Network file lock function with error trapping.
  183.   NO_RLOCK()      Network record lock function with error trapping.
  184.   NTXKEYVAL()     Get controlling index key value of the current record.
  185.   OPENED()        Open multiple databases with network error checking.
  186.   PICKREC()       Pop up a scrollable pick list of database records.
  187.   POPUPPICK()     Generic pop-up pick list handler.
  188.   QUERY()         Create a logical query/filter string via menu prompts.
  189.  
  190.   Date Functions
  191.   --------------
  192.   ALPHADATE()     Convert date variables to alphabetic format.
  193.   CALENDAR()      Pop up a configurable calendar on the screen.
  194.   REVDATE()       Reverse date fields for reverse index ordering.
  195.   STR2DATE()      Convert date strings to a Clipper date type variable.
  196.  
  197.   File Functions
  198.   --------------
  199.   CHECKFILE()     Verify valid filenames, optionally pop up a pick list.
  200.   FEOF()          Test for the End Of File status on a binary file.
  201.   FILEDATE()      Retrieve last update date for a given file from DOS.
  202.   FILES()         Test for the existence of multiple files.
  203.   FILESIZE()      Retrieve the size of a file from DOS directory.
  204.   FILETIME()      Retrieve the last update time for a given file.
  205.   FREADLINE()     Read line from text file opened with FOPEN()/FCREATE()
  206.   GETFILE()       Full featured user dialogue box for GETing filenames.
  207.   OLDERFILE()     Determine the older of two disk files.
  208.   PICKFILE()      Pop up directory listing from which to select a file.
  209.   TEMPFILE()      Generate a temporary filename.
  210.  
  211.   Help Functions
  212.   --------------
  213.   RH_HEADER()     Retrieve the header from a RHELP compiled help file.
  214.   RH_LINES()      Get the number of text lines within a help text block.
  215.   RH_TEXT()       Extract help text for a key from compiled .HLP file.
  216.   RH_WIDTH()      Get the maximum line width within a help text block.
  217.  
  218.   Menu Functions
  219.   --------------
  220.   BARMENU()       Create horizontal light bar menus.
  221.   BOXMENU()       Create boxed framed highlight bar (pop up) menus.
  222.   MULTIMENU()     Multi-column menus with four way cursor movement.
  223.   PDOWNINIT()     Initialize the PDOWNMENU() function for use.
  224.   PDOWNMENU()     Activate pull-down menu initialized with PDOWNINIT().
  225.  
  226.   Miscellaneous/Internal Functions
  227.   --------------------------------
  228.   BEEP()          Ring the system bell one or more times.
  229.   BLIP()          Generate a blipping sound for warnings or errors.
  230.   BUZZ()          Generate a buzzing sound for warnings or errors.
  231.   RLIBERROR()     Return and optionally set the last RLIB error number.
  232.   RLIBINIT()      Initialize internal RLIB PUBLIC/STATIC variable(s).
  233.   RLIBVER()       Retrieve the version number of the RLIB.LIB linked.
  234.  
  235.   NetWare Functions
  236.   -----------------
  237.   NWIpxLoaded()   Test if IPX is loaded on the requesting workstation
  238.   NWShellLoaded() Test if the NetWare shell (NETx) is loaded
  239.   NWLoggedIn()    Test if the calling station is logged in to a server
  240.   NWConnectID()   Get workstation connection number
  241.   NWLoginId()     Get login id of user logged into the current station
  242.   NWFullName()    Get full name of user logged into the current station
  243.   NWLoginTime()   Get login time of the current connection
  244.  
  245.   Numeric Functions
  246.   -----------------
  247.   BIN2DEC()       Convert binary number to its equivalent decimal value.
  248.   DEC2HEX()       Convert decimal numeric value to a hexadecimal string.
  249.   DIVIDE()        Divide numbers with divide by zero protection.
  250.   HEX2DEC()       Convert hex string to equivalent decimal value.
  251.   VRANGE()        Numeric range validation with error handling.
  252.  
  253.   Printer Functions
  254.   -----------------
  255.   PRINTCODE()     Convert text printer codes into escape sequences.
  256.   REPORTINIT()    Initialize databases used by StartReport() function.
  257.   STARTREPORT()   Report format and print control facility.
  258.   TARGET()        Provide a pop-up target printer output selection menu.
  259.  
  260.   Screen Functions
  261.   ----------------
  262.   ABOXASK()       Pop up a centered message box using array of messages.
  263.   ATINSAY()       Display expression at in a specified color.
  264.   BORDERBOX()     Draw a box with a one line title area at the top.
  265.   BOXASK()        Pop up a centered message box using multiple messages.
  266.   CENTER()        Center a string and/or get the center position.
  267.   FPROMPT()       Display formatted and highlighted prompt strings.
  268.   FRESTSCREEN()   Restore screen from a file saved with FSAVESCREEN().
  269.   FSAVESCREEN()   Save screen to file to restore with FRESTSCREEN().
  270.   KEYINPUT()      Get keyboard input optionally echoing dots to screen.
  271.   PICKCOLOR()     Pick a color setting from a boxed display.
  272.   POPBOX()        Restore a screen from a SAYINBOX() screen variable.
  273.   RJUSTIFY()      Move trailing blanks to the front.
  274.   SAYINBOX()      Pop up centered message box using multiple messages.
  275.   SETCURSOR()     Retrieve and optionally set the current cursor state.
  276.  
  277.  
  278.   ************************************************************************
  279.  
  280.                     RLIB 3.2 REGISTRATION & ORDER FORM
  281.  
  282.  
  283.   To order your copy of RLIB 3.2, send or FAX the following order form, or
  284.   call to place your order by telephone.  We will send your diskettes by
  285.   First Class U.S. Mail at no charge within the United States and Canada.
  286.   The registration fee for RLIB 3.2 is $49 US.  Please add $4 US for
  287.   overseas orders.
  288.  
  289.  
  290.  
  291.                            O R D E R    F O R M
  292.  
  293.  
  294.    Send to:  RLIB Software                     Tel:    (919) 382-8114
  295.              P. O. Box 3232                    Fax:    (919) 382-3028
  296.              Durham, NC 27715                  CompuServe: 72007,1063
  297.  
  298.  
  299.  
  300.    Quantity  Item Description                    Unit Cost      Total
  301.  
  302.     _____    RLIB 3.2 Function Library in           $49.00    ________
  303.              CA-Clipper 5.2, Clipper 5.01,
  304.              and Summer '87 versions,
  305.              including full source code.
  306.  
  307.     *** No charge for shipping within the United States and Canada ***
  308.  
  309.     For shipping outside the United States and Canada please add:
  310.  
  311.     _____    Outside the U.S. and Canada            $ 4.00    ________
  312.  
  313.     _____    Overnight (Only in U.S. and Canada)    $20.00    ________
  314.  
  315.  
  316.                                                     TOTAL  $__________
  317.  
  318.  
  319.    Your Name:   ______________________________________________________
  320.  
  321.      Company:   ______________________________________________________
  322.  
  323.      Address:   ______________________________________________________
  324.  
  325.         City:   _______________________________ State: _______________
  326.  
  327.     Zip Code:   _________________ Country: ___________________________
  328.  
  329.    Telephone:   (________)____________________________
  330.  
  331.  
  332.    Disk Size:   ______3.5"          ______5.25"
  333.  
  334.      Payment:   ______Check/M.O.    ______MasterCard       _______VISA
  335.  
  336.       Card #:   ______________________________  Expires: _____________
  337.  
  338.    Name as it appears on card: _______________________________________
  339.  
  340.  
  341.    Signature:   ______________________________________________________
  342.  
  343.  
  344.