5.5    Retrieval - Search, Get, and Replace

       You have two basic methods of retrieval, GET and SEARCH.
       Neither is case-sensitive: capitals and lower case can be
       freely mixed.  These commands can be accessed from the
       Main screen via their own individual buttons, or from the
       List screen via the 'Find recs' button.

       FIND also includes a search-and-replace command which can
       be used to locate and update, or simply locate, ANY text
       string - not just keywords.      (NOT IN FREEWARE VERSION)

5.5.2  Get

       Overview
       --------

       GET is a way of Searching without using keywords.
       It retrieves specific records or sets of records by
       matching text strings precisely; or by date; or by 
       absolute record number - ie, particular records in the 
       physical database files.

       Like Search, the set of "hits" (if any) creates a new
       List, and the List screen is automatically brought up to
       show them.  

       If there are no hits, you are informed by a beep and 
       (on the Main screen only) a "No matching entries located"
       message at lower left of the screen.  In that case, the 
       previous List remains unchanged.


       Click Get.  

       A panel or window similar to the Search panel appears, 
       showing a set of check boxes, and two input fields
       labelled "String" and "RecNo".  String is for entering
       ANY text you want to look for (not just keywords), and 
       RecNo is for entering record numbers.  

       The check boxes allow you to select options for a 
       "Get by String" (NOT IN FREEWARE VERSION).  

       This is the basic type of Get, but there is also a group 
       of buttons allowing Gets by -

       (1) Date or range of Dates,
       (2) Record number or range of Record numbers, and
       (3) "All" (which puts the entire database on the List)

       In other words, there are four kinds of Get, all started
       from the same panel:

         - text-based ('String' button, plus 'Back' and 'edIt')
         - date-based ('Date' and 'datE range' buttons)
         - numeric    ('Record' and 'recd raNge' buttons)
         - global     ('All' button)


       Text-based Gets
       ---------------

       These try to find records in the database that contain 
       the set of characters entered by you.  To be matched, 
       strings must be wholly contained within a single line.
       
       Click 'edIt' or type I to input a string; for example

             "christmas day"   (or just: "mas day")  

       Use 'Back' to recall up to 8 previously used strings
       (NOT IN FREEWARE VERSION), and then use 'edIt' to adapt 
       them.  Use the check boxes to set options.

       The check boxes let you         (NOT IN FREEWARE VERSION)

       - choose the records to be scanned 
         (entire database, or just the current List)

       - select which lines will be scanned 
         (Key line only, "Topic", both, or the whole record)
  
       - force case-sensitivity, so that "Mister" & "mister" 
         are NOT regarded as matching (it is OFF by default)
 
       - request only records that DON'T contain the string 
         you entered (check "Get Unmatched Only?")

       Finally, to start the Get, click 'String' or type S.


       Date-based Gets
       ---------------

       These allow you to retrieve records for a particular date, 
       OR undated records, OR all those between a specified PAIR 
       of dates (inclusive).

       When you click either the 'Date' or 'datE range' buttons,
       the initial check boxes are replaced by a day and month 
       calendar to allow point and click date selection, and the
       button set also changes.  Now you have:

         - Undated
         - pick Day
         - all dAys
         - pick Mth
         - all mThs
         - set Year
         - Ok

       plus Cancel and Help.  ('Back' & 'edIt' are inactivated.)


       HOW TO SET UP A DATE:
       --------------------
       Day/Month (or Month/Day) are entered as a pair, separately
       from Year, in UK or US format depending on the option 
       selected in your BLUEBOOK.INI file.

       ----------------------------------------------------------
       Note: All years are leap years as far as BlueBook is
       concerned - it's up to you to get that right.

       Note also: Undated records are defined here as records
       with no day or month; they may or may not have a Year
       specified.
       ----------------------------------------------------------

       First, click the day and month you want on the calendar.
       (If "keyboarding", the arrowhead in the centre indicates
       which part of the calendar, day or month, is active:
       Tab to switch, then use the arrow keys to pick a value.
       DON'T hit <Enter>.  That's the same as clicking "Ok" and
       it starts the Get.)

       Next, enter a year.  Click 'set Year', or type Y, then
       enter the desired year manually.  For ALL YEARS, use an 
       "*".  Click or hit <Enter> to finish entering a year:
       you are in editing mode at this point.


       GETTING ON A SINGLE DATE:
       ------------------------
       If you clicked 'Date', you are Getting all records for a
       SINGLE date, and you will see a single date field at the
       bottom left of the panel.  This is initially set to

           [ 01 - 01 - *    ]

       If you click 'Undated'/type U at this point, the "01-01"
       fields go blank.  This means you are asking for all 
       UNDATED records (no month or day), in ALL years ("*").

       You can leave it like that, or you can click 'set Year'
       and ask instead for all undated records for a SPECIFIC 
       year.

       ----------------------------------------------------------
       NB: You don't have to click the 'set Year' button. 
       Year input fields are "hot spots" that you can click 
       directly.

       Clicking 'Undated' AGAIN, or typing U, switches back to
       showing the day and month values.
       ----------------------------------------------------------

       If you click 'all dAys', the day field changes to an "*".
       Likewise, If you click 'all mThs', the month field changes
       to an "*" (=all).  This allows queries on, for example:

         "all records for the 10th of any month"  (10-* -*   )
         "all records for any day in June"        (* -06-*   )
         "all records in 1996", etc.              (* -* -1996)

       ----------------------------------------------------------
       To switch the *'s off, and return to showing the currently
       selected day and month values, click 'pick Day' or 
       'pick Mth' (type D or M) as appropriate.
       ----------------------------------------------------------

       Year must be entered manually, or left as an "*" wildcard.
       Click 'set Year' or type Y to do this.  When done, hit 
       <Enter> to leave edit mode.

       When your date or "date pattern" is set up, that's it.
       Click OK, type O, or hit <Enter> to begin retrieval.


       GETTING ON A RANGE OF DATES:
       ---------------------------
       If you clicked 'datE range', you are Getting all records
       BETWEEN two specified dates (inclusively), and you will
       see two date "setup" fields at bottom left of the panel.
       These show initially as

           [ 01 - 01 -      ] to [               ]

       Set up first date as above ("GETTING ON A SINGLE DATE"),
       with the proviso that you MUST enter a valid year.

       ----------------------------------------------------------
       The two dates must be fully specified, ie. no * wildcards.
       So although the same set of buttons appears (as for a
       single date), the top five ('Undated' thru 'all mThs') are
       disabled here.
       ----------------------------------------------------------

       Then click Ok, type O, or hit <Enter>.  The "TO date" 
       field will now activate itself.  Enter the second half of 
       the range in the same way as the first.  

       This time, when you click Ok, type O, or hit <Enter>, the
       Get will start - assuming the dates have been set up
       correctly.

       ----------------------------------------------------------
       If either date is not set up correctly, "OK" will beep and
       refuse to proceed - either to inputting the second part of
       the range, or to starting retrieval, depending on the date
       in error.  Reverse chronological order is acceptable.
       ----------------------------------------------------------


       Numeric Gets by Record Number
       -----------------------------

       Much simpler.  Just click 'Record' or type R, and enter
       into the "RecNo" field the absolute record number that you
       wish to retrieve.  Assuming it is within the size of the
       file, and has not been 'deleted' (ie, flagged by the Del
       command as space available for reuse by Add), it will be
       retrieved.

       To get a RANGE of record numbers (inclusively), click
       'recd raNge' or type N, and enter the two figures one
       after another.

       After typing a number, hit <Enter> to leave edit mode on
       that field - the cursor skips over the second field entry,
       or not, depending on which button you clicked.  When the
       number has been entered, or both numbers have been
       entered, the relevant record(s) are retrieved, placed on
       the List, and the new List is displayed.  If the record is
       deleted or the range is invalid, a beep sounds and (on the
       Main screen) a "No matching entries located" message is
       shown at lower left of screen.  In that case, the old List
       is retained.

       ----------------------------------------------------------
       Records are stored in the files in the same order as they
       first appear, ie. when the List has not been sorted.  

       The number of UNDELETED records in the database is always
       shown on the information line, bottom left of the screen,
       after "[NAME- "; eg:  "C:\BLUEBOOK [MYCDROMS-  482]".  

       The ABSOLUTE record number (=position in file) of the 
       current record is shown at bottom right of the screen, 
       after "DD-MM-YYYY/" (or "MM-DD-YYYY/").

       To find the highest valid ABSOLUTE record number, do a 
       "Get All" and make the last record on the List current.  
       Then check the record number shown at bottom right.
       ----------------------------------------------------------


       Global  (Get/All)
       -----------------

       Simpler still.  Click Get or type G.  Then click All or
       type A.  All records in the database will be placed on the
       List (unless there are no records in the database), and
       the List screen automatically displayed.

       If there ARE no records to be Listed, a beep sounds and a
       "No matching entries located" message is displayed at
       lower left of screen.

