home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / PASCAL / TBTREE16.ZIP / QUICKREF.TXT < prev    next >
Text File  |  1989-07-08  |  29KB  |  818 lines

  1. @PO 1
  2. @MT 4
  3. @HM 1
  4. @HE   TBTREE16             Copyright (c)  1988,1989   Dean H. Farwell II
  5. @MB 4
  6. @FM 2
  7. @PC 40
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                   TBTREE16
  22.  
  23.                          ( Turbo BTree version 1.5 )
  24.  
  25.                             Quick Reference Guide
  26.  
  27.                Copyright (c)  1988,1989    Dean H. Farwell II
  28.  
  29. @PA
  30. This reference guide is intended to simplify use of TBTREE16.  It provides a
  31. listing of some of the procedures, functions, data types and constants
  32. available to the user.  It is not all inclusive but is limited to those which
  33. are normally required by the user to use TBTREE16.  I have specifically
  34. excluded those items which I use internally between units but are of little
  35. value to you or those which could be used in other applications but are not
  36. necessary to use with TBTREE.  You can still use them by referring to the
  37. particular unit in which they reside.  However, it is imperative that you
  38. understand what the internal routines are doing before using them.
  39.  
  40. This Quick Reference Guide was developed to simplify the learning process for
  41. the user and to give guidance concerning which routines the user should
  42. reasonably be involved with.
  43.  
  44. This guide is not intended to fully document the included items, especially
  45. the procedures and functions.  The source code for the units contains much
  46. more in-depth documentation. This guide is only meant to provide a place to
  47. turn when a quick refresher is required.
  48.  
  49.  
  50.                                   Constants
  51.                                   ---------
  52.  
  53. FNSIZE
  54.      - FNSIZE = 80;
  55.      - Maximum number of characters in a file name (including drive, path,
  56.        file name and extension)
  57.      - FILEDECS unit
  58.  
  59. MAXDATASIZE
  60.      - MAXDATASIZE = 65520;
  61.      - Maximum size for a data record (logical record)
  62.      - LOGICAL unit
  63.  
  64. MAXSTRINGLENGTH = 255;
  65.      - MAXSTRINGLENGTH = 255;
  66.      - Maximum characters in a string
  67.      - STRINGS unit
  68.  
  69. MAXVALSIZE
  70.      - MAXVALSIZE = 245;
  71.      - Maximum size of an index entry
  72.      - BTREE unit
  73. @PA
  74.                                     Types
  75.                                     -----
  76.  
  77. BufferSizeType
  78.      - BufferSizeType = 0 .. MAXWORD;
  79.      - Used for number of pages in buffer
  80.      - PAGE unit
  81.  
  82. ByteArray
  83.      - ByteArray = Array [ByteArrayRange] of Byte;
  84.      - Used to store 1 to 255 bytes of data.  Routines in ByteData unit treat
  85.        it somewhat like a string in that first byte contains number of bytes
  86.        of data.
  87.      - BYTEDATA unit
  88.  
  89. ByteArrayRange
  90.      - ByteArrayRange = 0 .. MAXBYTE;
  91.      - Used as index type for the ByteArray type
  92.      - BYTEDATA unit
  93.  
  94. DataSizeRange
  95.      - DataSizeRange = 0 .. MAXDATASIZE;
  96.      - Range for size of a field and a logical record
  97.      - LOGICAL unit
  98.  
  99. FileTypes
  100.      - FileTypes = (INDEX,DATA,VLRDATA);
  101.      - File types created and used as part of TBTREE16 which are of interest
  102.        to the user
  103.      - FILEDECS unit
  104.  
  105. FnString
  106.      - FnString  = String[FNSIZE];
  107.      - Used for file names (including drive, full path, file name and
  108.        extensions)
  109.      - FILEDECS unit
  110.  
  111. IOErrorRec
  112.      - IOErrorRec = record
  113.            routineName : RoutineNameString;
  114.            tBTreeIOResult : Word;
  115.            end;
  116.      - Used to hold information when an I/O error occurs
  117.      - ERROR unit
  118. @PA
  119. LrList
  120.      - LrList = record
  121.            fName    : FnString;
  122.            currPage : PrNumber;
  123.            current  : LrNumber;
  124.            count    : LrNumber;
  125.            case Boolean of
  126.                TRUE  : (lrArray  : LogicalRecordsArray);
  127.                FALSE : (page : SinglePage);
  128.            end;
  129.      - Type used for logical record lists.  Never manipulate any of the
  130.        fields directly.  Only declare a variable of this type and use
  131.        it as a parameter for the various routines supplied
  132.      - LRECLIST unit
  133.  
  134. LrNumber
  135.      - LrNumber = RecordNumber;
  136.      - Logical record number within a file
  137.      - FILEDECS unit
  138.  
  139. OpenFileRange
  140.      - OpenFileRange = Byte;
  141.      - Used as type for number of files that can be open at one time
  142.      - FILEBUFF unit
  143.  
  144. RoutineNameString
  145.      - RoutineNameString = String[50];
  146.      - Used as type for routine name where error occurred
  147.      - ERROR unit
  148.  
  149. PrNumber
  150.      - PrNumber = RecordNumber;
  151.      - Physical record number within a file
  152.      - FILEDECS unit
  153.  
  154. RecordNumber
  155.      - RecordNumber = 0 .. MAXLONGINT;
  156.      - Generic Record number (logical or physical).
  157.      - FILEDECS unit
  158.  
  159. SortFieldList
  160.      - SortFieldList = ^SortField;
  161.      - Used to form a linked list containing info about sort fields
  162.      - SORT unit
  163.  
  164. SortFieldPosition
  165.      - SortFieldPosition = DataSizeRange;
  166.      - Position of sort field (in bytes) within the data record
  167.      - SORT unit
  168.  
  169. StringCondition
  170.      - StringCondition = (ST,    (* String Starts With Substring *)
  171.                           CO,    (* String Contains Substring *)
  172.                           EN);   (* String Ends With Substring *)
  173.      - Used to specify partial string match criteria
  174.      - NUMBERS unit
  175. @PA
  176. StringLengthRange
  177.      - StringLengthRange = 0 .. MAXSTRINGLENGTH;
  178.      - Used as range for number of characters in a string
  179.      - STRINGS unit
  180.  
  181. UserDataArray
  182.      - UserDataArray  = Array [0 .. 255] of Byte;
  183.      - Used to store user data in parameter records
  184.      - FILEDECS unit
  185.  
  186. ValueType
  187.      - ValueType = (INVALIDVALUE,
  188.                     BYTEVALUE,
  189.                     SHORTINTVALUE,
  190.                     INTEGERVALUE,
  191.                     LONGINTVALUE,
  192.                     WORDVALUE,
  193.                     STRINGVALUE,
  194.                     REALVALUE,
  195.                     SINGLEVALUE,
  196.                     DOUBLEVALUE,
  197.                     EXTENDEDVALUE,
  198.                     COMPVALUE,
  199.                     BYTEARRAY);
  200.      - Data types supported by TBTREE16 indexes
  201.      - NUMBERS unit
  202.  
  203. VersionString
  204.      - VersionString = String[6];
  205.      - Used to store version information in the parameter records for the
  206.        different file types.
  207.      - FILEDECS unit
  208.  
  209. VSizeType = 1 .. MAXVALSIZE;
  210.      - Size range for index entries
  211.      - BTREE unit
  212.  
  213. @PA
  214.                                  Procedures
  215.                                  ----------
  216.  
  217. AddFieldToSortList
  218.      - procedure AddFieldToSortList(var sPtr : SortFieldList;
  219.                                     pos : SortFieldPosition;
  220.                                     vType : ValueType);
  221.      - Used to add one sort field to a sort field list
  222.      - SORT unit
  223.  
  224. AddToLrList
  225.      - procedure AddToLrList(lrNum : LrNumber;
  226.                              var lrLst : LrList);
  227.      - Add a logical record number to a logical record list (not normally
  228.        needed except internally)
  229.      - LRECLIST unit
  230.  
  231. AppendTextFile
  232.      - procedure AppendTextFile(fName : FnString;
  233.                                 var fId : Text);
  234.      - Checks open file buffer to see if file is open.  If not it opens
  235.        file and adds it to the buffer.  In either case it returns the file
  236.        id.  It opens the file for appending.
  237.      - FILEBUFF unit
  238.  
  239. CloseAllFiles
  240.      - procedure CloseAllFiles;
  241.      - Close all files which are open and in the open file buffer
  242.      - FILEBUFF unit
  243.  
  244. CloseFile
  245.      - procedure CloseFile(fName : FnString);
  246.      - Close a file and delete its entry from the open files buffer
  247.      - FILEBUFF unit
  248.  
  249. ConcatenateThreeValues
  250.      - procedure ConcatenateThreeValues(var val1;
  251.                                         vType1 : ValueType;
  252.                                         var val2;
  253.                                         vType2 : ValueType;
  254.                                         var val3;
  255.                                         vType3 : ValueType;
  256.                                         var resultArray);
  257.      - Will take three values and will create a new byte array which is a
  258.        concatenation of the three input values.
  259.      - BYTEDATA unit
  260.  
  261. ConcatenateTwoValues
  262.      - procedure ConcatenateTwoValues(var val1;
  263.                                       vType1 : ValueType;
  264.                                       var val2;
  265.                                       vType2 : ValueType;
  266.                                       var resultArray);
  267.      - Will take two values and will create a new byte array which is a
  268.        concatenation of the two input values.
  269.      - BYTEDATA unit
  270. @PA
  271. ConvertStringToByteArray
  272.      - procedure ConvertStringToByteArray(str : String;
  273.                                           maxLength : StringLengthRange;
  274.                                           var resultArray);
  275.      - Takes a string as input and creates a byte array.
  276.      - BYTEDATA unit
  277.  
  278. CopyLrList
  279.      - procedure CopyLrList(sourceLrLst : lrList;
  280.                             var destLrLst : LrList);
  281.      - Create a new logical record list which is a copy of the given list
  282.      - LRECLIST unit
  283.  
  284. CreateDataFile
  285.      - procedure CreateDataFile(dFName : FnString;
  286.                                 lrSize : DataSizeRange);
  287.      - Used to create a data file
  288.      - LOGICAL unit
  289.  
  290. CreateIndexFile
  291.      - procedure CreateIndexFile(iFName : FnString;
  292.                                  valSize : VSizeType;
  293.                                  valType : ValueType);
  294.      - Used to create an index file
  295.      - BTREE unit
  296.  
  297. CreateLrList
  298.      - procedure CreateLrList(var lrLst : LrList);
  299.      - Create a logical record list
  300.      - LRECLIST unit
  301.  
  302. DeleteDataFile
  303.      - procedure DeleteDataFile(dFName : FnString);
  304.      - Used to delete a data file
  305.      - LOGICAL unit
  306.  
  307. DeleteFromLrList
  308.      - procedure DeleteFromLrList(var lrLst : LrList);
  309.      - Delete one entry from a logical record list
  310.      - LRECLIST unit
  311.  
  312. DeleteIndexFile
  313.      - procedure DeleteIndexFile(iFName : FnString);
  314.      - Used to delete an index file
  315.      - BTREE unit
  316.  
  317. DeleteDataRecord
  318.      - procedure DeleteDataRecord(dFName : FnString;
  319.                                   lrNum : LrNumber);
  320.      - Delete the given logical record from the DATA file
  321.      - LOGICAL unit
  322.  
  323. DeleteValueFromBTree
  324.      - procedure DeleteValueFromBTree(iFName : FnString;
  325.                                       lrNum : LrNumber;
  326.                                       var paramValue);
  327.      - Delete a value and associated logical record number from index
  328.      - BTREE unit
  329. @PA
  330. DestroyLrList
  331.      - procedure DestroyLrList(var lrLst : LrList);
  332.      - Destroys a logical record list and performs necessary cleanup
  333.      - LRECLIST unit
  334.  
  335. DestroySortList
  336.      - procedure DestroySortList(var sPtr : SortFieldList);
  337.      - Deletes all entries from a sort field list returning the heap
  338.        space
  339.      - SORT unit
  340.  
  341. Difference
  342.      - procedure Difference(lrLst1 : LrList;
  343.                             lrLst2 : LrList;
  344.                             var lrLst3 : LrList);
  345.      - Creates list containing logical record numbers in list one
  346.        but not in list two
  347.      - SETOPS unit
  348.  
  349. FastMover
  350.      - procedure FastMover(var source;
  351.                            var dest;
  352.                            numToMove : word);
  353.      - Replaces the Turbo Pascal Move routine
  354.      - FASTMOVE unit
  355.  
  356. FetchFileVersion
  357.      - procedure FetchFileVersion(fName : FnString;
  358.                                   var verString : VersionString);
  359.      - Returns the version of TBTREE used to create the file
  360.      - FILES unit
  361.  
  362. FetchUserDataArray
  363.      - procedure FetchUserDataArray(fName : FnString;
  364.                                     var userData : UserDataArray);
  365.      - Fetch and return user data array from the given INDEX or DATA file
  366.      - FILES unit
  367.  
  368. FindLrNumInBTree
  369.      - procedure FindLrNumInBTree(iFName : FnString;
  370.                                   lrNum : LrNumber;
  371.                                   var paramValue;
  372.                                   var found : Boolean);
  373.      - Find logical record number in index and return associated entry if
  374.        found
  375.      - BTREE unit
  376.  
  377. GetALogicalRecord
  378.      - procedure GetALogicalRecord(fName : FnString;
  379.                                    lrNum : LrNumber;
  380.                                    var destination);
  381.      - Get the specified logical record and place it in destination
  382.      - LOGICAL unit
  383. @PA
  384. GetRangeFromBTree
  385.      - procedure GetRangeFromBTree(iFName : FnString;
  386.                                    var paramValue1;
  387.                                    cond1 : Condition;
  388.                                    var paramValue2;
  389.                                    cond2 : Condition;
  390.                                    var lrLst : LrList);
  391.      - Create a list which contains all logical record numbers with
  392.        values which meet both conditions (fall within the given range)
  393.      - BTREE unit
  394.  
  395. GetSubstringAtPositionFromBTree
  396.      - procedure GetSubstringFromBTree(iFName : FnString;
  397.                                        var paramValue;
  398.                                        position : StringLengthRange;
  399.                                        var lrLst : LrList);
  400.      - Create a list which contains all logical record numbers with
  401.        values which meet the given string condition by having a partial string
  402.        match at the exact location within the target string
  403.      - BTREE unit
  404.  
  405. GetSubstringFromBTree
  406.      - procedure GetSubstringFromBTree(iFName : FnString;
  407.                                        var paramValue;
  408.                                        cond : StringCondition;
  409.                                        var lrLst : LrList);
  410.      - Create a list which contains all logical record numbers with
  411.        values which meet the given string condition
  412.      - BTREE unit
  413.  
  414. GetValidLogicalRecords
  415.      - procedure GetValidLogicalRecords(fName : FnString;
  416.                                         var lrLst : LrList);
  417.      - Returns a list of all logical records for a given file.  Allows
  418.        retrievals without use of an index.
  419.      - LOGICAL unit
  420.  
  421. GetValuesFromBTree
  422.      - procedure GetValuesFromBTree(iFName : FnString;
  423.                                     var paramValue;
  424.                                     cond : Condition;
  425.                                     var lrLst : LrList);
  426.      - Create list which contains all logical record numbers which
  427.        meet the given condition.
  428.      - BTREE unit
  429.  
  430. InsertValueInBTree
  431.      - procedure InsertValueInBTree(iFName : FnString;
  432.                                     lrNum : LRNumber;
  433.                                     var paramValue);
  434.      - Insert a value and associated logical record number in an index
  435.      - BTREE unit
  436. @PA
  437. Intersection
  438.      - procedure Intersection(lrLst1 : LrList;
  439.                               lrLst2 : LrList;
  440.                               var lrLst3 : LrList);
  441.      - Creates list containing logical record numbers in both lists
  442.      - SETOPS unit
  443.  
  444. OpenTextFile
  445.      - procedure OpenTextFile(fName : FnString;
  446.                               var fId : Text);
  447.      - Checks open file buffer to see if file is open.  If not it
  448.        opens file and adds it to the buffer.  In either case it returns
  449.        the file id
  450.      - FILEBUFF unit
  451.  
  452. OpenUntypedFile
  453.      - procedure OpenUntypedFile(fName : FnString;
  454.                                  var fId : File;
  455.                                  recSize : Word);
  456.      - Checks open file buffer to see if file is open.  If not it
  457.        opens file and adds it to the buffer.  In either case it returns
  458.        the file id
  459.      - FILEBUFF unit
  460.  
  461. PrintBufferStats
  462.      - procedure PrintBufferStats;
  463.      - Prints buffer usage statistics to the printer
  464.      - PAGE unit
  465.  
  466. PrintPageBuffer
  467.      - procedure PrintPageBuffer;
  468.      - Prints entire page buffer to printer
  469.      - PAGE unit
  470.  
  471. ReleaseAllPages
  472.      - procedure ReleaseAllPages(fName : FnString);
  473.      - Releases all pages for a given file.  Frees up buffer space.
  474.        Does not write them to disk automatically.  VERY DANGEROUS.  Do
  475.        not use unless you fully understand what the routine does!
  476.      - PAGE unit
  477.  
  478. ReleasePage
  479.      - procedure ReleasePage(fName : FnString;
  480.                              prNum : PrNumber);
  481.      - Releases given page for a given file.  Frees up buffer space.
  482.        Does not write it to disk automatically.  VERY DANGEROUS.  Do
  483.        not use unless you fully understand what the routine does!
  484.      - PAGE unit
  485.  
  486. RewriteTextFile
  487.      - procedure RewriteTextFile(fName : FnString;
  488.                                  var fId : Text);
  489.      - Rewrites a text file and returns the file id.  Adds file to
  490.        files open buffer
  491.      - FILEBUFF unit
  492. @PA
  493. RewriteUntypedFile
  494.      - procedure RewriteUntypedFile(fName : FnString;
  495.                                     var fId: File;
  496.                                     recSize : Word);
  497.      - Rewrites an untyped file and returns the file id.  Adds file to
  498.        files open buffer
  499.      - FILEBUFF unit
  500.  
  501. SaveUserDataArray
  502.      - procedure SaveUserDataArray(fName : FnString;
  503.                                    userData : UserDataArray);
  504.      - This routine will store the user data array into the given DATA or
  505.        INDEX file.
  506.      - FILES unit
  507.  
  508. SetImmediateDiskWrite
  509.      - procedure SetImmediateDiskWrite(x : Boolean);
  510.      - Used to set whether dirty pages are immediately written to
  511.        disk.  Setting this to TRUE will degrade performance.
  512.      - PAGE unit
  513.  
  514. SetMaxBufferPages
  515.      - procedure SetMaxBufferPages(n : BufferSizeType);
  516.      - Used to set the maximum buffer pages to use.  Can be done dynamically
  517.        (at any time) even if more pages than the new maximum are in use
  518.      - PAGE unit
  519.  
  520. SetMaxOpenFiles
  521.      - procedure SetMaxOpenFiles(n : OpenFileRange);
  522.      - Sets maximum number of files to be open at one time (open in
  523.        the open file buffer)
  524.      - FILEBUFF unit
  525.  
  526. SortList
  527.      - procedure SortList(var lrLst : LrList;
  528.                           fName : FnString;
  529.                           sPtr : SortFieldList;
  530.                           var success : Boolean);
  531.      - Sorts a logical record list in ascending order using the sort field
  532.        list
  533.      - SORT unit
  534.  
  535. StoreALogicalRecord
  536.      - procedure StoreALogicalRecord(fName : FnString;
  537.                                      lrNum : LrNumber;
  538.                                      var source);
  539.      - Stores a logical record in the given data file.  Used when the
  540.        associated logical record number is known
  541.      - LOGICAL unit
  542.  
  543. Union
  544.      - procedure Union(lrLst1 : LrList;
  545.                        lrLst2 : LrList;
  546.                        var lrLst3 : LrList);
  547.      - Creates list containing logical record numbers in either list
  548.      - SETOPS unit
  549. @PA
  550. UserIOError
  551.      - procedure UserIOError(ioErrRec : IOErrorRec);
  552.      - Called when I/O error occurs with TBTREE16 routines
  553.      - ERROR unit
  554.  
  555. UsingCursorMakeCursorInvalid
  556.      - procedure UsingCursorMakeCursorInvalid(iFName : FnString);
  557.      - Makes cursor invalid.  Never required.  Only alleviates overhead of
  558.        keeping track of cursor when inserts and deletes are performed on the
  559.        index.  Will slightly speed up the inserts and deletes.
  560.      - BTREE unit
  561.  
  562. VLRCreateDataFile
  563.      - procedure VLRCreateDataFile(dFName : FnString);
  564.      - creates a variable length record data file
  565.      - VLOGICAL unit
  566.  
  567. VLRDeleteDataFile
  568.      - procedure VLRDeleteDataFile(dFName : FnString);
  569.      - Deletes a variable length record data file.
  570.      - VLOGICAL unit
  571.  
  572. VLRDeleteDataRecord
  573.      - procedure VLRDeleteDataRecord(dFName : FnString;
  574.                                      lrNum : lrNumber);
  575.      - Delete the given logical record from the VRLDATA file
  576.      - VLOGICAL unit
  577.  
  578. VLRGetALogicalRecord
  579.      - procedure VLRGetALogicalRecord(dFName : FnString;
  580.                                       lrNum : LrNumber;
  581.                                       var destination);
  582.      - Get the specified logical record and place it in destination
  583.      - VLOGICAL unit
  584.  
  585. VLRGetValidLogicalRecords
  586.      - procedure VLRGetValidLogicalRecords(dFName : FnString;
  587.                                            var lrLst : LrList);
  588.      - Returns a list of all logical records for a given variable length
  589.        record data file.  Allows retrievals without use of an index.
  590.      - VLOGICAL unit
  591.  
  592. VLRStoreALogicalRecord
  593.      - procedure VLRStoreALogicalRecord(dFName : FnString;
  594.                                         lrNum : LrNumber;
  595.                                         var source;
  596.                                         size : DataSizeRange);
  597.      - Stores a logical record in the given variable length record data file.
  598.        Used when the associated logical record number is known
  599.      - VLOGICAL unit
  600. @PA
  601. WriteBufferToDisk
  602.      - procedure WriteBufferToDisk(fName : FnString);
  603.      - Writes all dirty buffer pages for a particular file to the
  604.        disk.
  605.      - PAGE unit
  606.  
  607. WriteEntireBufferToDisk
  608.      - procedure WriteEntireBufferToDisk;
  609.      - Writes all dirty buffer pages to the disk.  Do this prior to
  610.        terminating program
  611.      - PAGE unit
  612. @PA
  613.                                   Functions
  614.                                   ---------
  615.  
  616. CheckImmediateDiskWrite
  617.      - function CheckImmediateDiskWrite : Boolean;
  618.      - Returns true if pages will be immediately written to disk.
  619.        Allows you to check it at any time.
  620.      - PAGE unit
  621.  
  622. CheckMaxBufferPages
  623.      - function CheckMaxBufferPages : BufferSizeType;
  624.      - Returns maximum buffer pages allowed
  625.      - PAGE unit
  626.  
  627. CheckPagesInUse
  628.      - function CheckPagesInUse : BufferSizeType;
  629.      - Returns number of pages currently in use
  630.      - PAGE unit
  631.  
  632. DataRecordUsed
  633.      - function DataRecordUsed(dFName : FnString;
  634.                                lrNum : LrNumber) : Boolean;
  635.      - Checks the existence of a data record for the given data file
  636.      - LOGICAL unit
  637.  
  638. FileExists
  639.      - function FileExists(fName : FnString) : Boolean;
  640.      - Checks the existence of any file
  641.      - FILES unit
  642.  
  643. FindLargestLr
  644.      - function FindLargestLr(lrLst : LrList) : LrNumber;
  645.      - returns the largest logical record in a list.  Probably not
  646.        useful except internally
  647.      - LRECLIST unit
  648.  
  649. FindLrInList
  650.      - function FindLrInList(lr : LrNumber;
  651.                              lrLst : LrList) : Boolean;
  652.      - Returns true if the given logical record resides in the logical
  653.        record list
  654.      - LRECLIST unit
  655.  
  656. GetCountLr
  657.      - function GetCountLr(lrLst : LrList) : LrNumber;
  658.      - Returns the number of entries in the logical record list
  659.      - LRECLIST unit
  660.  
  661. GetCurrLr
  662.      - function GetCurrLr(lrLst : LrList) : LrNumber;
  663.      - Returns the logical record number corresponding to the current
  664.        cursor position.  The cursor position is not changed.
  665.      - LRECLIST unit
  666. @PA
  667. GetDataRecordSize
  668.      - function GetDataRecordSize(dFName : FnString) : DataSizeRange;
  669.      - LOGICAL unit
  670.  
  671. GetFirstLr
  672.      - function GetFirstLr(var lrLst : LrList) : LrNumber;
  673.      - Set cursor to front of list and return the first logical record
  674.        number in the list
  675.      - LRECLIST unit
  676.  
  677. GetLastLr
  678.      - function GetLastLr(var lrLst : LrList) : LrNumber;
  679.      - Set cursor to end of list and return the last logical record
  680.        number in the list
  681.      - LRECLIST unit
  682.  
  683. GetNextLr
  684.      - function GetNextLr(var lrLst : LrList) : LrNumber;
  685.      - Moves the cursor forward and returns the corresponding logical
  686.        record number
  687.      - LRECLIST unit
  688.  
  689. GetNumberOpenFiles
  690.      - function GetNumberOpenFiles : OpenFileRange;
  691.      - Returns the number of files which are presently open
  692.      - FILEBUFF unit
  693.  
  694. GetPrevLr
  695.      - function GetPrevLr(var lrLst : LrList) : LrNumber;
  696.      - Moves the cursor backward and returns the corresponding logical
  697.        record number
  698.      - LRECLIST unit
  699.  
  700. LastDataRecord
  701.      - function LastDataRecord(dFName : FnString) : LrNumber;
  702.      - Returns the logical record of the last valid data record in the given
  703.        data file
  704.      - LOGICAL unit
  705.  
  706. NumberOfBTreeLevels
  707.      - function NumberOfBTreeLevels(iFName : FnString) : Byte;
  708.      - Return the number of levels for the given index
  709.      - BTREE unit
  710.  
  711. StoreNewLogicalRecord
  712.      - function StoreNewLogicalRecord(fName : FnString;
  713.                                        var source) : LrNumber;
  714.      - Stores a new logical record in a data file.  Used when the
  715.        logical record number is not known since this routine returns
  716.        the logical record number after the store takes place.  You
  717.        would not use this for an update.
  718.      - LOGICAL unit
  719. @PA
  720. UsingCursorAndGEValueGetLr
  721.      - function UsingCursorAndGEValueGetLr(iFName : FnString;
  722.                                            var paramValue) : LrNumber;
  723.      - Sets internal cursor to location in the index where the first value
  724.        greater than or equal to paramValue is found.  Returns 0 if there is no
  725.        such entry
  726.      - BTREE unit
  727.  
  728. UsingCursorAndValueGetLr
  729.      - function UsingCursorAndValueGetLr(iFName : FnString;
  730.                                          var paramValue) : LrNumber;
  731.      - Sets internal cursor to location in the index matching paramValue and
  732.        returns the corresponding logical record number.  Returns 0 if there
  733.        is no entry matching paramValue.
  734.      - BTREE unit
  735.  
  736. UsingCursorGetCurrLr
  737.      - function UsingCursorGetCurrLr(iFName : FnString) : LrNumber;
  738.      - Does not move the internal cursor.  Only returns the logical record
  739.        number corresponding to the current cursor position.  Returns 0 if the
  740.        cursor is not valid.
  741.      - BTREE unit
  742.  
  743. UsingCursorGetFirstLr
  744.      - function UsingCursorGetFirstLr(iFName : FnString) : LrNumber;
  745.      - Sets internal cursor to front of the index and returns the first
  746.        logical record number.  Returns 0 if there are no entries in the index.
  747.      - BTREE unit
  748.  
  749. UsingCursorGetLastLr
  750.      - function UsingCursorGetLastLr(iFName : FnString) : LrNumber;
  751.      - Sets internal cursor to end of the index and returns the last logical
  752.        record number.  Returns 0 if there are no entries in the index.
  753.      - BTREE unit
  754.  
  755. UsingCursorGetNextLr
  756.      - function UsingCursorGetNextLr(iFName : FnString) : LrNumber;
  757.      - Moves the internal cursor to the next entry and returns the
  758.        corresponding logical record number.  Returns 0 if the cursor was not
  759.        valid or if there is no next entry (you have moved past the end of
  760.        index.
  761.      - BTREE unit
  762.  
  763. UsingCursorGetPrevLr
  764.      - function UsingCursorGetPrevLr(iFName : FnString) : LrNumber;
  765.      - Moves the internal cursor to the previous entry and returns the
  766.        corresponding logical record number.  Returns 0 if the cursor was not
  767.        valid or if there is no previous entry (you have moved past beginning
  768.        of index.
  769.      - BTREE unit
  770. @PA
  771. UsingCursorSkipAndGetNextLr
  772.      - function UsingCursorSkipAndGetNextLr(iFName : FnString) : LrNumber;
  773.      - Moves the internal cursor to the next entry not equal to the current
  774.        entry and returns the corresponding logical record number.  In other
  775.        words, it will skip the cursor over all nonmatching values.  Returns 0
  776.        if the cursor was not valid or if there is no next nonequal entry (you
  777.        have moved past the end of index).
  778.      - BTREE unit
  779.  
  780. UsingCursorSkipAndGetPrevLr
  781.      - function UsingCursorSkipAndGetPrevLr(iFName : FnString) : LrNumber;
  782.      - Moves the internal cursor to the previous entry not equal to the
  783.        current entry and returns the corresponding logical record number.  In
  784.        other words, it will skip the cursor over all nonmatching values.
  785.        Returns 0 if the cursor was not valid or if there is no previous
  786.        nonequal entry (you have moved past the beginning of index).
  787.      - BTREE unit
  788.  
  789. VLRDataRecordUsed
  790.      - function VLRDataRecordUsed(dFName : FnString;
  791.                                   lrNum : LrNumber) : Boolean;
  792.      - Checks the existence of a data record for the given variable length
  793.        record data file
  794.      - VLOGICAL unit
  795.  
  796. VLRGetDataRecordSize
  797.      - function VLRGetDataRecordSize(dFName : FnString;
  798.                                      lrNum : LrNumber) : DataSizeRange;
  799.      - Returns the data record size for the given variable length record data
  800.        file.  Used mostly internally
  801.      - VLOGICAL unit
  802.  
  803. VLRLastDataRecord
  804.      - function VLRLastDataRecord(dFName : FnString) : LrNumber;
  805.      - Returns the logical record of the last valid data record in the given
  806.        variable length record data file
  807.      - VLOGICAL unit
  808.  
  809. VLRStoreNewLogicalRecord
  810.      - function VLRStoreNewLogicalRecord(dFName : FnString;
  811.                                          var source;
  812.                                          size : DataSizeRange) : LrNumber;
  813.      - Stores a new logical record in a variable length record data file.
  814.        Used when the logical record number is not known since this routine
  815.        returns the logical record number after the store takes place.  You
  816.        would not use this for an update.
  817.      - VLOGICAL unit
  818.