home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / quickfile3 / docs / quickfile.doc < prev    next >
Text File  |  1996-06-10  |  49KB  |  1,395 lines

  1.   Quickfile v3.18.1 copyright 1992-1995 by Alan Wigginton
  2.  
  3. I accept no liability for any loss or damage resulting from the use of
  4. this program.  Users must evaluate the program and decide its usefulness
  5. for their own purposes.
  6.  
  7. QuickFile is not Public Domain, however it can be freely distributed
  8. provided all documentation and sample files are included unchanged.
  9.  
  10. QuickFile is a flexible, flat file database. It uses random access with
  11. indexing for fast access to records. Files can be larger than available
  12. ram, but as much of the file as possible is kept in ram to reduce disk
  13. accesses. Features include:
  14.  
  15.     - Multiple indexes with unique or non-unique keys
  16.     - Data types include Character, Date, Time, Integer, Floating Point,
  17.       Calculation, Cycle, Image and External
  18.     - Up to 250 characters per field  and 250 fields per record.
  19.     - Form and list style displays and reports.
  20.     - Unlimited number of views of each file.
  21.     - Sort over any number of keys, ascending and descending order.
  22.     - Search operators include Like, Equal, Between, Sounds Like, Not Like
  23.       and Not Equal.
  24.     - Fields can be added, changed, or deleted at any time.
  25.     - ASCII export/import
  26.     - Multi column label printing.
  27.     - Multi-level grouping and totalling
  28.     - Any number of open files each in its own resizable window
  29.     - Online context sensitive AmigaGuide help
  30.     - ARexx port supporting macros and commands from external programs
  31.     - Easy to intuition interface with font sensitivity
  32.  
  33. System Requirements
  34.  
  35.     Any Amiga computer with WB 2.04 or later.
  36.     1 meg or more RAM recommended
  37.  
  38.     Required libraries
  39.     asl.library
  40.     mathieeedoubbas.library
  41.     mathieeedoubtrans.library
  42.  
  43.     Optional libraries
  44.     iffparse.library       - to display Image fields
  45.     rexxsyslib.library     - to use ARexx
  46.     amigaguide.library     - to use on-line help
  47.  
  48.  
  49. QuickFile will work with XFH-handler (a file compression program) but
  50. XFH-handler requires that the decompressed file fit completely in ram.
  51. To work with QuickFile such programs must support update of an existing
  52. file.
  53.  
  54. QuickFile is written in C using DICE version 3.0.
  55.  
  56. ====== CONDITIONS OF USE =====
  57.  
  58. This version of the program can be used for free on the condition that you
  59. write and let me know that you are using it - a postcard will do. The
  60. About requester is displayed when the program starts and each time a
  61. window is closed.
  62.  
  63. Donations of money, stamps, software etc will be gratefully accepted. If
  64. you would like to register for updates, bug fixes and support, please send
  65. at least $20.00 to the address below. Overseas users please use
  66. international money order or bank draft - not personal cheques. Any cash
  67. currency is OK, but you send it at your own risk.
  68.  
  69.       Alan Wigginton
  70.       23 Carissa St
  71.       Shailer Park, Queensland  4128.
  72.       AUSTRALIA
  73.  
  74.       Phone 61 7 3208 9441 (from overseas. Remember time differences)
  75.           07 3208 9441 (from within Australia)
  76.  
  77.       Internet: alanw@powerup.com.au (until 22 June 1996 only)
  78.  
  79. Registration will get you the latest version of the program (without the
  80. requester) and prompt attention by email (or snail mail)  to any problems
  81. you may encounter. You will also be advised when major upgrades are
  82. available.
  83.  
  84. I would appreciate any comments or suggestions. You will not get a reply
  85. to snail mail unless you send at least enough to cover return postage. I
  86. suggest an International Reply Coupon.
  87.  
  88. WARNING. QuickFile is a random access data base that buffers records in
  89.      memory. Failure to exit the program properly after updates are
  90.      made will result in lost updates.
  91. ALWAYS     exit the program before a reboot or power off.
  92. DO     backup your files regularly.  When backing up a data base make
  93.      sure you backup all of the files - definition, data and indexes.
  94.  
  95. To install QuickFile to a hard disk or floppy, drag the QuickFile icon to
  96. the drawer of your choice. If you want to use the AmigaGuide help system,
  97. copy QuickFile.guide to the same directory. To install AmigaGuide
  98. doubleclick on the InstallAmigaGuide icon.
  99.  
  100. Icons are not generated by the program. Sorry, but if you want them you
  101. will have to create them yourself.
  102.  
  103. ===== Starting QuickFile ======
  104.  
  105. QuickFile may be started from Workbench using either the program icon or a
  106. project icon.
  107.  
  108. It may also be started from the CLI. The program name may be followed by
  109. a file name.
  110.  
  111. QuickFile opens a window on the default public screen. The default window
  112. size is a few pixels smaller than the screen size. Window size and
  113. position are saved when a view is saved.
  114.  
  115. ===== About Views ======
  116.  
  117. Views allow you to display data from a file in different ways. There are
  118. two basic types FORM and LIST.
  119.  
  120. Each view has its own field titles, positions and lengths, window size and
  121. report details. Once you have a view set out the way you want it, you can
  122. save it for future use.
  123.  
  124. The Define View requester is used to select or change the fields included
  125. in a view. The positions of fields on a form can be changed by dragging
  126. them around with the mouse.
  127.  
  128. When you open a file, QuickFile looks for a view called filename.VIEW. To
  129. automatically use your favourite view, save it as filename.VIEW in the
  130. same directory as the data base.
  131.  
  132. If you want to keep things simple and are happy with the default view, you
  133. need not define a view at all.
  134.  
  135. Views are typically used to print labels, export or import selected fields
  136. or print lists containing only selected fields.
  137.  
  138.  
  139. =========== Keyboard ===================
  140.  
  141. The following keys are available when the cursor is not in a string
  142. gadget (Press RETURN or ESC to de-activate a string gadget):
  143.  
  144.    RETURN        Same as OK button
  145.    ESC            Same as CANCEL button
  146.    TAB            Activate first string gadget
  147.    HELP         Displays help. Requires Amigaguide.library in libs: and
  148.             QuickFile.guide in the same drawer as QuickFile.
  149.    Down arrow        Next record
  150.    Up arrow        Previous record
  151.    Shift-down arrow Next page
  152.    Shift-up arrow   Previous page
  153.  
  154. In requesters with a single listview, up and down arrows will move through
  155. the items.
  156.  
  157. The following keys can be used in string gadgets:
  158.  
  159.    TAB              Move to next field
  160.    Shift-TAB          Move to previous field
  161.    Down arrow          Move to next field
  162.    Up arrow          Move to previous field
  163.    Return          De-activate string gadget if value is valid
  164.    ESC              De-activate string gadget ignoring errors
  165.    right Amiga-X      Erase all text in the gadget (as does Control-X)
  166.    right Amiga-Q      Restores the text that was present before you
  167.               changed it.
  168.    Shift-left arrow   Moves the cursor to the beginning of the field.
  169.    Shift-right arrow  Moves the cursor to the end of the field.
  170.    Shift-Del          Erases all characters from the cursor to the end of
  171.               the gadget.
  172.    Shift-Backspace    Erases all characters to the left of the cursor.
  173.  
  174. ============== MAIN WINDOW =================
  175.  
  176. Windows can be resized using the sizing or zoom gadgets. The window can
  177. be iconified (reduced to a short title bar) using the Project/Iconify
  178. menu item
  179.  
  180. ===== Form Display ======
  181.  
  182. The FORM DISPLAY shows a single record per screen in the format specified
  183. by the current view.
  184.  
  185. Field positions can be changed by dragging fields around the window with
  186. the mouse. Field sizes can be changed by dragging the bottom right corner
  187. of the drag box. Note that although field height can be changed, only
  188. images will use more than a single line.
  189.  
  190. Pressing the "R" button displayed at the start of an external field will
  191. run the command defined for the field, provided the field is not empty.
  192.  
  193. To add or delete fields, change field titles or displayed lengths, press
  194. the VIEW button;
  195.  
  196. ===== List Display ======
  197.  
  198. The LIST display shows as many records as will fit in the window with a
  199. single line per record.
  200.  
  201. To update a record double click on it with the left mouse button
  202.  
  203. Before using the Modify or Delete buttons, select a record using a single
  204. press of the left mouse button.
  205.  
  206. In list mode, field position and length can only be changed using the
  207. Define View requester.
  208.  
  209. ===== Buttons =====
  210.  
  211. GoTo
  212.   GoTo finds a record by key value using the current index. This makes
  213.   access extremely fast, even on large files.
  214.  
  215.   You only need to enter enough of the key to identify the record you
  216.   want, but you must start at the first key field.
  217.  
  218. Modify
  219.   Allows you to modify the current record. The horizontal scroll gadget
  220.   can be used to scroll the display and access fields that do not fit in
  221.   the window.
  222.  
  223.   For images or external fields, you can enter the file name in the string
  224.   gadget or press the arrow button to get a file requester. Names entered
  225.   into the string gadget are not validated.
  226.  
  227. Insert
  228.   Displays a blank form for you to enter values for a new record.
  229.  
  230.   The Copy button will copy the contents of the previous record. This is
  231.   useful if you are entering records with similar values in some fields of
  232.   each record. Warning - it replaces anything currently on screen.
  233.  
  234.   Press Cancel (or ESC) to return to Browse mode.  NB When Cancel is
  235.   pressed any values displayed on the screen will be lost.  Press OK
  236.   to insert the record, then Cancel.
  237.  
  238. Delete
  239.  
  240.   Deletes the current record. A requester is displayed to confirm.
  241.   Once the record has been deleted you cannot get it back.
  242.  
  243. Form/List
  244.   Toggles the current view between FORM and LIST formats.
  245.  
  246. All/Sel
  247.   Toggles between all and selected records.
  248.  
  249. Images
  250.   The Images checkbox in the main window toggles image display on and off
  251.   for faster processing.
  252.  
  253.  
  254. ===== Scrolling =====
  255.  
  256.   Scrolling is controlled by two slider type gadgets.
  257.  
  258.   Vertical Slider
  259.     This controls movement through the file and works in the usual way.
  260.     Scrolling may also be done using the up and down arrow keys for a
  261.     single record, or the shifted keys for a full screen.
  262.  
  263.   Horizontal Slider
  264.    If there are more fields than will fit in the current window, this
  265.    can be used to display the next group of fields.
  266.  
  267. ===========PROJECT  MENU ===================
  268.  
  269. OPEN
  270. Opens a new file in a new window.
  271.  
  272. LOAD
  273. Opens a new file, replacing the file in the current window.
  274.  
  275. SAVE
  276. Writes all updated blocks and indexes to disk.
  277.  
  278. CLOSE
  279. Writes all updated records and indexes to disk and closes the file and
  280. window.  Closing the last window will exit the program.
  281.  
  282. SAVE AS
  283. Creates a new file from the current file. Indexes for the new file are not
  284. created - they will be built when you first open the new file.
  285.  
  286. NEW
  287. Opens a new window for you to define a new file.
  288.  
  289. ALTER
  290. Displays the file definition panel for you to alter the current file
  291. definition. Note that the data and any updated views are saved first.
  292.  
  293. EXPORT
  294. Writes all, or selected, records to an ASCII file for exchanging data with
  295. other applications such as word processors, other data bases etc. The
  296. order and length of the fields in the export file is determined by the
  297. current view. Before doing the export, you may need to create a new view
  298. to give the record layout you want. See export section for details.
  299.  
  300. IMPORT
  301. Loads records from an ASCII file into your data base. The sequence and
  302. length of fields in the input file are determined from the current view.
  303. You should create and select the view before selecting the import
  304. function. See Import section for details.
  305.  
  306. REORGANISE
  307. Reorganises a file by creating a new optimised version and then copying
  308. that version over the main file.
  309.  
  310. Reorganising is not essential, but if you have been doing many additions
  311. and deletions, it may reduce file size and will improve performance.
  312.  
  313. During reorganisation free space is adjusted to the value specified in
  314. the file definition and records are physically stored in the sequence of
  315. the active key. Select your most used key sequence before reorganising to
  316. optimise access with that key.
  317.  
  318. ICONIFY
  319. The Project/Iconify menu item shrinks the window to a short title bar.
  320.  
  321. The window can be restored by choosing the menu item again (it acts as
  322. a toggle) or by clicking on the window zoom gadget.
  323.  
  324. QuickFile remains active while it is iconified and you can use most of
  325. the menu items and keyboard shortcuts.
  326.  
  327. ========= VIEW MENU ==========
  328.  
  329. VIEWS
  330. Displays a requester showing a list of currently loaded views for you to
  331. choose from. If you have not created or loaded any views, you will have a
  332. single view called filename.VIEW.
  333.  
  334. Press the Free button to drop the selected view. You cannot close all
  335. views - you must have at least one loaded.
  336.  
  337. NEW
  338. Creates a new view called 'unnamed' and displays it in the define View
  339. requester.
  340.  
  341. LOAD
  342. Loads another view from disk which becomes the current view.
  343.  
  344. If fields in the view cannot be located in the file definition, they will
  345. be dropped, and a requester displayed to warn you. This will happen if you
  346. delete fields from the file or change field names in the file definition.
  347.  
  348. SAVE
  349. Saves changes made to an existing view. If the view has been newly created
  350. a file requester will be displayed to confirm the name.
  351.  
  352. SAVE AS
  353. Saves the current view under a new name. A view can have any name but the
  354. .view suffix should be used for easy identification.
  355.  
  356. ALTER
  357. Displays the Define View requester to change the current view.
  358.  
  359. RESET FORM
  360. Resets field positioning back to the default.
  361.  
  362. ========== ORDER MENU =========
  363.  
  364. INDEXES
  365. Displays a list of indexes. Choose an index fromt the list to change the
  366. display sequence. If you have performed a sort or selection, the list will
  367. include "Selected" and/or "Sorted".
  368.  
  369. Pressing the Close Button will remove a "Sort" or "Selection" from memory
  370. and free the space used. To remove any permanent index use the
  371. Project/Alter menu item to alter the file definition.
  372.  
  373. SORT
  374. Displays the sort requester to sort into a new sequence
  375.  
  376. SHOW SORTED
  377. Uses last sort for the display sequence.
  378.  
  379. REBUILD INDEX
  380. Rebuilds the current index from the data file.
  381.  
  382. This can be used if the index and data files are inconsistent for some
  383. reason (eg a system failure). The index is rebuilt from the data file.
  384.  
  385. Try using this if the program is failing with a 'Block not found message'
  386. or any messages to the effect that QuickFile could not find a record it
  387. looked for.
  388.  
  389. ======= SELECTION MENU ===========
  390.  
  391. QUERY
  392. Searches for records matching your selection criteria. See later for full
  393. details.
  394.  
  395. SEL/UNSEL RECORD
  396.  
  397. Select or deselect a single record.
  398.  
  399. If you are viewing a selection (using index "Selected"), the current
  400. record is removed from the selection.
  401.  
  402. If you are using any other index, the current record is added to the
  403. selection. Nothing happens if the record is already in the selection.
  404.  
  405. A message is displayed in the title bar indicating the action performed.
  406.  
  407. For a form view the current record is the one displayed.
  408.  
  409. For a list view the current record is the highlighted record or, if no
  410. record is highlighted, the first record on the screen.
  411.  
  412.  
  413. SHOW SELECTED
  414. Displays current selection
  415.  
  416. SHOW ALL
  417. Displays all records. The current selection is retained.
  418.  
  419. ======= PRINT MENU ===============
  420.  
  421. DISPLAYED RECORDS
  422. Prints the records currently displayed on the screen. This will be a
  423. single record for a form display.
  424.  
  425. ALL RECORDS IN CURRENT INDEX
  426. Prints all records in the current index (or Sort or Selection).
  427.  
  428. The fields printed and the style (form or list) of report is determined by
  429. the current view.
  430.  
  431. See Print Requester for full details
  432.  
  433. =============== OPTIONS MENU ====================
  434.  
  435. ABOUT
  436. Too obvious to explain
  437.  
  438. BUFFERS
  439. Displays number  of blocks in the file and the maximum and in-use number
  440. of RAM buffers. You can change the maximum number of ram buffers. To
  441. permanently change the maximum number of buffers, use the Project/Alter
  442. menu item to change the file definition.
  443.  
  444. RUN AREXX MACRO
  445.  
  446. You run an ARexx macro by selecting the Options/ARexx macro menu item.
  447. This brings up a requester for you to enter the macro name.
  448.  
  449. Pressing the 'File' button brings up the file requester for you to choose
  450. the file to be run.
  451.  
  452. If you don't enter a file extension it defaults to ".QuickFile".
  453.  
  454. QuickFile sets the current directory to the database directory before
  455. passing the macro to ARexx. ARexx will look in this directory first, then
  456. in the REXX: directory. I suggest you put macros written for a particular
  457. database in its directory and general macros in the REXX: directory.
  458.  
  459. You can also run an ARexx macro automatically on start up to do things
  460. like loading additional views or selecting an index. Name the script
  461. filename.STARTUP and place it in the same directory as the file.
  462.  
  463. The display is not normally redrawn until the macro completes.
  464.  
  465. This menu item is disabled if RexxSupport.library is not in your libs:
  466. directory. ARexx must also have been started using REXXMAST before you can
  467. run a macro successfully.
  468.  
  469. See the Arexx commands documentation for a description of the commands
  470. available from ARexx.
  471.  
  472.  
  473. CONFIGURATION
  474.  
  475. The Configure Requester is obtained by selecting Configuration on the
  476. Options menu.
  477.  
  478. The settings are saved in a file called "QuickFile.config" in the same
  479. directory as the QuickFile program.
  480.  
  481. Memory Save Checkbox
  482.     Selecting this checkbox tells QuickFile to reduce memory usage.
  483.     It defaults to selected. Deselect this to speed up sorting if you
  484.     are not short of memory.
  485.  
  486. Online Help
  487.     Selecting this checkbox makes the context sensitive AmigaGuide help
  488.     available. It defaults to selected. Help will only be available if you
  489.     have AmigaGuide installed.
  490.  
  491. FONTS
  492.  
  493. To change a font, press the arrow gadget beside the font name. This will
  494. bring up a font requester for you to select a typeface and size.
  495. Note that very wide fonts may trash some gadget imagery.
  496.  
  497. Standard Font
  498.     Specifies the font to use for text in most gadgets. This may be a
  499.     proportional font.
  500.  
  501. List Font
  502.     This is the fixed width font used for list displays. This includes
  503.     QuickFile's list display and Listview gadgets.
  504.  
  505. Report Font
  506.     This font is used for printing reports to the screen. Use a narrow
  507.     font to display more characters on the screen. This also must be a
  508.     fixed width font.
  509.  
  510. Save button
  511.     Saves the settings in the QuickFile.config file and uses the settings.
  512.  
  513. Use button
  514.     Uses the settings but does not save them for permanent use.
  515.  
  516. Cancel button
  517.     Cancels any changes made and retains the previous settings
  518.  
  519.  
  520. ============ DEFINE VIEW REQUESTER =================
  521.  
  522. Name
  523.   Identifies the view. This can be changed for a new view, but is display
  524.   only for an existing view.
  525.  
  526. Available Fields List
  527.   Lists the fields in the current file. Clicking on a field will add it to
  528.   the current view.
  529.  
  530. View Fields List
  531.   Lists the fields in the current view. Clicking on a field in this list
  532.   will select it and display its title and length below the list box.
  533.   These can then be changed if required. The changes will only affect the
  534.   current view.
  535.  
  536.   New fields are added before the currently selected item.
  537.  
  538. Type Buttons
  539.   Choose type of view - FORM or LIST.
  540.  
  541. Headings Check Box
  542.   Field names are displayed if this is checked. This is normally only
  543.   turned off for printing labels.
  544.  
  545. Lock Check Box
  546.   If checked, locks a view to prevent accidental dragging of fields. This
  547.   should be set to checked and turned off only when you want to arrange
  548.   fields by dragging them in the view.
  549.  
  550. Field Title String Gadget
  551.   This is the text gadget under the View Fields list. You can change the
  552.   field title for this view only. For example you may want a short title
  553.   for a short field on the list display but use the full name for the form
  554.   display. The title can be blank. This gadget is disabled unless one of
  555.   the View Fields is selected.
  556.  
  557. Length String Gadget
  558.   Use this to reduce or increase the field display length for this view
  559.   only.
  560.  
  561. IMPORTANT NOTE: You must press enter after changing either the field name
  562.   or length or your changes will be ignored.
  563.  
  564. Clear Button
  565.   Deletes all fields from the View Fields list.
  566.  
  567. Delete Button
  568.   Deletes the selected field from the View Fields list.
  569.  
  570. =================== SORT REQUESTER ==================
  571.  
  572. Sort creates a temporary index which is discarded when the file
  573. is closed. The sort sequence will be maintained as you add or delete
  574. records.
  575.  
  576. The sort technique used requires that all sort keys be resident in memory,
  577. so record buffers are freed to increase the memory available to the sort.
  578. If you are short of memory, it may help to sort using less than the full
  579. length of long fields.
  580.  
  581. Available Fields
  582.   Lists the fields defined in this file. Clicking on a field will add it
  583.   to the Sort Fields.
  584.  
  585. Index Fields
  586.   Lists the fields to be used for the sort. The order of the fields
  587.   in this box determines their priority in the sort. The first field is
  588.   the primary key, the second will only be used for records where the
  589.   first keys are equal and so on.
  590.  
  591.   Clicking on a field in this list will select it and display its name
  592.   and length below the list box.
  593.  
  594.   New fields are inserted before the currently selected field. To add a
  595.   field to the end of the list, select the "== End ==" entry.
  596.  
  597. Length
  598.   Changing this length allows you to sort over part of a long field, to
  599.   save memory and speed sorting
  600.  
  601.   IMPORTANT: YOU MUST PRESS ENTER OR RETURN AFTER CHANGING A LENGTH OR
  602.          YOUR CHANGES WILL BE IGNORED
  603.  
  604. Order
  605.   Select A..Z for ascending sequence or Z..A for descending. You can mix
  606.   these on different fields in the same index.
  607.  
  608. Clear Button
  609.   Deletes all fields from the Index Field List
  610.  
  611. Delete
  612.   Deletes the selected field from the Index Fields list.
  613.  
  614. ==================== SELECTION ====================
  615.  
  616. A selection is a subset of the data base that is the result of a Query.
  617. QuickFile searches through the whole data base looking for records with
  618. fields matching requested values, and creates an index containing these
  619. records. You can then browse, print, export or create a new database with
  620. the selected records.
  621.  
  622. The selection is updated automatically for deletions and changes but not
  623. additions.
  624.  
  625. When displaying a selection, the title bar will show the number of records
  626. in the selection.
  627.  
  628. You specify the required sequence for the selected records. The default
  629. is the same as the current index. You can run your query against the whole
  630. file or the results of the previous query.
  631.  
  632. You can use any number of criteria for a query, but the more you have the
  633. slower the search will be.
  634.  
  635. ============== Query Requester =================
  636.  
  637. The Query Requester displays a list of search criteria with buttons for
  638. inserting, modifying and deleting them.
  639.  
  640. Two values can be specified for each item. The second value is primarily
  641. for the Between operator, but it can be used to specify an alternative
  642. value for the other operators.
  643.  
  644. Clicking on the Insert or Modify displays the Search Details requeste for
  645. you to insert or modify the details.
  646.  
  647. For insertions, the new item will be inserted before the selected item. To
  648. insert a new item at the end of the list, select the "== End ==" item.
  649.  
  650. Clicking on delete will bring up a requester for you to confirm the
  651. deletion of the selected item.
  652.  
  653. Search criteria linked with 'and' will select only records that match both
  654. criteria, while search criteria linked with 'or' will select records that
  655. match either criteria.
  656.  
  657. 'And' has higher precedence so criteria are formed into groups split by
  658. 'or'. All criteria in a group must be satisfied for a record to be
  659. selected, but a record will be selected if it matches any group. That is
  660. confusing and is probably best explained with an example:
  661.  
  662.       Occupation equal     programmer
  663.   and location     equal     sydney
  664.   or  Occupation equal     programmer
  665.   and location     equal     canberra
  666.  
  667. This will find all programmers who live in Sydney or Canberra. Note that
  668. Occupation had to be repeated. The following would give all programmers
  669. who live in Sydney and EVERBODY who lives in Canberra.
  670.  
  671.       Occupation equal     programmer
  672.   and location     equal     sydney
  673.   or  location     equal     canberra
  674.  
  675. You can also do things like
  676.  
  677.        Name     like     john
  678.   and  Name     notlike smith
  679.  
  680. which would find all persons named John, except those named John Smith.
  681.  
  682. ========= Search Details ======================
  683.  
  684. And, Or Buttons
  685.   Choose AND or OR to specify how this search item is combined with the
  686.   previous one. These are not present for the first item.
  687.  
  688. Available Fields List
  689.   Lists all the fields in the file defintion. The current selection is
  690.   displayed under the list.
  691.  
  692. Comparison Operator (like, equal etc)
  693.   Choose the operator to be used for this search item. (see below)
  694.  
  695. Value 1
  696.   The primary search value. It is always used. If you want to search for
  697.   empty fields leave this empty.
  698.  
  699. Value 2
  700.   This is the secondary search value. Its primary use is with the between
  701.   operator but can be used to enter an second search value for the other
  702.   operators.
  703.  
  704.   Note that with Not Equal and Not Like, value 1 and value 2 are joined by
  705.   AND rather than OR. It will find all records except those that contain
  706.   value 1 or value 2. Using OR in this situation would select every
  707.   record.
  708.  
  709. ======= Search Operators ===============
  710.  
  711. Like
  712.   Matches fields that contain the search string anywhere within them. eg
  713.   "bit" would find "The Hobbit" and "Bitter Sweet".
  714.  
  715. Equal
  716.   Matches a field only if it exactly equals the search value. Case is not
  717.   significant so that dog will match Dog or even dOG.
  718.  
  719. Between
  720.   Matches a field with a value equal to or between the specified pair of
  721.   values. This can also be used to perform a less than or greater than
  722.   search. e.g. 'between 41 and 999' is the same as 'greater than  40'.
  723.  
  724. Sounds Like
  725.   Matches fields where the first word sounds like the search value. This
  726.   is really a bit of a gimmick as it is not very smart. NOTE it only looks
  727.   at the first word of the field.
  728.  
  729. Not Like
  730.   As for like but only matches records that do not contain the search
  731.   value.
  732.  
  733. Not Equal
  734.   As for equal but only matches records that do not match the search
  735.   value.
  736.  
  737. ====== EXPORT REQUESTER ======
  738.  
  739. A number of preset formats are provided or you can tailor your own record
  740. and field Separators by selecting the Custom format.
  741.  
  742. The headers button determines whether a header record containing the field
  743. names is to be included at the start of the file.
  744.  
  745. Pressing the OK Button displays a file requester for you to specify the
  746. name of the export file.
  747.  
  748. All records from the current index will be written. If you are displaying
  749. Selected records, only the selected records will be written.
  750.  
  751. ====== IMPORT REQUESTER ======
  752.  
  753. One preset format("...",) is provided or you can tailor your own by
  754. selecting Custom and choosing the Record and Field separators.
  755.  
  756. Both sequence and length can be different from that in the database. Also,
  757. not all database fields need to be present in the ASCII file. Any fields
  758. not present will be set to blank in your data base.
  759.  
  760. NB: It is vital that the sequence and number of fields you set in the
  761. selected fields box of the field selector correspond to the sequence of
  762. fields in the ASCII file you are importing.
  763.  
  764. Make you sure to backup your database before you import a file into an
  765. existing data base. If you get the format wrong, it is easier to restore
  766. than to fix or delete all of the incorrect records.
  767.  
  768. Also use plenty of buffers if you are going to import a large number of
  769. records.
  770.  
  771. ============ Preset Export/Import Formats =================
  772.  
  773. A number of preset formats are provided including the mailmerge formats for
  774. some wordprocessors:
  775.  
  776.  Custom
  777.    Allows you to define your own format using predefined Separator
  778.    characters.
  779.  
  780.  "...",
  781.    This is a quote and comma delimited text file such as used for data for
  782.    BASIC programs.
  783.  
  784. The following preset formats are available only for Export, not Import.
  785.  
  786.     Final Copy
  787.     Interword
  788.     KindWords 3
  789.     ProWrite
  790.     WordWorth
  791.  
  792. Only the KindWords 3 and Interword versions have been tested.
  793.  
  794. ====== Field and Record Separators ========
  795.  
  796. You can only select from the predefined delimiter codes.
  797.  
  798.   Field Start
  799.   The character that marks the start of a field.
  800.  
  801.   Field End
  802.   Marks the end of a field. It differs from the field separator in that a
  803.   separator does not appear after the last field in a record while a field
  804.   end character appears after every field.
  805.  
  806.   Field Separator
  807.   Separates fields in the record. It does not appear after the last field
  808.   in the record
  809.  
  810.   Record End
  811.   Marks the end of a record
  812.  
  813. If Field Start is used, a Field End must also be used. If neither Field End
  814. nor Field Separator is used, the records will be fixed length with each
  815. field padded to its maximum length with spaces.
  816.  
  817.  
  818. ============= PRINT REQUESTER =====================
  819.  
  820. Title
  821.   This is printed, centered, at the top of each page of your report.
  822.   Current date is printed at the left margin and the page number at the
  823.   right margin.
  824.  
  825.   The title line is only printed if you enter a Title. Note that even a
  826.   single space will print a blank title.
  827.  
  828. Left and Right Margins
  829.   Character position of left and right margin.
  830.  
  831. Lines/Page
  832.   This controls the number of lines QuickFile will use on each page. The
  833.   default is paper size minus 8 to provide a top and bottom margin.
  834.  
  835.   NB QuickFile issues a Form Feed when a new page is required. This
  836.   relies on your setting the page height on your printer correctly, and
  837.   may be a limitation with some printers. If you have a problem with this,
  838.   let me know and I will look at using the preferences paper size.
  839.  
  840.   A value of zero will suppress the report title and page breaks.
  841.  
  842. Print Pitch  Cycle Gadget.
  843.   As for Workbench printer preferences. Also shows the number of
  844.   characters per line for an 80 column printer using the selected pitch.
  845.  
  846. Lines Per Inch Cycle Gadget
  847.   This button toggles between 6 and 8 lines per inch.
  848.  
  849. Output To   Cycle Gadget
  850.   Allows you to send the report to the printer, window or a file. The file
  851.   will not include any printer escape codes.
  852.  
  853. The other objects displayed depend on whether you are printing a List or
  854. Form view.
  855.  
  856. FORM View
  857.  
  858.  A number of additional fields are displayed for controlling multiple
  859.  columns such as multi-column address labels. See Labels for full details.
  860.  
  861.  
  862. LIST View
  863.  
  864.   Group By List
  865.   This lists any report groups for this report. See Report Groups.
  866.  
  867.   Summary Only Check Box
  868.   If checked, only sub-total and total lines are printed. The "Group By"
  869.   field values are printed with the summary values for the group. Note
  870.   that an extra 4 characters are added at the start of each line for the
  871.   summary type (Cnt, Tot, etc). You must define a Report Group for this to
  872.   work. See the Address Book example database.
  873.  
  874.   Wrap Fields Check Box
  875.   If checked this will wrap fields over succeeding lines where the field
  876.   length is longer than the width defined for the view. The wrapping is
  877.   done on word boundaries if possible.
  878.  
  879. Press the OK button to start printing or the cancel button to cancel any
  880. changes you have entered.
  881.  
  882. Saving the view will save all of your report settings.
  883.  
  884. ========= Labels ============
  885.  
  886. Label printing is available for FORM type views only. You will normally
  887. define a special view and:
  888.  
  889.    Set Field Labels for the view to No
  890.  
  891.    Arrange the fields in the top left hand corner of the FORM screen to
  892.    match the desired label format
  893.  
  894.    Use the following fields in the print requester to control your label
  895.    format.
  896.  
  897. Labels Across
  898.   Number of labels to print across the page
  899.  
  900. Label Width
  901.   Width of each label. One additional space will be allowed
  902.   between labels. If you want to print labels further apart, increase this
  903.   value.
  904.  
  905. Labels Down
  906.   Number of labels to print down the page before starting a new column.
  907.   For example 3 across and 4 down will print in the following sequence:
  908.  
  909.       1      5      9
  910.       2      6     10
  911.       3      7     11
  912.       4      8     12
  913.  
  914. Label Height
  915.   Height of each label in lines. An additional blank line will be printed
  916.   between each label. The default is the number of lines in the form.
  917.  
  918. You will probably want to set Lines Per Page to zero to suppress page
  919. breaks as well.
  920.  
  921. If you are printing a single column of labels only, you can leave all of
  922. the above fields blank and let the number of lines in the form determine
  923. the label height.
  924.  
  925. ======== Report Groups ===================
  926.  
  927. You may know report groups as control breaks. A "group by" field is only
  928. printed when its value changes. You can also calculate summary values for
  929. each group. Each group can be based on several fields, although usually
  930. only one is used. Any number of fields may be summarised for a group.
  931.  
  932. Note that records must be sorted into the correct sequence for this to
  933. work correctly. They are not sorted automatically.
  934.  
  935. The types of groups available are
  936.  
  937. Report.  Gives a summary value for the whole report. If used, it must
  938.      be the first group in the list.
  939. Page.     Groups will start on a new page. Group fields will print
  940.      before column headings.
  941. Subtitle Prints the group fields on a separate line at the start of each
  942.      group. Reduces line length but best when each group contains
  943.      a good number of records.
  944. Normal     Field prints in the first line of the group only, but space
  945.      is used in each line.
  946.  
  947. You can have several levels of groups of the same type, but they must be
  948. listed from highest level to lowest.
  949.  
  950. ============= Report Group Example ============
  951.  
  952. The following example shows two groups with totals.
  953.  
  954.    Group 1 : City     Type: Normal   Group Fields: City
  955.                      Summaries:    Value (total)
  956.  
  957.    Group 2 : Salesman Type: Normal   Group Fields: Salesman
  958.                      Summaries:    Value (total)
  959.  
  960.    Resulting report:
  961.  
  962.     City    Salesman    Client             Value
  963.     ----------    -------------    --------------     ---------
  964.     Brisbane    Fred Smith    ABC Company       8000.00
  965.                 XYZ Limited       6400.00
  966.                 Zip Electronics   12000.00
  967.  
  968.     Salesman Tot                  26400.00
  969.  
  970.         John Brown    ZZZ Computers       5000.00
  971.                 GWZ Peripherals    7200.00
  972.  
  973.     Salesman Tot                  12200.00
  974.  
  975.     City Tot                      28600.00
  976.  
  977. Note: The file must be sorted over City and Salesman for this to print
  978. correctly.
  979.  
  980. ========== Report Group Requester ============
  981.  
  982. This defines the type, grouping fields, and summaries for a single report
  983. group.
  984.  
  985. Group string gadget
  986.   Names the group. This name is printed on summary lines.
  987.  
  988. Type
  989.   Type of group
  990.  
  991. View Fields list
  992.   Lists the fields available in the current view. The selected field in
  993.   this list can be added to either the Group Fields or Summaries lists.
  994.  
  995. Group Fields list
  996.   Lists the fields used for gouping. A new group starts when any of these
  997.   fields change. A group field is not required for a Report level group.
  998.  
  999. Summaries list
  1000.   Lists the fields to be summarised for this group. Selecting an item from
  1001.   this list will update the check boxes to show the summaries requested.
  1002.   Use the INS button to add the selected view field to this list.
  1003.  
  1004. Tot, Cnt, Avg check boxes
  1005.   Show the summaries required for the currently selected Summary field.
  1006.   Any or all may be checked for one field.
  1007.  
  1008. OK and Cancel Buttons
  1009.   Return to the Print Requester.
  1010.  
  1011. ============== DEFINING FILES  ===================
  1012.  
  1013. Use the Project/New menu item to define a new file.
  1014.  
  1015. Use the Project/Alter menu item to change the definition for the current
  1016. file.
  1017.  
  1018. You can change just about everything in a file definition, except the
  1019. block size, even after you have loaded data to the file. You can change
  1020. field names, types and lengths. You can add or delete fields, and add or
  1021. delete indexes. Caution should be used when changing the type for fields
  1022. that contain data.
  1023.  
  1024. WARNING: Deleting a field makes its data inaccessible, even if you
  1025.        re-add the same field. If you accidentally delete a field, reload
  1026.        the definition without saving your changes and start your changes
  1027.        again.
  1028.  
  1029. The fields defined for this file are listed in the box at the right of the
  1030. window. Use the buttons beside the window to add, change or delete fields.
  1031.  
  1032. If a field is highlighted when you press add, the new field will be added
  1033. before the selected field. To add a field to the end of the list, select
  1034. the "== End ==" item.
  1035.  
  1036. The indexes (indices?) are listed in the box at the lower left. Use the
  1037. buttons to add, change or delete indexes.
  1038.  
  1039. ================ File Details =================
  1040.  
  1041. The file details are shown at the top left of the QFDefine window
  1042.  
  1043. Block Size
  1044.   QuickFile does not read and write single records at a time, but builds
  1045.   them into blocks. This reduces the number of disk reads and writes
  1046.   required. Around 2000 seems to give good results. The only way to change
  1047.   block size is to export the whole file, define a new data base and use
  1048.   import to recreate your file. Block size must be larger than the maximum
  1049.   record size plus free space, plus some space for control fields (2 bytes
  1050.   per field plus 2 bytes for the record length).
  1051.  
  1052. Free Space
  1053.   The amount of free space to be left in each block to allow for records
  1054.   to expand. As QuickFile only stores the actual data entered (not
  1055.   trailing blanks), additional space is required if a change makes a field
  1056.   longer. 100 seems to work OK. Records are moved to another block if
  1057.   necessary, so this is not critical.
  1058.  
  1059. Buffers
  1060.   Maximum number of buffers QuickFile will use for holding blocks of
  1061.   records in memory. Unless you have very large files or are short of
  1062.   memory, use a large figure such as 100.  QuickFile will never use more
  1063.   buffers than are required for the whole file.
  1064.  
  1065.   The more of the file in memory, the faster QuickFile works. The memory
  1066.   used is approximately (number of buffers * buffer size).
  1067.  
  1068.   WARNING. If you using a compression program like XFH-handler with
  1069.   QuickFile, set the number of buffers to 3. XFH will already have the
  1070.   decompressed copy of the file in ram.
  1071.  
  1072.  
  1073. Ext. Path
  1074.   This is a default path used for images and external files. The file name
  1075.   in each record is stored as a name relative to this path, which can
  1076.   reduce the number of characters in each record.
  1077.  
  1078.  
  1079. =========== Field Requester ===========
  1080.  
  1081. Name string gadget
  1082.   Enter a name of up to 12 characters for the field.
  1083.   Note that changing the field name does not change the field title in
  1084.   any existing views.
  1085.  
  1086. Length
  1087.   60 characters is a practical maximum length as no left and right
  1088.   scrolling is provided and more characters cannot be displayed.
  1089.   The maximum is 250. The minimum length of a date field is 11 characters.
  1090.  
  1091.   Space is used only for the number of characters entered in each record,
  1092.   not for the maximum field length. In fact, if a field is empty it takes
  1093.   up no space at all.
  1094.  
  1095. Decimals
  1096.   Number of decimals stored and displayed for the field. Values entered in
  1097.   the field will be rounded to this number of decimals.
  1098.  
  1099. Type Listview
  1100.   Choose type of field. See below for the available types
  1101.  
  1102. Mandatory Check Box
  1103.   If checked, the field must have a value in all records. You will not be
  1104.   able to add a new record without a value in this field.
  1105.  
  1106. Justify Right Check Box
  1107.   If checked, the field is right justified. Integer, Float, and Caculated
  1108.   fields default to right, character and date fields default to left.
  1109.  
  1110. Expression String Gadget
  1111.   Contents depend on field type
  1112.  
  1113.     Calc:    The expression to calculate the field value
  1114.     Cycle:    The list of possible values
  1115.  
  1116.   See field types for more detail.
  1117.  
  1118. Command
  1119.     For an External field, this is the command string to be run to process
  1120.     the field content.
  1121.  
  1122. =============== Field Types ===============
  1123.  
  1124. Character
  1125.   General character string.
  1126.  
  1127. Integer
  1128.   Whole number, no decimals.
  1129.  
  1130. Float.
  1131.   Real numbers with decimals.
  1132.  
  1133. Calculated
  1134.   The field value is calculated from other fields, which may themselves be
  1135.   calculated fields.
  1136.  
  1137.   Enter the calculation in the expression string gadget.
  1138.  
  1139.   The expression can contain field names, constants and operators.
  1140.   Field names containing spaces must be enclosed in double quotes (").
  1141.   Normal precedence rules apply and brackets may be used to control
  1142.   evaluation order. Fields must be defined before they can be referenced.
  1143.  
  1144.   For numeric fields (Float, Integer and Time) the operators are add (+),
  1145.   subtract (-), multiply (*) and divide (/).
  1146.  
  1147.     Example:  Cost + Cost * Markup / 100
  1148.  
  1149.   For all other fields only concatenate operators can be used. Use + to
  1150.   leave a space between values. Use | to join fields without leaving a
  1151.   space. Constants are preceded by the letter c, enclosed in double
  1152.   quotes and can be no longer than 7 characters. You can include any field
  1153.   type in the expression for a character field.
  1154.  
  1155.     Example:  c"Dear" + Title + LastName
  1156.      or   Pathname | FileName
  1157.  
  1158. Date
  1159.   These have a minimum length of 11 characters and are always entered as
  1160.   day/month/year.
  1161.  
  1162.   The separator can be any of /-. or a space. Month can be entered as a
  1163.   number or a three character name. Year can be entered as two or four
  1164.   digits. If two digits are used, a number greater than 50 is assumed to
  1165.   be this century, 50 or less, the next century.
  1166.   For example 03/08/93    3-8-93    3.aug.93  03 aug 1993 are all valid
  1167.  
  1168.   Dates are always displayed in the format 14-Apr-1993.
  1169.  
  1170. Time
  1171.   These are in the format of hh:mm:ss.
  1172.  
  1173.   For entering data, the separator can be either : or a space. You can
  1174.   omit trailing (low order) values and they will default to zero.
  1175.  
  1176.   Examples: 3:10 will be taken as 03:10:00, 2 will be taken as 02:00:00
  1177.  
  1178. Cycle
  1179.   A list of values is associated with a cycle field. The value is
  1180.   maintained using a cycling button instead of a string gadget.
  1181.  
  1182.   Enter the list of values, separated by commas, in the expression string
  1183.   gadget. Any spaces you enter will be included in the value - you
  1184.   probably don't want leading spaces.
  1185.  
  1186.     for example  Blue,Green,Light Blue,Red
  1187.     instead of     Blue, Green, Light Blue, Red
  1188.  
  1189. Image
  1190.   An image that is displayed in the QuickFile window. Only the file name
  1191.   is stored in the database.
  1192.  
  1193. External
  1194.   Stores strings (typically file names) that are passed to an external
  1195.   program for processing. This can be used for images, sounds, text files,
  1196.   animations or whatever. Enter the command line in the Command string
  1197.   gadget when defining the field. Use %s to indicate where the field value
  1198.   is to be inserted. For example:
  1199.  
  1200.     dh0:utilities/display %s
  1201.  
  1202.   The full path name of the command is required unless it is in the c:
  1203.   logical device.
  1204.  
  1205.  
  1206.  ============== Indexes =============
  1207.  
  1208. You must define at least one index. If you are not sure pick any field
  1209. that will give a useful sequence, such as surname, title etc. Each index
  1210. can use a number of fields to give precise control of sequence.
  1211.  
  1212. You can have any number of indexes but you should limit yourself to those
  1213. you are going to use regularly.
  1214.  
  1215. You can index on any field type including calculated fields. You can also
  1216. define an index as unique to prevent duplicate records being created.
  1217.  
  1218. If you change an index on an existing file, it will be rebuilt when you
  1219. return to the main display panel.
  1220.  
  1221. Select the index from the list and press the appropriate button. The Index
  1222. Requester is used to define or alter an index definition.
  1223.  
  1224. Indexes are maintained automatically as you add, modify and delete records
  1225. on your file so they reduce the need for sorting and resorting.
  1226.  
  1227. ============ Define Index Requester =================
  1228.  
  1229. Name
  1230.   Identifies the index and is also used to form the index file name.
  1231.  
  1232. Unique CheckBox
  1233.   If checked, duplicate index entries will not be allowed.
  1234.  
  1235. Available Fields
  1236.   Lists fields defined in this file. Clicking on a field will add it to
  1237.   the fields selected for this index.
  1238.  
  1239. Index Fields
  1240.   Lists fields in the current index. The order of the fields in this box
  1241.   determines their priority in the sort. The first field is the primary
  1242.   key, the second will only be used for records where the first keys are
  1243.   equal and so on.
  1244.  
  1245.   Clicking on a field in this list will select it and display its name
  1246.   and length below the list box.
  1247.  
  1248.   If a field is highlighted, any new fields will be added before the
  1249.   highlighted field, otherwise new fields will be added at the end. To
  1250.   remove highlighting click in the blank part of the box.
  1251.  
  1252. Length
  1253.   Changing this length allows you to index on part of a long field. This
  1254.   reduces memory usage and may increase speed.
  1255.  
  1256.   IMPORTANT: YOU MUST PRESS ENTER OR RETURN AFTER CHANGING A LENGTH OR
  1257.          YOUR CHANGES WILL BE IGNORED
  1258.  
  1259. Order Buttons
  1260.   Select A..Z for ascending order or Z..A for descending order. You can
  1261.   mix these on different fields in the same index.
  1262.  
  1263. Delete
  1264.   Deletes the highlighted field from the Index Fields list.
  1265.  
  1266. ===== FILE NAMES =============
  1267.  
  1268.    QuickFile uses four types of file distinguished by extension. Changing
  1269.    these with an  editor will probably corrupt the file. YOU HAVE BEEN
  1270.    WARNED.
  1271.  
  1272.    The DEFINITION FILE has no extension. This is the name you enter when
  1273.    specifying a file name for QuickFile.
  1274.  
  1275.    The DATA FILE has an extension of .Data.
  1276.  
  1277.    VIEW files usually have an extension of .View
  1278.  
  1279.    INDEX FILES have an extension of .nameX where 'name' is the name of the
  1280.    index as specified in the file definition.
  1281.  
  1282. ========== POSSIBLE PROBLEMS =================
  1283.  
  1284. You add a field to a file and but it does not display in a form or list.
  1285.  
  1286.   This happens because fields are not added to a view automatically. If
  1287.   you add a file to a file, you must also add it to any views using the
  1288.   View/Alter menu item.
  1289.  
  1290.   Note that if you have not saved a view, QuickFile generates a default
  1291.   view which will be updated automatically.
  1292.  
  1293. Error message: "getblock: Block not found".
  1294.  
  1295.   This is usually due to a mismatch between the index and data files.
  1296.   To correct this you can rebuild an index by selecting the Rebuild Index
  1297.   item from the QuickFile tools menu, or you can delete the index file
  1298.   (called filename.indnameX).  When you next open the file, the index will
  1299.   be rebuilt.
  1300.  
  1301.  
  1302. INTEGRITY PROBLEMS
  1303.  
  1304. It is possible for an index and data file to get out of synchronisation.
  1305. This can be caused by not closing a file properly, typically because of a
  1306. guru or power loss with a file open.
  1307.  
  1308. If you suspect an index has been corrupted in some way, you can delete the
  1309. index file (called filename.indnameX).  When you next open the file, the
  1310. index will be rebuilt.    This is indicated by a message such as "getblock:
  1311. Block not found" being displayed in the Console window.
  1312.  
  1313. You can also rebuild an index by selecting the Rebuild Index item from
  1314. the QuickFile Order menu.
  1315.  
  1316. IF YOU ARE SHORT OF MEMORY
  1317.  
  1318. Some tips for reducing memory requirements:
  1319.  
  1320.   Disable the online help. You can do this using the Configuration item
  1321.   on the Options menu
  1322.  
  1323.   Ensure the Memory Save checkbox is checked in the Config requester. This
  1324.   will reduce the memory used during sorts.
  1325.  
  1326.   Define only a single index. That is still one more than most programs
  1327.   allow.
  1328.  
  1329.   Hard drive users can reduce the number of buffers. This will also work
  1330.   with floppies but may be unacceptably slow.
  1331.  
  1332.   If you are using a compression program such as XFH-handler, reduce the
  1333.   number of buffers in the file definition to 3. Otherwise both XFH and
  1334.   QuickFile will be holding the file in ram:
  1335.  
  1336. BUGS
  1337.  
  1338. The program has been reasonably tested, but only on my A500. Some bugs
  1339. refuse to show up until you hit exactly the right combination of
  1340. conditions, so please let me know of any problems you find. Known problems
  1341. (limitations really) are:
  1342.  
  1343. - If you drag a field off the bottom of the window, the drag box is drawn
  1344.   over the border but is not erased properly if you release the mouse
  1345.   button.
  1346.  
  1347. - A Field is clipped horizontally, but not vertically, if it does not fit
  1348.   completely in the visible window. This causes images to disappear instead
  1349.   of being clipped if you make the window too small.
  1350.  
  1351. - No attempt is made to remap image palettes. You may get odd colours or
  1352.   a block of a single colour.
  1353.  
  1354. - Switching views from an ARexx macro can cause a series of window redraws
  1355.   to occur after the macro has completed. This is because switching views
  1356.   can cause window resize messages to be sent by Intuition and these are
  1357.   not seen by QuickFile until the macro completes.
  1358.  
  1359. - Disk thrashing can occur on startup if the file contains images because
  1360.   QuickFile is trying to load an image while AmigaGuide is scanning the
  1361.   QuickFile.guide file.
  1362.  
  1363. If you write to me with a problem you would like fixed, it is much easier
  1364. for me if you send a copy of your database, the version of the program you
  1365. are using, and instructions on how to duplicate the problem.
  1366.  
  1367. ========== Program Limits ==============
  1368.  
  1369. Field Length
  1370.  
  1371.     While up to 250 characters are allowed per field, this is not very
  1372.     useful as each field is limited to one line.
  1373.  
  1374. Number of Records per File
  1375.  
  1376.     The theoretical limit is currently 65,535. In practice it is much
  1377.     lower because of the indexing technique which will run out of either
  1378.     memory or processor speed. Each index requires a contiguous area of
  1379.     RAM 4(n + 200) bytes in size, where n is the number of records in the
  1380.     file. The sort technique also limits the size of the file.    The sort
  1381.     loads all sort keys to ram and also requires 8 bytes per record in one
  1382.     contiguous area.
  1383.  
  1384.     A realistic maximum is probably in the order of 10,000 to 20,000.
  1385.  
  1386. Number of fields per record
  1387.  
  1388.   250. But I got bored at about 60, so you take your chances if you want
  1389.   to try more.
  1390.  
  1391. Number of indexes
  1392.  
  1393.   No limit.
  1394.  
  1395.