home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / dbase / btfl132.zip / BTFILER.DOC < prev    next >
Text File  |  1992-03-20  |  64KB  |  1,633 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                                     BTFILER
  10.  
  11.  
  12.                 A Btrieve file recovery, viewing and editing utility
  13.                                   Version 1.30
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                                         By
  34.  
  35.                               Access Microsystems Inc.
  36.                                 404 Midstreams Road
  37.                                Brick, NJ  08724-3838
  38.  
  39.                                   (908) 892-2683
  40.                                   CIS: 74040,607
  41.  
  42.  
  43.  
  44.  
  45.  
  46.                                  TABLE OF CONTENTS
  47.  
  48.      1.  Who made BTFILER?  Why?
  49.  
  50.      2.  What does BTFILER require?
  51.  
  52.      3.  What does BTFILER do?
  53.  
  54.         A. Intended actions
  55.         B. Unintended actions (dare we say BUGS?)
  56.  
  57.      4.  Details...
  58.  
  59.         A. Starting BTFILER
  60.         B. The Main Menu
  61.         C. The File Sub-menu
  62.  
  63.                 1. Browsing/Editing a BTRIEVE file
  64.  
  65.                         a. Moving around
  66.                         b. Editing a record
  67.                         c. Deleting a record
  68.                         d. Adding a record
  69.                         e. The File sub-menu in the Browse/Edit
  70.                               main menu
  71.                         f. The View sub-menu in the Browse/Edit
  72.                               main menu
  73.                         g. Special problems re: variable length
  74.                               records
  75.  
  76.                 2. Cloning a Btrieve file
  77.                 3. Packing a Btrieve file
  78.                 4. Test/Rebuild a Btrieve file
  79.  
  80.                         a. DOS Read test
  81.                         b. Index test
  82.                         c. Rebuild
  83.  
  84.                 5. Import/Export
  85.                 6. Misc. Btrieve Functions
  86.  
  87.                         a. Set Owner
  88.                         b. Clear Owner
  89.                         c. Statistics
  90.                         d. Btrieve Version
  91.                         e. Create file from BTB file
  92.                         f. Supplemental Index
  93.                         g. Transactions
  94.  
  95.                 7. Exiting BTFILER
  96.  
  97.         D. The Options Sub-menu
  98.  
  99.                 1. Set Colors
  100.                 2. Set Misc. Parameters
  101.                 3. Reset Btrieve
  102.                 4. REGISTER BTFILER
  103.  
  104.         E. The Help Sub-menu
  105.  
  106.                 1. List Error Codes
  107.                 2. List Operation Codes
  108.                 3. About BTFILER
  109.  
  110. 5.  Getting help/making suggestions/future directions
  111.  
  112.  
  113.  
  114. 1.  Who made BTFILER?  Why?
  115.  
  116.      BTFILER is a product of Access Microsystems Inc.  We do
  117.      programming in C and C++ under DOS and UNIX, often
  118.      using Btrieve as a file manager.  (If you have a
  119.      project we might be able to help with, contact us at
  120.      the phone or Compuserve number on the first page of the
  121.      documentation or throughout the software.)
  122.  
  123.      We have used several programs for looking at,
  124.      recovering data from, and editing Btrieve files.  We
  125.      have been disappointed by the results.  Some crashed,
  126.      others worked but punished us in the process.  We
  127.      thought that there must be a better way, and set out to
  128.      design such a product.  BTFILER is not quite that
  129.      product, but what we hope will be the first step in the
  130.      creation of a line of software for Btrieve users.  We
  131.      have ideas about automating the Btrieve file creation
  132.      process, allowing the import and export of comma
  133.      delimited files, as well as allowing editing in a user
  134.      friendly way (for instance, dates in mm/dd/yy format,
  135.      binary and packed information in ASCII form, etc.)
  136.  
  137.      We can't do all that just now, and so we made what we
  138.      consider a good first step.  If you become a registered
  139.      user, you can help us mold future products and future
  140.      updates to BTFILER.  Shareware works as a way to ensure
  141.      that you can try software before you buy only if you
  142.      support shareware authors.  If BTFILER meets a need,
  143.      please register!  Also, think about the possibility of
  144.      getting a distribution license and making BTFILER part
  145.      of your Btrieve application.
  146.  
  147.      DISCLAIMER - AGREEMENT
  148.  
  149.      Users of BTFILER must accept this disclaimer of
  150.      warranty:
  151.  
  152.      "BTFILER is supplied as is.  The author disclaims all
  153.      warranties, expressed or implied, including, without
  154.      limitation, the warranties of merchantability and of
  155.      fitness for any purpose. The author assumes no
  156.      liability for damages, direct or consequential, which
  157.      may result from the use of BTFILER."
  158.  
  159.      For Non-Registered Users:
  160.  
  161.      BTFILER is a "shareware program" and is provided at no
  162.      charge to the user for evaluation.  Feel free to share
  163.      it with your friends, but please do not give it away
  164.      altered or as part of another system.  The essence of
  165.      "user-supported" software is to provide personal
  166.      computer users with quality software without
  167.      high prices, and yet to provide incentive for
  168.      programmers to continue to develop new products.  If
  169.      you find this program useful and find that you are
  170.      using BTFILER and continue to use BTFILER after a
  171.      reasonable trial period, you must make a registration
  172.      payment of $29.00 to Access Microsystems Inc.  The
  173.      $29.00 registration fee will license one copy for use
  174.      on any one computer at any one time.  You must treat
  175.      this software just like a book.  An example is that this
  176.      software may be used by any number of people and may be
  177.      freely moved from one computer location to another, so
  178.      long as there is no possibility of it being used at one
  179.      location while it's being used at another.  Just as a
  180.      book cannot be read by two different persons at the same
  181.      time, a single copy of BTFILER cannot be used in two places
  182.      at once, unless the license is being violated.
  183.  
  184.      Commercial users of BTFILER must register and pay for
  185.      their copies of BTFILER within 30 days of first use or
  186.      their license is withdrawn.  Site-License arrangements
  187.      may be made by contacting Access Microsystems Inc. or
  188.      by filling out the registration form found in
  189.      REGISTER.DOC or produced by BTFILER.  See the
  190.      Options/Register BTFILER menu option.
  191.  
  192.      You are encouraged to pass a copy of BTFILER along to
  193.      your friends for evaluation.  Please encourage them to
  194.      register their copy if they find that they can use it.
  195.      All registered users will receive:
  196.  
  197.           A copy of the latest version of the BTFILER
  198.              system.
  199.           A printed manual.
  200.           Notice of future upgrades.
  201.           Information on future products.
  202.           A copy of our BU partial BUTIL replacement
  203.              program.  This program STOPs, RESETs Btrieve,
  204.              shows BTRIEVE version and CLONEs Btrieve files.
  205.              You may distribute this freely.
  206.  
  207.  
  208. 2.  What does BTFILER require?
  209.  
  210.         BTFILER requires:
  211.  
  212.           An IBM PC or compatible with 512 K (640K
  213.           recommended for large variable length records).
  214.  
  215.           MS/PC DOS version 2.0 or better.  Version 4.00 is
  216.           a known problem, so if you have a problem and you
  217.           have version 4.00 of MS/PC DOS, UPGRADE DOS FIRST!
  218.  
  219.           Btrieve version 4.0 or better.  Make sure to
  220.           tailor your Btrieve start-up parameters (See "Set
  221.           Misc. Parameters" in the File Sub-menu).
  222.  
  223.                 BTFILER also requires and is shipped with the
  224.                    following files:
  225.  
  226.                         BTFILER.DOC    This file
  227.  
  228.                         BTFILER.BER    A file with Btrieve Error
  229.                                           codes listed
  230.  
  231.                         BTFILER.BOP    A file with Btrieve Operation
  232.                                           codes
  233.  
  234.                         BTFILER.MNU    A Menu Control File
  235.  
  236.                         BTFILER.HLP    A Help file.
  237.  
  238.                         BTFILER.MSK    Formatting information -
  239.                                           PROPRIETARY FORMAT!
  240.  
  241.                         BTFILER.CF1    A configuration file
  242.  
  243.                         BTFILER.EXE    The executable file.  Run this
  244.                                        to use BTFILER.
  245.  
  246.                         REGISTER.DOC   A file with a BTFILER registration
  247.                                           form.  (Registration can be
  248.                                           printed by the program itself
  249.                                           as well.)
  250.  
  251.                         SAMPLE.BTB  A sample BTrieve Build file.  An ASCII
  252.                                           file used to describe a Btrieve
  253.                                           file to be created.
  254.  
  255.                         AMIMAP.EXE     A BONUS utility program that
  256.                                           lists the amount of memory
  257.                                           taken up by resident
  258.                                           programs like Btrieve
  259.  
  260.                         SAMPLE.BTB     A sample BTrieve Build ASCII
  261.                                           file, used to create Btrieve
  262.                                           Files (File/Misc. Btrieve
  263.                                           Functions/Create file from BTB).
  264.  
  265.                         SAMPLE.BTS     A sample BTrieve Supplemental
  266.                                           index ASCII file, used to
  267.                                           create a Supplemental Index.
  268.  
  269.                         BTCLONE.BAT    An example of a batch file that
  270.                                           takes parameters and builds a
  271.                                           keystroke file that is used to
  272.                                           automate a BTFILER operation,
  273.                                           in this case, CLONE.
  274.  
  275.                         BTRESET.BAT    An example of a batch file
  276.                                           that creates a keystroke
  277.                                           file to automate a simple BTFILER
  278.                                           operation, in this case, reset.
  279.                                           For further details on both
  280.                                           batch files, see Appendix B.
  281.  
  282.                 REGISTER.DOC  A file containing a
  283.                 registration form.
  284.  
  285.                 BTFILER may, from time to time, create the
  286.                 following files:
  287.  
  288.                        BTFILER.CF2    A second configuration file.
  289.  
  290.                        TMP?????.$$$   Temporary files created to
  291.                        save the state of the screen, etc. These may
  292.                        be deleted if you are SURE that no copy of
  293.                        BTFILER is running on the system or on a
  294.                        network the system is connected to.
  295.  
  296.                        CINSTALL.DAT   A Color configuration file.
  297.                        This file contains a single line of text.
  298.                        The line has 7 sets of 3 digit numbers, each
  299.                        3 digit number representing one of the types
  300.                        of colors used by BTFILER.  The file should
  301.                        look like this:
  302.  
  303.                                 rrrmmmooodddsssbbbnnn
  304.  
  305.                                 Where:
  306.  
  307.                                 rrr=decimal "regular" color.
  308.                                 mmm=decimal "menu" color.
  309.                                 ooo=decimal "selected menu option"
  310.                                             color.
  311.                                 ddd=decimal "active data entry field"
  312.                                             color.
  313.                                 aaa=decimal "status line" color.
  314.                                 bbb=decimal "box" color.
  315.                                 nnn="Hot" letter in menu option
  316.  
  317.  
  318. 3.  What does BTFILER do?
  319.  
  320.         A. Intended actions
  321.  
  322.           BTFILER allows you to TEST and RECOVER data from
  323.           Btrieve files.  In addition to standard sorts of
  324.           Btrieve testing (Test for consistent prev/next
  325.           links, etc.) BTFILER also has a DOS File test
  326.           which reads the entire file and reports if a DOS
  327.           Critical error (ABORT, RETRY or FAIL) error
  328.           occurs.
  329.  
  330.           BTFILER allows you to view, edit, search and
  331.           delete records in a Btrieve file.
  332.  
  333.           BTFILER allows you to Clone a Btrieve file (That
  334.           is, create an empty Btrieve file with the same key
  335.           structure and record size as the original).
  336.  
  337.           BTFILER allows you to Pack a Btrieve file (That
  338.           is, create a copy of a Btrieve file less the space
  339.           left by deleted records).
  340.  
  341.           BTFILER allows you to Import and Export records in
  342.           a straight ASCII format or a format like BUTIL,
  343.           Novell's Btrieve Developer's Utility.
  344.  
  345.           BTFILER allows you to create a Btrieve file with a
  346.           BTrieve Build file (.BTB) file and create a
  347.           supplemental index using a BTrieve Supplemental
  348.           (.BTS) file.  You may also DROP a supplemental
  349.           index.
  350.  
  351.           BTFILER allows you to begin and end transactions
  352.           within a single session, and will prompt you to
  353.           end the transaction if you try to do something
  354.           that can't be done in a transaction.
  355.  
  356.           BTFILER allows you to repeat repetitive tasks by
  357.           creating keystroke files that get passed back to
  358.           the keyboard buffer as the program is run.  This
  359.           also allows more technical users to provide easy
  360.           to use batch files for those less comfortable
  361.           operating BTFILER directly.  (See Appendix B).
  362.  
  363.           BTFILER allows you to Set and Clear owners of
  364.           Btrieve files, displays Btrieve version
  365.           information, and shows file statistics and key
  366.           structure.
  367.  
  368.           BTFILER lists Btrieve Error codes (arranged
  369.           numerically) and Operation codes (arranged
  370.           alphabetically).  You may also get details on
  371.           Btrieve error codes.
  372.  
  373.           BTFILER lets you choose from 4 different color
  374.           sets.
  375.  
  376.         B. Unintended actions (dare we say BUGS?)
  377.  
  378.           As of this writing date, there are no known bugs.
  379.           (Kind of reminds us of the compiler that reports,
  380.           after a successful compile, "None of the errors
  381.           were found").
  382.  
  383.           Previous versions had some problems displaying
  384.           Btrieve error codes, and problems in the display
  385.           some menus.  Previous versions also had minor
  386.           problems when you tried to Set Misc.
  387.           Parameters.  These problems have been cleared up.
  388.           Improvements in existing features include the
  389.           ability to edit records 256 bytes at a time.  The
  390.           HOME and END keys now work while viewing a Btrieve
  391.           file to move you to the first and last records
  392.           (respectively) in the file.  We have also improved
  393.           memory management.
  394.  
  395.           It is likely that VERY large variable length
  396.           records will cause problems with memory (but we
  397.           have not tested it with very large (>25K) variable
  398.           length records).  Please let us know if you run
  399.           across any problems.  See section 5, Getting
  400.           help/making suggestions.
  401.  
  402. 4.  Details...
  403.  
  404.      In the following sections, we detail actions required
  405.      to make BTFILER do work for you.  This assumes you have
  406.      placed the files mentioned above (What does BTFILER
  407.      require?) in your "PATH".
  408.  
  409.      For instance, if you type in PATH<Press ENTER> from the
  410.      DOS prompt (commonly "C:\>>") and you see the
  411.      following:
  412.  
  413.                 PATH=C:\;C:\DOS;C:\UTIL
  414.  
  415.      you should place the BTFILER file in the C:\, C:\DOS or
  416.      the C:\UTIL directory.  You must also have Btrieve
  417.      loaded, or if so configured, Btrieve or Brequest must
  418.      be available on the PATH.
  419.  
  420.         A. Starting BTFILER
  421.  
  422.           At any DOS prompt (or from the directory that
  423.           BTFILER files reside in, if not on your PATH)
  424.           type:
  425.  
  426.                 BTFILER<Press ENTER>
  427.  
  428.           If you wish to browse or edit a particular Btrieve
  429.           file, you may enter that on the command line as
  430.           well. For example:
  431.  
  432.                 BTFILER filename.ext<Press ENTER>
  433.  
  434.           BTFILER will then take a few seconds to load.
  435.           Depending upon the settings on the "Set Misc.
  436.           Parameters" screen (under the "Options" menu)
  437.           BTFILER may also load Btrieve or Brequest.  If you
  438.           get a message indicating that BTFILER is unable to
  439.           load Btrieve, load Btrieve from the command line
  440.           and then go to the "Set Misc. Parameters" screen
  441.           and ensure that the default Btrieve start up
  442.           parameters are set correctly.
  443.  
  444.           Two other command line parameters are possible.
  445.           /k:keyfile, where keyfile is the name of a file
  446.           with keystrokes for BTFILER to use on start-up.
  447.           See Appendix B for details on creation of a
  448.           keystroke file.  /c:myfile.cf2 where myfile.cf2 is
  449.           a version of the BTFILER.CF2 configuration file
  450.           created under Options/Set Misc. Parameters.  If
  451.           you need to, you can create 2 or more
  452.           configuration files, and with the /c command line
  453.           parameter, indicate which should be loaded.
  454.  
  455.           As BTFILER is loaded a screen will appear briefly
  456.           to list the registered owner of this copy of
  457.           BTFILER (Thank You!) or to remind you that you are
  458.           currently using an unregistered copy.  This screen
  459.           will remain on the screen for a few seconds, and
  460.           then you may press any key to continue.  Note that
  461.           the status line (the bottom line on the screen)
  462.           will almost always tell you what BTFILER is doing
  463.           or what you should do next.
  464.  
  465.         B. The Main Menu
  466.  
  467.           The Main Menu is a menu bar running across the top
  468.           of the screen.  This menu has three options:
  469.           File, Options, and Help.
  470.  
  471.           You can maneuver around the menu by using arrow
  472.           keys and the ENTER key, as well as ALT-Letter
  473.           combinations. (For instance, if no sub-menu is
  474.           "dropped," you may press the ALT and the H key to
  475.           get to the Help sub-menu.
  476.  
  477.           To exit BTFILER, you can press ESC (or press ESC
  478.           twice if a sub-menu is "dropped") and you will
  479.           return to DOS. You may also exit by pressing ENTER
  480.           while the Exit option of the File sub-menu is
  481.           highlighted.
  482.  
  483.         C. The File Sub-menu
  484.  
  485.           The File sub-menu includes four options:
  486.           Browse/Edit Btrieve File, Clone Btrieve File, Pack
  487.           Btrieve File,and Exit.
  488.  
  489.           1. Browsing/Editing a BTRIEVE file
  490.  
  491.                When ENTER is pressed (or ALT-B is pressed)
  492.                in the File sub-menu, you will be prompted to
  493.                enter a file name.  The default is "*.DAT"
  494.                If you supplied a file name on the command
  495.                line when starting BTFILER, or if you have
  496.                already browsed/edited a Btrieve file, that
  497.                will be the default.  If you press ENTER with
  498.                a filename containing '?' or '*' (an
  499.                "ambiguous" file name) BTFILER will present
  500.                you with a menu of files like the file name
  501.                entered.  If the menu is presented, use the
  502.                arrow keys to get to the correct file and
  503.                press ENTER.  You may also press ESC and re-
  504.                enter the file name.  If you press ESC while
  505.                entering the file name, you will return to
  506.                the menu.
  507.  
  508.                Once the Btrieve file selected is opened and
  509.                some of the records are loaded, you will be
  510.                presented with a screen with three parts:
  511.  
  512.                 The Browse/Edit Main Menu bar
  513.                 The Scale
  514.                 The Data area.
  515.  
  516.                The Browse/Edit Main Menu bar works very much
  517.                like the main menu described earlier.  One
  518.                difference is that the menu here is not the
  519.                focus of activity. When you start
  520.                browsing/editing a file, no options on the
  521.                Browse/Edit Main Menu are highlighted.  The
  522.                focus is on the data below.  To get to the
  523.                Browse/Edit Main Menu, simply press ALT and F
  524.                (to get to the File sub-menu) or ALT and V
  525.                (to get to the View sub-menu).
  526.  
  527.                The Scale lets you know what offset within
  528.                the record you are looking at.  The right and
  529.                left arrows will move you 10 positions to the
  530.                left or right.
  531.  
  532.                The Data area of the screen is a straight
  533.                listing of the data in the records in the
  534.                file.  Note that there may be some strange
  535.                characters on the screen.  This is perfectly
  536.                normal if the Btrieve file contains binary or
  537.                packed data.
  538.  
  539.                   a. Moving around
  540.  
  541.                     Use the arrow keys and the Page-up and
  542.                     Page-down keys to move around.  When you
  543.                     enter the screen, the top line will be
  544.                     highlighted.  Use the down arrow to
  545.                     highlight another record, and use the
  546.                     left and right arrows to view the rest
  547.                     of a record that is larger than 80
  548.                     characters.
  549.  
  550.                   b. Editing a record
  551.  
  552.                     To edit a Btrieve record, use the arrow
  553.                     keys to highlight the record you wish to
  554.                     edit and press ENTER.  You will be
  555.                     presented with a menu asking if you want
  556.                     to Edit this record, Delete this record,
  557.                     Add a record like this one, or Continue
  558.                     Browsing. With Edit this record
  559.                     highlighted, press ENTER.
  560.  
  561.                     You will be presented with a window on
  562.                     the screen that will allow you to edit,
  563.                     256 characters at a time, the record
  564.                     that was selected.  By default you will
  565.                     be doing a HEX edit.  To switch back and
  566.                     forth between HEX and ASCII editing,
  567.                     press the TAB key.  Use the cursor
  568.                     movement keys to move around the data.
  569.  
  570.                     To exit the editing screen, press ESC.
  571.                     If you make changes, a Yes or No box
  572.                     will appear reminding you that the data
  573.                     was changed, and asking if you wish to
  574.                     save changes.  Press 'Y' to save
  575.                     changes, or 'N' to abandon.  It is
  576.                     possible to make changes that Btrieve
  577.                     won't allow (creating a duplicate record
  578.                     in a key that does not allow duplicates
  579.                     or trying to modify a non-modifiable
  580.                     key) and if you do that you will get an
  581.                     error message.
  582.  
  583.                   c. Deleting a record
  584.  
  585.                     To delete a Btrieve record, use the
  586.                     arrow keys to highlight the record you
  587.                     wish to delete and press ENTER.  You
  588.                     will be presented with a menu asking if
  589.                     you want to Edit this record, Delete
  590.                     this record, Add a record like this one
  591.                     or Continue Browsing.  With Delete this
  592.                     record highlighted, press ENTER.
  593.  
  594.                     You will be asked if you are sure you
  595.                     want to delete the record.  Press 'Y' to
  596.                     delete it, or 'N' to not delete the
  597.                     record
  598.  
  599.                   d. Adding a record like the current record
  600.  
  601.                     To add a Btrieve like the record you are
  602.                     currently editing (using an existing record as
  603.                     a model ), use the arrow keys to highlight the
  604.                     record most like the one you wish to add and
  605.                     press ENTER. You will be presented with a
  606.                     menu asking if you want to Edit this record,
  607.                     Delete this record, Add a record like this
  608.                     record, or Continue Browsing.  With Add
  609.                     a record like this record highlighted,
  610.                     press ENTER.
  611.  
  612.                     You will be presented with a screen very
  613.                     much like the editing screen.  Make
  614.                     whatever changes you wish.  When you are
  615.                     done, press ESC.  You then will be asked
  616.                     if you wish to save the changes.  Press
  617.                     'Y' to save the new record, or 'N' to
  618.                     abandon the changes.  It is possible to
  619.                     try to add a new record that Btrieve
  620.                     won't allow (creating a duplicate record
  621.                     in a key that does not allow duplicates)
  622.                     and if you do that you will get an error
  623.                     message.
  624.  
  625.                   e. The File sub-menu in the Browse/Edit main menu
  626.  
  627.                     This menu allows you to select a new
  628.                     file or exit to the Main Menu.  To get
  629.                     to the Files sub-menu in the Browse/Edit
  630.                     main menu while browsing data, press the
  631.                     ALT and F keys.
  632.  
  633.                   f. The View sub-menu in the Browse/Edit main menu
  634.  
  635.                     To get to the View sub-menu in the
  636.                     Browse/Edit main menu while browsing
  637.                     data,press the ALT and V keys.  The View
  638.                     sub-menu in the Browse/Edit main menu
  639.                     has four options:  Key Only, Set Key
  640.                     Number, Begin View With, and Search.
  641.  
  642.                     Key Only allows you to switch from
  643.                     viewing the entire record to a key only
  644.                     browse.  To use the check-box, press the
  645.                     space bar and a check mark will appear
  646.                     and disappear.  If the check mark
  647.                     appears when ENTER is pressed, only the
  648.                     key will be displayed.
  649.  
  650.                     Set Key Number allows you to set the
  651.                     order you wish to view the data.  The
  652.                     field where you enter the key number
  653.                     will default to the current key number.
  654.  
  655.                     Begin View With allows you to jump to a
  656.                     particular key value in the file.
  657.  
  658.                     Search allows you to search out a record
  659.                     in the file looking for a particular
  660.                     string of text.  The search can be
  661.                     global or starting from the top line on
  662.                     the screen, and it can be case sensitive
  663.                     or insensitive to the case of the
  664.                     characters entered (upper an lowercase
  665.                     treated the same).  If the string is
  666.                     found, the first record with the string
  667.                     will be displayed with the matching text
  668.                     flashing.
  669.  
  670.                   g. Special problems with Variable length records.
  671.  
  672.                     Variable length records present a
  673.                     special problem when building a generic
  674.                     Btrieve file viewer.  The only limit to
  675.                     the size of a Btrieve variable length
  676.                     record is 64K.  Most Variable length
  677.                     records are MUCH shorter.  If you work
  678.                     with variable length records, please
  679.                     make sure you set your "Largest variable
  680.                     record" under "Set Misc. Parameters"
  681.                     under "Options" on the Main Menu to a
  682.                     value bigger than any record you might
  683.                     expect to read in
  684.  
  685.                     If you edit a variable length record, it
  686.                     will be written back at the same length.
  687.  
  688.           2. Cloning a Btrieve file
  689.  
  690.                With this option, you can make an empty copy
  691.                of an existing Btrieve file.  You must enter
  692.                the name of the Btrieve file as well as the
  693.                name of the "clone" file to be created.
  694.  
  695.           3. Packing a Btrieve file
  696.  
  697.                Like most DOS files, Btrieve files get bigger
  698.                as records are added, but do not shrink as
  699.                records are deleted.  This can be especially
  700.                noticeable if you have a transaction file
  701.                that grows and grows until some month or year
  702.                end procedure, and then is purged.  The space
  703.                where the deleted records were is still in
  704.                the file.  This space will eventually be used
  705.                again, but what if you can't wait?
  706.  
  707.                That is where Packing comes in.  Simply
  708.                supply the name of the file to be packed, and
  709.                BTFILER will rewrite it without the space
  710.                where the deleted records were.  The original
  711.                file is saved with an extension of .BAK.
  712.                Please ensure that the packed file is good
  713.                and then you may delete the .BAK.
  714.  
  715.           4. Test/Rebuild a Btrieve file
  716.  
  717.                This menu allows you to test a Btrieve file
  718.                to ensure that DOS can read the entire file
  719.                without a DOS Critical error (Abort, Retry,
  720.                Fail...), tests that all indices (keys) of a
  721.                Btrieve file are correctly linked, and allows
  722.                you to rebuild a damaged file.  The
  723.                explanations for these options follows.
  724.  
  725.                   a. DOS Read Test
  726.  
  727.                     This option allows you to test a file to
  728.                     ensure that DOS can read through the
  729.                     entire file.  The file in question need
  730.                     not even be a Btrieve file.
  731.  
  732.                   b. Index Testing
  733.  
  734.                     This option tests a Btrieve file to
  735.                     ensure that the links in the file (in
  736.                     both directions for each key) are
  737.                     correct.  A record could be written to
  738.                     disk in such a way that it points to
  739.                     itself, or to some other record that is
  740.                     not the correct record.  This test will
  741.                     look for such problems.
  742.  
  743.                   c. Rebuild
  744.  
  745.                     If you don't normally read
  746.                     documentation, PLEASE READ THIS!  This
  747.                     is a "last resort" procedure that should
  748.                     be used only if no recent backup exists.
  749.                     While there is little chance of damage
  750.                     occurring to your Btrieve file since the
  751.                     original is opened in read-only mode,
  752.                     and the original is saved as a .BAK
  753.                     file, backups are the best bet!  There
  754.                     is no guarantee that this procedure will
  755.                     get all records, although it is likely
  756.                     that almost all records will be
  757.                     recovered.
  758.  
  759.                     This procedure uses physical positioning
  760.                     (not logical positioning, going through
  761.                     the file via a key) to read from the
  762.                     first physical record to the last.  If
  763.                     an error occurs while proceeding from
  764.                     beginning to end, the program tries to
  765.                     step directly to the last record, and
  766.                     tries to read from end to beginning.  If
  767.                     there is only one record that has a
  768.                     problem, all but that one record should
  769.                     be recovered.
  770.  
  771.          5. Import/Export
  772.  
  773.                Select Import/Export from the File menu under
  774.                the Main Menu and you will be presented with
  775.                a menu that allows you to import or export
  776.                records to or from a Btrieve file.  Upon
  777.                selecting Import or Export. you will be
  778.                presented with a screen that allows you to
  779.                specify the Source and Destination file.  You
  780.                will also be allowed to choose between a
  781.                BUTIL style ASCII file or a straight ASCII
  782.                file, without the length specifier required
  783.                by BUTIL.  If you choose to NOT use the
  784.                BUTIL format, the file in question should be
  785.                a fixed length record with NO binary data.
  786.                The length of the record for ASCII files not
  787.                in the BUTIL style is the number of bytes
  788.                until the ASCII CR/LF characters are found.
  789.                In a binary file, it is possible that these
  790.                characters might naturally occur, causing
  791.                BTFILER to think that the record ends in
  792.                the middle of a field of binary data.  This is
  793.                clearly not a good thing.
  794.  
  795.                The format of the BUTIL style ASCII file is
  796.                as follows:
  797.  
  798.                 29,this is a 29 character record<CR/LF>
  799.  
  800.                That is, each record should contain the
  801.                decimal length followed by a comma, followed
  802.                by the record, padded with spaces if needed
  803.                to make it the length specified, followed by
  804.                CR/LF (hex 0D0A).
  805.  
  806.  
  807.          6. Misc. Btrieve Functions
  808.  
  809.                   a. Set Owner
  810.  
  811.                     Btrieve allows users to set "owners" for
  812.                     files.  By setting an "owner," a Btrieve
  813.                     user can choose to allow no access to
  814.                     the file without the owner name or allow
  815.                     read-only access, and the user can
  816.                     choose whether the file will be
  817.                     encrypted or not.  It is important to
  818.                     remember that if you set an owner for a
  819.                     Btrieve file, any program that is to
  820.                     access it (including BTFILER) must know
  821.                     that user name, and the user must
  822.                     remember the user name if s/he wishes to
  823.                     Clear the owner (see below).
  824.  
  825.                     When the File/Misc. Btrieve
  826.                     Functions/Set Owner menu option is
  827.                     selected, BTFILER displays a box with
  828.                     three fields.  In the first field, enter
  829.                     the name of the file for which an owner
  830.                     name is to be set.  In the second field,
  831.                     enter the string that will become the
  832.                     new "owner."  In the third field you
  833.                     will be presented with a menu that will
  834.                     allow you to choose whether or not to
  835.                     allow read-only access without the owner
  836.                     name, and whether or not the Btrieve
  837.                     file should be encrypted.  Highlight the
  838.                     appropriate option and press ENTER.  If
  839.                     you have selected an option that calls
  840.                     for encryption, some time may be
  841.                     required.  Please be patient.
  842.  
  843.                   b. Clear owner
  844.  
  845.                     When the File/Misc. Btrieve
  846.                     Functions/Clear Owner menu option is
  847.                     selected, BTFILER displays a box with
  848.                     two fields.  In the first field, enter
  849.                     the name of the file for which an owner
  850.                     name is to be cleared.  In the second
  851.                     field, enter the current "owner."  If
  852.                     you have selected a Btrieve file that
  853.                     had an owner name set with encryption,
  854.                     some time may be required.  Please be
  855.                     patient.
  856.  
  857.                   c. Statistics
  858.  
  859.                     When the File/Misc. Btrieve
  860.                     Functions/Statistics menu option is
  861.                     selected, BTFILER prompts for a file
  862.                     name to be entered.  If the file name
  863.                     entered exists and is a valid Btrieve
  864.                     file, BTFILER will display information
  865.                     about the file, including the number of
  866.                     records and number of keys, the record
  867.                     length, the file length, and some
  868.                     information on the actual space used, on
  869.                     average, for each record in the file and
  870.                     the % utilization.  Information on the
  871.                     keys will appear in a box on the lower
  872.                     portion of the screen.  If more keys
  873.                     than will fit on one screen are present,
  874.                     use the arrow or page down keys to see
  875.                     the rest of the key information.
  876.  
  877.                   d. Btrieve Version
  878.  
  879.                     When the File/Misc. Btrieve
  880.                     Functions/Btrieve Version menu option is
  881.                     selected, BTFILER displays a small box
  882.                     that gives Btrieve version information,
  883.                     for instance "Btrieve Version 5.10 for
  884.                     Networks."  Press any key to continue.
  885.  
  886.                   e. Create file from BTB file
  887.  
  888.                      Select this option to create a new Btrieve file.
  889.                      You will need to supply the name of a
  890.                      BTrieve Build file (BTB) and a name for the
  891.                      new file.  This option is similar to  BUTIL's
  892.                      -CREATE option, but with much better error
  893.                      handling.  Please see the sample BTB file
  894.                      called SAMPLE.BTB provided with BTFILER
  895.                      system and listed in Appendix A.
  896.  
  897.                   f. Supplemental Index
  898.  
  899.                      Selecting this menu option will give you
  900.                      another menu, where you may create or
  901.                      drop a supplemental index.  You must
  902.                      have a .BTS file (see SAMPLE.BTS for a
  903.                      sample of the format).  Enter the .BTS
  904.                      file name in the first field, and the
  905.                      name of the Btrieve file to add the
  906.                      supplemental index to in the next.
  907.  
  908.                      If you choose to drop a supplemental
  909.                      index, you will be asked to supply the
  910.                      Btrieve file name and the index number
  911.                      to drop.  Use File/Misc. Btrieve
  912.                      Functions/Statistics to determine the
  913.                      key number to drop.
  914.  
  915.                   g. Transactions
  916.  
  917.                      You may begin a transaction, or if one
  918.                      is already in progress, end a
  919.                      transaction using this menu option.
  920.                      When ending a transaction, you may
  921.                      choose to simply end the transaction
  922.                      (changes saved) or you may abandon the
  923.                      transaction (changes lost).
  924.  
  925.          7. Exiting BTFILER
  926.  
  927.                Choose this option to exit BTFILER and return
  928.                to DOS.  You may also exit by pressing ESC
  929.                (or by pressing ESC twice if you are in the
  930.                File, Options, or Help sub-menu).
  931.  
  932.  
  933.        D. The Options Sub-menu
  934.  
  935.          1. Set Colors
  936.  
  937.                Choose from the four color sets mentioned.
  938.  
  939.          2. Set Misc. Parameters
  940.  
  941.                Choose this option and you will be presented
  942.                with a screen that looks like this:
  943.  
  944.                   Set BTFILER Misc. Options
  945.  
  946.                               [_] Load Btrieve?
  947.                               [_] Load Brequest?
  948.  
  949.         Browse/Edit Open Mode: ___________
  950.  
  951.          Btrieve load options: ________________________
  952.  
  953.         Brequest load options: ________________________
  954.  
  955.    Memory to save for Btrieve: ______
  956.  
  957.        Owner name for Btrieve: ____________________
  958.  
  959.       Largest variable record: _____
  960.  
  961.   Print report to (LPT1, etc): ________________________
  962.  
  963.       Default File Name Mask: _____________________________
  964.            (i.e. "*.DAT")
  965.  
  966.                The first two questions ask if you would like
  967.                to load Btrieve and/or Brequest.  It might be
  968.                better (from a memory control standpoint) to
  969.                have Btrieve loaded BEFORE you run BTFILER,
  970.                but it is often convenient to allow BTFILER
  971.                to load it for you.
  972.  
  973.                The next question allows you to determine the
  974.                open mode when files are browsed or edited
  975.                (using the File/Browse-Edit Btrieve File menu
  976.                option).  If you wish to ensure that the file
  977.                is not changed, set Read-Only.  If working on
  978.                a network, and you wish to have exclusive
  979.                access to a file, set Exclusive.  To verify
  980.                data as it is written (normally not needed
  981.                and not very effective in any case) set
  982.                Verify.  If you are working on a file where
  983.                you are starting fresh and have nothing to
  984.                lose, you may want to set Accelerated.  Note
  985.                that Accelerated has no effect on speed of
  986.                reading the file, and will leave your file
  987.                damaged if it is not closed properly.  This
  988.                option is included for completeness, not
  989.                because we recommend this option.  All
  990.                options are presented to you on a menu.
  991.  
  992.                The next two questions allow you to specify
  993.                Btrieve and/or Brequest start-up (load)
  994.                options. Please see your Btrieve or Brequest
  995.                manual for specifics.  Also, note that it is
  996.                possible to give invalid load options to
  997.                Btrieve that will prevent Btrieve from being
  998.                loaded.  In that case, load Btrieve BEFORE
  999.                you enter BTFILER and then correct the
  1000.                Btrieve load options.
  1001.  
  1002.                The amount of memory to save for Btrieve is
  1003.                dependent upon the version of Btrieve you are
  1004.                using, the load options you specify, and the
  1005.                availability of extended (or is that
  1006.                expanded...) memory.  Run Btrieve with the
  1007.                load parameters you expect to use and then
  1008.                run AMIMAP.EXE (a utility that reports on the
  1009.                space taken up by resident programs) and note
  1010.                how much space is taken up by Btrieve.  Add
  1011.                several thousand bytes to this for good luck,
  1012.                and this will reserve enough memory for
  1013.                Btrieve.  130000 is a safe number to use if
  1014.                this is too much for you to figure out.
  1015.  
  1016.                Owner name is the owner name to use when
  1017.                opening up Btrieve files that require an
  1018.                owner name.  If you don't know what this
  1019.                means, you probably don't need to fill this
  1020.                in.
  1021.  
  1022.                Largest variable record is important if you
  1023.                are going to read variable length record
  1024.                Btrieve files.  If you have too small a
  1025.                number here, you might get an error 22
  1026.                (buffer too short).  If you have too large a
  1027.                number here, you may have memory problems.
  1028.  
  1029.                Print report to specifies where reports
  1030.                (currently only the registration form and printing
  1031.                this documentation) should print.  This should
  1032.                almost always be LPT1 or PRN.  Try those if
  1033.                in doubt.
  1034.  
  1035.                The default file mask allows you to set the
  1036.                default file mask without having to enter it
  1037.                on the command line each time.  The default
  1038.                is "*.DAT", but for many "*.BTR" is more
  1039.                convenient.
  1040.  
  1041.          3. Reset Btrieve
  1042.  
  1043.                Issues a RESET command to Btreive.
  1044.  
  1045.          4. REGISTER BTFILER
  1046.  
  1047.                If you like what you see, and would like to
  1048.                make sure that shareware programs like
  1049.                BTFILER are produced, you must
  1050.                register and pay for the use of the program.
  1051.                The $29.00 requested (for a single copy) is a
  1052.                steal, and to further entice you, we even
  1053.                made up this neat utility to print out the
  1054.                registration form for you.  Simply fill in
  1055.                the requested information and the form will
  1056.                be printed.  Fill in the number of single
  1057.                user or site licenses, the size disks you
  1058.                wish to receive,and mail it to the address on
  1059.                the form.  You can always just jot down your
  1060.                name and address and mail that in with a
  1061.                notation that you are registering for
  1062.                BTFILER, but what the heck, that's what
  1063.                computers are for!
  1064.  
  1065.                If you need to use a credit card, you may
  1066.                register on-line on CompuServe.  Type GO SE at
  1067.                any prompt and you will go to Software
  1068.                Excitement's connect-charge free section.  Choose
  1069.                menu option 7 (*** Register Shareware Software
  1070.                ***), then option 2 (Order by Product Title).
  1071.                BTFILER will be listed on the first page or two.
  1072.                Enter the number to the left of BTFILER and
  1073.                supply the requested information.  Credit card
  1074.                orders may also be placed by phone at
  1075.                (1-800-444-5457).  If you have any questions
  1076.                ordering, please contact us at the phone number
  1077.                or CIS ID listed throughout the documentation and
  1078.                the program.
  1079.  
  1080.                If you register, you will get:
  1081.  
  1082.                         A copy of the latest version of the
  1083.                            BTFILER system.
  1084.                         A printed manual.
  1085.                         Notice of future upgrades.
  1086.                         Information on future products.
  1087.                         A copy of our BU partial BUTIL
  1088.                            replacement program.
  1089.                            This program STOPs, RESETs Btrieve,
  1090.                            shows BTRIEVE version and CLONEs
  1091.                            Btrieve files.  You may distribute
  1092.                            this freely.
  1093.  
  1094.  
  1095.  
  1096.        E. The Help Sub-menu
  1097.  
  1098.          These options are self explanatory (and non-
  1099.          threatening if you just try them out).
  1100.  
  1101.          1. List Error Codes
  1102.  
  1103.          2. List Operation Codes
  1104.  
  1105.          3. About BTFILER
  1106.  
  1107. 5.  Getting help/making suggestions/future directions
  1108.  
  1109.      If you are a registered user, or if you are having a
  1110.      problem getting started, PLEASE contact us at:
  1111.  
  1112.                         Access Microsystems Inc.
  1113.                         404 Midstreams Road
  1114.                         Brick, NJ  08724-3838
  1115.  
  1116.                         (908) 892-2683
  1117.                         CIS: 74040,607
  1118.  
  1119.      We generally work 9 to 5, Monday through Friday.  We
  1120.      may not always be here when you call, but we will try
  1121.      to return calls if you leave a SPECIFIC message.  We
  1122.      monitor Compuserve (CIS) messages daily for support
  1123.      purposes, but understand that not everyone is ready for
  1124.      E-Mail.
  1125.  
  1126.      We seek your advice on future directions for this and
  1127.      other products.  We expect (if the interest in BTFILER
  1128.      warrants) a follow-on product that will add some more
  1129.      advanced editing, as well as more powerful utilities
  1130.      for doing things like importing and exporting data and
  1131.      creating files.  We would love your advice.
  1132.  
  1133.  
  1134.  
  1135.  
  1136.                   APPENDIX A - Listing of SAMPLE.BTB
  1137.  
  1138. The following is a listing of SAMPLE.BTB, An ASCII file that
  1139. describes a BTRIEVE file to be built with BTFILER's
  1140. File/Misc. Btrieve Functions/Create File from BTB file menu
  1141. option.  Please modify this file to create the type of file
  1142. YOU need.  Keep the BTB file you create on line to rebuild
  1143. the file you create as needed.
  1144.  
  1145. #
  1146. #       This line (and all lines beginning with '#') are COMMENTS.
  1147. #
  1148. #       This is a sample BTrieve Build (BTB) file.  It allows for the
  1149. #       creation of Btrieve files in BTFILER.  It does the same thing
  1150. #       as the BUTIL -CREATE function, but with one significant
  1151. #       difference:  Error diagnostics are clearer.  This removes (I
  1152. #       think) the most significant problem with the BUTIL -CREATE
  1153. #       process.  Someday an interactive create utility will be part
  1154. #       of BTFILER, but until then, this will have to do...
  1155. #
  1156. #       Case is not important, and some fields are optional (as
  1157. #       noted in comments).
  1158. #
  1159. #       These are the fields possible listed in order of appearance
  1160. #       in the file level settings section:
  1161. #
  1162. #               RECORD LEN=n
  1163. #               PAGE SIZE=n, multiple of 512
  1164. #               VARIABLE=<YES or NO>
  1165. #               BLANK TRUNCATION=<YES or NO>      OPTIONAL!
  1166. #               DATA COMPRESSION=<YES or NO>
  1167. #               FREE SPACE THRESHOLD=<10, 20 or 30>
  1168. #               ALTERNATE FILE=<filename>         OPTIONAL if no alternate key
  1169. #               INCLUDE DATA=<YES or NO>          OPTIONAL!
  1170. #               NUMBER OF KEYS=n
  1171. #
  1172. #
  1173. # These are file level settings, with more details...
  1174. #
  1175. RECORD LEN=131
  1176. #
  1177. # In the Help menu, see "Calculate Page Size" to find optimal size.
  1178. #
  1179. PAGE SIZE=1536
  1180. VARIABLE=NO
  1181. #
  1182. # BLANK TRUNCATION is only meaningful with variable length
  1183. #       records, so this BLANK TRUNCATION= line is optional.
  1184. #
  1185. BLANK TRUNCATION=NO
  1186. DATA COMPRESSION=NO
  1187. #
  1188. # FREE SPACE THRESHOLD=n, where 'n' is 10, 20 or 30 ONLY!
  1189. #
  1190. FREE SPACE THRESHOLD=20
  1191. #
  1192. #  ALTERNATE FILE=fname, where fname is the name of a file like
  1193. #         UPPER.ALT.  This line is optional IF no ALTERNATE=YES
  1194. #         key segments exist.
  1195. #
  1196. ALTERNATE FILE=UPPER.ALT
  1197. #
  1198. #  INCLUDE DATA=<Y or N> is used to determine if the file is key only
  1199. #        Data only, or key and data.  INCLUDE DATA= line is OPTIONAL!
  1200. #
  1201. #  For KEY ONLY:   INCLUDE DATA=NO
  1202. #                  NUMBER OF KEYS=1
  1203. #  and key length is == to record length.
  1204. #
  1205. #  For DATA ONLY:  INCLUDE DATA=YES
  1206. #                  NUMBER OF KEYS=0
  1207. #
  1208. INCLUDE DATA=Yes
  1209. #
  1210. #  NUMBER OF KEYS= is used as a cross check of the segments
  1211. #       passed below.  In case of a conflict, the option is given
  1212. #       to accept the key count reflected in the segments, or
  1213. #       abandoning creation of the file.
  1214. #
  1215. NUMBER OF KEYS=2
  1216. #
  1217. #  END OF FILE LEVEL SETTINGS!
  1218. #
  1219. #  This marks the beginning of key segment level information.
  1220. #       If I were you, and I were creating BTB files, I would
  1221. #       place a large comment band between each key segment
  1222. #       to remind myself what I think I am doing.  Just a
  1223. #       thought...
  1224. #
  1225. #  The lines for each key segment are in the following order:
  1226. #
  1227. #       START=n, where 'n' is the starting position of the key
  1228. #       LEN=n, where 'n' is the length of the key
  1229. #       MODIFIABLE=s, where 's' is Y or N (or YES or NO or Yes or...)
  1230. #                        Allows Modifications to be made to the key?
  1231. #       DUPLICATES=s, ditto above...Allows Duplicate keys?
  1232. #       ALTERNATE=s, where 's' is as above.  Alternate Collating Sequence?
  1233. #       DESCENDING=s, like above.  Sorts Hi to Lo?
  1234. #       TYPE=t, where 't' is EXACTLY one (case difference OK) of the following:
  1235. #
  1236. #               "String",
  1237. #               "Integer",
  1238. #               "Float",
  1239. #               "Date",
  1240. #               "Time",
  1241. #               "Decimal",
  1242. #               "Money",
  1243. #               "Logical",
  1244. #               "Numeric",
  1245. #               "Bfloat",
  1246. #               "Lstring",
  1247. #               "Zstring",
  1248. #               "Unsigned Binary",
  1249. #               "Autoincrement",
  1250. #
  1251. #       NULL=n, where 'n' is the decimal NULL value (commonly 0 or 32) OR
  1252. #                  NULL=N/A to explicitly state no NULL value.
  1253. #                  NULL= is OPTIONAL.
  1254. #       SEGMENT=s, where 's' is Y or N (or Yes or N0...).  The number of
  1255. #                  segments with a SEGMENT=No value should be the same
  1256. #                  as the number of keys you declare.
  1257. #
  1258. #
  1259. #  Key 0/Segment 1
  1260. #
  1261. START=1
  1262. LEN=11
  1263. MODIFIABLE=n
  1264. DUPLICATES=n
  1265. ALTERNATE=n
  1266. DESCENDING=n
  1267. TYPE=STRING
  1268. NULL=N/A
  1269. SEGMENT=NO
  1270. #
  1271. #  key 1/segment 1
  1272. #
  1273. START=12
  1274. LEN=30
  1275. MODIFIABLE=y
  1276. DUPLICATES=y
  1277. ALTERNATE=y
  1278. DESCENDING=n
  1279. TYPE=STRING
  1280. NULL=N/A
  1281. SEGMENT=YES
  1282. #
  1283. #  key 1/segment 2
  1284. #
  1285. START=1
  1286. LEN=11
  1287. MODIFIABLE=y
  1288. DUPLICATES=y
  1289. ALTERNATE=y
  1290. DESCENDING=n
  1291. TYPE=STRING
  1292. NULL=N/A
  1293. SEGMENT=NO
  1294. #
  1295. #  That's all, folks!
  1296. #
  1297.       Appendix A - Listing of SAMPLE.BTB and SAMPLE.BTS
  1298.  
  1299.  
  1300. Use the following file (supplied on disk as well) that
  1301. allows you to create a Btrieve file by describing it in an
  1302. ASCII file.  Modify it for your needs and run the
  1303. File/Misc. Btrieve Functions/Create file using BTB file menu
  1304. option.  When asked, supply the name of the BTB file you
  1305. have modified for your use, or use the SAMPLE.BTB file to
  1306. see how the system works.
  1307.  
  1308. #
  1309. #       This line (and all lines beginning with '#') are COMMENTS.
  1310. #
  1311. #       This is a sample BTrieve Build (BTB) file.  It allows for the
  1312. #       creation of Btrieve files in BTFILER.  It does the same thing
  1313. #       as the BUTIL -CREATE function, but with one significant
  1314. #       difference:  Error diagnostics are clearer.  This removes (I
  1315. #       think) the most significant problem with the BUTIL - CREATE
  1316. #       process.  Someday an interactive create utility will be part
  1317. #       of BTFILER, but until then, this will have to do...
  1318. #
  1319. #       Case is not important, and some fields are optional (as
  1320. #       noted in comments).
  1321. #
  1322. #       These are the fields possible listed in order of appearance
  1323. #       in the file level settings section:
  1324. #
  1325. #               RECORD LEN=n
  1326. #               PAGE SIZE=n, multiple of 512
  1327. #               VARIABLE=<YES or NO>
  1328. #               BLANK TRUNCATION=<YES or NO>        OPTIONAL!
  1329. #               DATA COMPRESSION=<YES or NO>
  1330. #               FREE SPACE THRESHOLD=<10, 20 or 30>
  1331. #               ALTERNATE FILE=<filename>       OPTIONAL if no alternate key
  1332. #               INCLUDE DATA=<YES or NO>        OPTIONAL!
  1333. #               NUMBER OF KEYS=n
  1334. #
  1335. #
  1336. # These are file level settings, with more details...
  1337. #
  1338. RECORD LEN=131
  1339. #
  1340. # In the Help menu, see "Calculate Page Size" to find
  1341. optimal size.
  1342. #
  1343. PAGE SIZE=1536
  1344. VARIABLE=NO
  1345. #
  1346. # BLANK TRUNCATION is only meaningful with variable length
  1347. #       records, so this BLANK TRUNCATION= line is optional.
  1348. #
  1349. BLANK TRUNCATION=NO
  1350. DATA COMPRESSION=NO
  1351. #
  1352. # FREE SPACE THRESHOLD=n, where 'n' is 10, 20 or 30 ONLY!
  1353. #
  1354. FREE SPACE THRESHOLD=20
  1355. #
  1356. #  ALTERNATE FILE=fname, where fname is the name of a file like
  1357. #         UPPER.ALT.  This line is optional IF no ALTERNATE=YES
  1358. #         key segments exist.
  1359. #
  1360. ALTERNATE FILE=UPPER.ALT
  1361. #
  1362. #  INCLUDE DATA=<Y or N> is used to determine if the file is key only
  1363. #         Data only, or key and data.  INCLUDE DATA= line is OPTIONAL!
  1364. #
  1365. #  For KEY ONLY:   INCLUDE DATA=NO
  1366. #                           NUMBER OF
  1367. KEYS=1
  1368. #  and key length is == to record length. #
  1369. #  For DATA ONLY:  INCLUDE
  1370. DATA=YES
  1371. #                           NUMBER OF KEYS=0
  1372. #
  1373. INCLUDE DATA=Yes
  1374. #
  1375. #  NUMBER OF KEYS= is used as a cross check of the segments
  1376. #       passed below.  In case of a conflict, the option is given
  1377. #       to accept the key count reflected in the segments, or
  1378. #       abandoning creation of the file.
  1379. #
  1380. NUMBER OF KEYS=2
  1381. #
  1382. #  END OF FILE LEVEL SETTINGS!
  1383. #
  1384. #  This marks the beginning of key segment level information.
  1385. #       If I were you, and I were creating BTB files, I would
  1386. #       place a large comment band between each key segment
  1387. #       to remind myself what I think I am doing.  Just a
  1388. #       thought...
  1389. #
  1390. #  The lines for each key segment are in the following order:
  1391. #
  1392. #       START=n, where 'n' is the starting position of the key
  1393. #       LEN=n, where 'n' is the length of the key
  1394. #       MODIFIABLE=s, where 's' is Y or N (or YES or NO or Yes or...)
  1395. #                        Allows Modifications to be made to the key?
  1396. #       DUPLICATES=s, ditto above...Allows Duplicate keys?
  1397. #       ALTERNATE=s, where 's' is as above.  Alternate Collating Sequence?
  1398. #       DESCENDING=s, like above.  Sorts Hi to Lo?
  1399. #       MANUAL=s, like above.  Manual key?  OPTIONAL!
  1400. #       TYPE=t, where 't' is EXACTLY one (case difference OK) of the
  1401. #               following:
  1402. #
  1403. #               "String",
  1404. #               "Integer",
  1405. #               "Float",
  1406. #               "Date",
  1407. #               "Time",
  1408. #               "Decimal",
  1409. #               "Money",
  1410. #               "Logical",
  1411. #               "Numeric",
  1412. #               "Bfloat",
  1413. #               "Lstring",
  1414. #               "Zstring",
  1415. #               "Unsigned Binary",
  1416. #               "Autoincrement",
  1417. #
  1418. #       NULL=n, where 'n' is the decimal NULL value (commonly 0 or 32) OR
  1419. #                  NULL=N/A to explicitly state no NULL value.
  1420. #                  NULL= is OPTIONAL.
  1421. #       SEGMENT=s, where 's' is Y or N (or Yes or N0...).  The number of
  1422. #                  segments with a SEGMENT=No value should be the same
  1423. #                  as the number of keys you declare.
  1424. #
  1425. #
  1426. #  Key 0/Segment 1
  1427. #
  1428. START=1
  1429. LEN=11
  1430. MODIFIABLE=n
  1431. DUPLICATES=n
  1432. ALTERNATE=n
  1433. DESCENDING=n
  1434. TYPE=STRING
  1435. NULL=N/A
  1436. SEGMENT=NO
  1437. #
  1438. #  key 1/segment 1
  1439. #
  1440. START=12
  1441. LEN=30
  1442. MODIFIABLE=y
  1443. DUPLICATES=y
  1444. ALTERNATE=y
  1445. DESCENDING=n
  1446. TYPE=STRING
  1447. NULL=N/A
  1448. SEGMENT=YES
  1449. #
  1450. #  key 1/segment 2
  1451. #
  1452. START=1
  1453. LEN=11
  1454. MODIFIABLE=y
  1455. DUPLICATES=y
  1456. ALTERNATE=y
  1457. DESCENDING=n
  1458. TYPE=STRING
  1459. NULL=N/A
  1460. SEGMENT=NO
  1461. #
  1462. #  That's all, folks!
  1463. #
  1464.  
  1465. Use the following file (supplied on disk as well) that
  1466. allows you to create a Supplemental Index for a Btrieve file
  1467. by describing it in an ASCII file.  Modify it for your needs
  1468. and run the File/Misc. Btrieve Functions/Supplemental
  1469. Index/Create menu option.  When asked, supply the name of
  1470. the BTS file you have modified for your use, or use the
  1471. SAMPLE.BTS file to see how the system works.
  1472.  
  1473. #
  1474. #   This line (and all lines beginning with '#') are COMMENTS.
  1475. #
  1476. #   This is a sample BTrieve Supplemental Index (BTS) file.
  1477. #   It allows for the creation of a supplemental index (key)
  1478. #   for Btrieve files in BTFILER.  It does the same thing
  1479. #   as the BUTIL -SINDEX function, but with one significant
  1480. #   difference:  Error diagnostics are clearer.  This removes (I
  1481. #   think) the most significant problem with the BUTIL - SINDEX
  1482. #   process.  Someday an interactive utility for this will be part
  1483. #   of BTFILER, but until then, this will have to do...
  1484. #
  1485. #   Case is not important, and some fields are optional (as
  1486. #   noted in comments).
  1487. #
  1488. #   This field is the only field possible on the file level section:
  1489. #
  1490. #      ALTERNATE FILE=<filename>           OPTIONAL if no alternate key
  1491. #
  1492. #
  1493. #
  1494. #  ALTERNATE FILE=fname, where fname is the name of a file like
  1495. #     UPPER.ALT.  This line is optional IF no ALTERNATE=YES
  1496. #     key segments exist.
  1497. #
  1498. ALTERNATE FILE=UPPER.ALT
  1499. #
  1500. #  END OF FILE LEVEL SETTINGS!
  1501. #
  1502. #  This marks the beginning of key segment level information.
  1503. #     If I were you, and I were creating BTS files, I would
  1504. #     place a large comment band between each key segment
  1505. #     to remind myself what I think I am doing.  Just a
  1506. #     thought...
  1507. #
  1508. #  The lines for each key segment are in the following order:
  1509. #
  1510. #     START=n, where 'n' is the starting position of the key
  1511. #     LEN=n, where 'n' is the length of the key
  1512. #     MODIFIABLE=s, where 's' is Y or N (or YES or NO or Yes or...)
  1513. #                      Allows Modifications to be made to the key?
  1514. #     DUPLICATES=s, ditto above...Allows Duplicate keys?
  1515. #     ALTERNATE=s, where 's' is as above.  Alternate Collating Sequence?
  1516. #     DESCENDING=s, like above.  Sorts Hi to Lo?
  1517. #     MANUAL=s, like above, Manual key?  OPTIONAL!
  1518. #     TYPE=t, where 't' is EXACTLY one (case difference OK) of the following:
  1519. #
  1520. #                           "String",
  1521. #                           "Integer",
  1522. #                           "Float",
  1523. #                           "Date",
  1524. #                           "Time",
  1525. #                           "Decimal",
  1526. #                           "Money",
  1527. #                           "Logical",
  1528. #                           "Numeric",
  1529. #                           "Bfloat",
  1530. #                           "Lstring",
  1531. #                           "Zstring",
  1532. #                           "Unsigned Binary",
  1533. #                           "Autoincrement",
  1534. #
  1535. #     NULL=n, where 'n' is the decimal NULL value (commonly 0 or 32) OR
  1536. #                NULL=N/A to explicitly state no NULL value.
  1537. #                NULL= is OPTIONAL.
  1538. #     SEGMENT=s, where 's' is Y or N (or Yes or N0...).  The number of
  1539. #                segments with a SEGMENT=No value MUST be one in this case
  1540. #                since only a single supplemental index can be declared
  1541. #                at once.
  1542. #
  1543. #  Segment 1
  1544. #
  1545. START=1
  1546. LEN=22
  1547. MODIFIABLE=n
  1548. DUPLICATES=n
  1549. ALTERNATE=n
  1550. DESCENDING=n
  1551. TYPE=STRING
  1552. NULL=N/A
  1553. SEGMENT=NO
  1554. #
  1555. #  That's all, folks!
  1556. #
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.              Appendix B - Using Keystroke files
  1576.  
  1577.  
  1578. Beginning with Version 1.30, BTFILER allows for use of
  1579. keystroke files to automate some program functions.  What
  1580. must be in the file is every keystroke that is required to
  1581. run a particular operation.  The only exception is the
  1582. keystroke required to bypass the registration reminder
  1583. screen.  This screen is passed over if a keystroke file is
  1584. being played.
  1585.  
  1586. Most characters are self explanatory, but some special
  1587. characters may also be entered.  '!' is used where an enter
  1588. key would be played, and '#' substitutes for ESC.  Control
  1589. characters may be entered as the caret key ('^') followed by
  1590. the actual letter (i.e. 'C').  If the characters "^C" are in
  1591. a keystroke file, and they are played back while in a data
  1592. entry field, they will clear the field.  It is easiest to
  1593. use the mnemonic characters (those highlighted on the menus)
  1594. to select options, and note currently there is a limit of
  1595. 200 characters that may be played back.  Below two batch
  1596. files are listed that create keystroke files on the fly and
  1597. then feed them to BTFILER.
  1598.  
  1599.                          BTCLONE.BAT
  1600.  
  1601. echo off
  1602. if '%1' == '' goto NO_PARMS
  1603. if '%2' == '' goto NO_PARMS
  1604. goto OK
  1605. :NO_PARMS
  1606. echo USAGE: BTCLONE existing_file new_clone_file
  1607. goto END
  1608. :OK
  1609. rem
  1610. rem 'C' to choose Clone on opening menu, %1 the Btrieve
  1611. file, '!' for ENTER,
  1612. rem    %2 the New file, '!' for enter, and '###' for ESC's.
  1613. rem
  1614. echo C%1!%2!### >btclone.txt
  1615. btfiler /k:btclone.txt
  1616. del btclone.txt
  1617. :END
  1618.  
  1619.  
  1620.                          BTRESET.BAT
  1621.  
  1622. echo off
  1623. rem
  1624. rem  '#' (ESC) to go to top menu bar, 'O' for Options,
  1625. rem  'E' for Reset Btrieve, and
  1626. rem     Lots of "#' (ESC) to get back out.
  1627. rem
  1628. echo #OE### >btreset.txt
  1629. btfiler /k:btreset.txt
  1630. del btreset.txt
  1631. :END
  1632.  
  1633.