home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / GENEALOG / BKINDX.ZIP / BKI.DOC < prev    next >
Text File  |  1991-01-02  |  22KB  |  511 lines

  1.                              BKIndex
  2.                                 
  3.                           Version 1.00
  4.                                 
  5.                     copyright January 2, 1991
  6.                    (distributed as Shareware)
  7.                                 
  8.                          A. David Sause
  9.                        2111 Jazzman Drive
  10.                      Norman, OK   73071-2455
  11.                                 
  12.                          (405) 364-7018
  13.                         TABLE OF CONTENTS
  14.  
  15. What does BKIndex do?. . . . . . . . . . . . . . . . . . . . . .3
  16.  
  17. System Requirements. . . . . . . . . . . . . . . . . . . . . . .4
  18.  
  19. Installing and Starting BKIndex. . . . . . . . . . . . . . . . .5
  20.  
  21. Main Menu Commands . . . . . . . . . . . . . . . . . . . . . . .6
  22.  
  23. Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
  24.  
  25. Check. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
  26.  
  27. Generate (and Index Order) . . . . . . . . . . . . . . . . . . .8
  28.  
  29. Index (Print Index and Aspect Factor). . . . . . . . . . . . . .9
  30.  
  31. List (Print List of Group Sheets). . . . . . . . . . . . . . . 10
  32.  
  33. About Names. . . . . . . . . . . . . . . . . . . . . . . . . . 10
  34.  
  35. Printer Problems . . . . . . . . . . . . . . . . . . . . . . . 11
  36.  
  37. Technical Details. . . . . . . . . . . . . . . . . . . . . . . 11
  38.  
  39. Rampant Capitalism . . . . . . . . . . . . . . . . . . . . . . 12
  40.  
  41. Credits. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
  42.  
  43. Rampant Capitalism . . . . . . . . . . . . . . . . . . . . . . 12 What does BKIndex do?
  44.  
  45. Brother's Keeper is a very well thought out program and makes it
  46. relatively easy to keep all the details straight.  Having
  47. incorporated information from several different manually
  48. maintained systems created by various relatives, I certainly
  49. prefer the computerized approach.  Brother's Keeper has also made
  50. it possible to locate and correct the typographical errors that
  51. invariably creep into manual systems.  Everything is fine as long
  52. as I am working at the PC, Brother's Keeper can locate and
  53. correct records with only minimal input on my part.  The only
  54. difficulty results in trying to get back to a paper system.
  55.  
  56. When someone gives me information, I try to supply them with a
  57. printed group sheet.  This serves two purposes.  First, I give
  58. them positive feedback that their information was important and
  59. useful.  They like seeing accurate and neatly printed group
  60. sheets.  Besides that, everyone seems to love to see their own
  61. name in print and to talk about their kids and grandkids.  Also,
  62. if they aren't on a computer system, I've saved them lots of
  63. work.  Secondly, this helps me catch errors.  It's a quirk of
  64. human nature that it's difficult to proofread a marked-up copy. 
  65. Some errors don't show up until after you've printed that "final"
  66. copy.
  67.  
  68. I also like to print group sheets and file them in a book.  Since
  69. I don't have a portable computer, this is the set of information
  70. which goes with me when I'm doing research.  This works well, if
  71. you can locate the particular sheet(s) that relate to the person
  72. you are researching.  Of course, you could print a sheet for
  73. every person in your database, but I suspect this would quickly
  74. become unmanageable.  Also, there would be lots of duplication. 
  75. If a husband and wife have been married only once, that is, to
  76. each other, then the husband's sheet and the wife's sheet would
  77. contain exactly the same information.  The sheet for an unmarried
  78. child would only repeat information from a parent's sheet. 
  79. Clearly, you could print selected group sheets and still cover
  80. everyone in the database.
  81.  
  82. I began to put together a set of group sheets, each with a header
  83. indicating the ID number of the person used to generate the
  84. sheet, that is, the husband or wife.  Thus each sheet had a
  85. unique number and was filed in numerical order.  In the case of
  86. the once married husband and wife, I printed whoever the relative
  87. was.  As you might guess, I quickly got into trouble.  When
  88. looking someone up, I had to remember who they were married to or
  89. who their parents were in order to find the right sheet.  When
  90. asking for information, people tend to talk about "Aunt Hatttie's
  91. first husband".  Before you can begin making notes you have to
  92. find the page, which may be in her father's name, or the second
  93. husband's name, or whatever.  I needed an index that kept
  94. multiple marriages straight.  Brother's Keeper will handle
  95. multiple marriages, but only the first marriage is considered in
  96. many functions.  In my family, this was not enough.
  97.  
  98. I started generating an index using a second database program. 
  99. This was doomed to failure from the start.  Every change to
  100. Brother's Keeper had to be manually noted and then keyed into the
  101. second database, and this was tedious to say the least. 
  102. Moreover, I wanted multiple references to all the possible
  103. married names a woman might have.  This involved a relational
  104. database, and that was even more complicated than the flat field
  105. database I was using.  Finally I hit on the idea of a program
  106. that could read the Brother's Keeper data files and generate the
  107. index directly with all the logic of handling names and which
  108. sheets to print.  The result is BKIndex.
  109.  
  110.  
  111. System Requirements:
  112.  
  113. The distribution diskette contains the following files:
  114.  
  115.      BKI.EXE             BKIndex main program
  116.      SORTF.COM           Shareware file sorting utility
  117.      SORTF.DOC           SORTF documentation
  118.      BKI.DOC             this file in ASCII format
  119.      BKI.50              this file in WordPerfect 5.0 format
  120.      PRINTDOC.BAT        batch file to print documentation
  121.  
  122. BKIndex should run on any 640 KB PC compatible, with or without
  123. hard disk.  It was tested and developed on a 386 EGA system, so
  124. there may be incompatibilities I'm not aware of.  Please let me
  125. know if you experience any problems.
  126.  
  127. BKIndex will create some files when you run it:
  128.  
  129.      BKIDEF.DT4          saved set of user selected options
  130.      QQQQQQQQ.QQQ        unsorted index file
  131.  
  132. The user selected file (default is INDEX.DAT) is also created. 
  133. At this point QQQQQQQQ.QQQ is erased.  If you happen to be using
  134. the file name, QQQQQQQQ.QQQ, you'll need to take steps to protect
  135. it from BKIndex.
  136.  
  137. BKIndex looks for BKIDEF.DT4 and SORTF.COM in the current drive
  138. and directory.  If you have BKI.EXE and SORTF.COM in a directory
  139. on your path, then they will work fine, but will start with
  140. "factory" defaults.  BKIndex must be started from the directory
  141. where it resides in order to locate the saved defaults.  This is
  142. just like Brother's Keeper.
  143. Naturally, BKIndex must be able to locate the files FAMLFILE.DT4
  144. and MARRFILE.DT4.  You must specify where they are to be found. 
  145. This will support multiple sets of data in case you are keeping
  146. separate files.  The output files will be created in the same
  147. location.  One thousand names and 400 marriages produces two
  148. files of approximately 70K.
  149.  
  150.  
  151. Installing and Starting BKIndex:
  152.  
  153. BKIndex is an executable file originally written in Quick Basic. 
  154. It can be copied directly into wherever the Brother's Keeper
  155. executable files are or run from floppy.  Let's assume that you
  156. run Brother's Keeper from hard disk C: in a directory called \BK. 
  157. If you have BKIndex on a floppy disk in drive A:, then:
  158.  
  159.      copy a:*.* c:\bk  [ENTER]
  160.  
  161. will install BKIndex.  To run it, type:
  162.  
  163.      c:       [ENTER]
  164.      cd \bk   [ENTER}
  165.      bki      [ENTER].
  166.  
  167. BKIndex reads the files FAMLFILE.DT4 and MARRFILE.DT4 to find the
  168. information it needs.  It does not alter these files in any way,
  169. but it must access them again and again to construct the index,
  170. so the speed depends on the device used.  If your data is on
  171. floppy disks, this will be a slow process.  This program is very
  172. I/O intensive.  That is, the speed is controlled by how fast the
  173. disk can read and write, not so much by how fast your computer
  174. is.  If you can run BKIndex on a hard disk, by all means do so. 
  175. It will be even faster on a RAM disk if you have the memory to
  176. support that.
  177.  
  178. Please note that in the above example, C:\BK is the "program
  179. path" that Options refers to.  If the data files (FAMLFILE.DT4
  180. and MARRFILE.DT4) were in a different directory, like C:\BKDATA,
  181. then this would be the "data path" that options needs.  I
  182. encourage you to use this approach for one major reason.  Each
  183. time you get a new version of Brother's Keeper, or alter the
  184. "path to .dt4 files" you are setting up to save a new set of
  185. data, and this occurs automatically upon exit.  So, if you happen
  186. to run the program from disk, just to look, and then exit, here's
  187. what happens.  First, since the path wasn't set, you had none of
  188. your data.  On exit you saved a blank set of data somewhere.  If
  189. you haven't already overwritten your working files, you may when
  190. you copy the files from floppy to hard disk.  The danger is very
  191. real if you keep everything in one directory.  I encourage you to
  192. create specific and separate data and program directories.  All
  193. the *.dt4 files go in the data directory.  All the program files
  194. go in the program directory.  Now start Brother's Keeper or
  195. BKIndex and immediately go to Options and set the paths.  Exit
  196. the program.  You now have a fresh FOPTIONS.DT4 and BKIDEF.DT4
  197. file in the program directory, and these are the only *.dt4 files
  198. there.  Your data is safe.  Just remember to repeat this process
  199. whenever you get a program update. 
  200.  
  201.  
  202. Main Menu Commands:
  203.  
  204. The Main Menu allows five possible main responses: Options,
  205. Check, Generate, Index, and List.  Just press the first letter of
  206. the desired option.  "Options" allows you to set all user
  207. selections, colors, file names, etc.  "Check" checks FAMLFILE.DT4
  208. for unused persons and missing first or last names.  "Generate"
  209. creates and sorts the index file and creates a list of group
  210. sheets needed.  "Index" prints the index file (screen or printer)
  211. and "List" prints the list of group sheets (screen or printer).
  212.  
  213. Following the convention in Brother's Keeper, the lower left
  214. corner indicates the location of the Brother's Keeper data files
  215. (data path) and the lower right corner indicates "screen" or
  216. "printer".  [F9] toggles between these.  There is no "print to
  217. disk" routine, because a disk file is always created.
  218.  
  219.  
  220. Options:
  221.  
  222. The options file operates very much like that in Brother's
  223. Keeper.  Use cursor keys to highlight the item you want to change
  224. and just type in the desired response.  At that point [ENTER],
  225. [UP], [DOWN], or [F1] - [F4] will register the response and put
  226. your new choice into effect.  BKIndex will attempt to edit the
  227. response to keep it within acceptable limits.  For example, the
  228. only allowed responses to "Output Device" are "SCREEN" and
  229. "PRINTER".  The logic here is not perfect, as it seemed to
  230. require more effort to block weird responses than it was worth. 
  231. So, if you try hard, you can get the logic to fail.  The average
  232. user should not have any problems and there should be no way to
  233. damage any Brother's Keeper files short of using one of the
  234. reserved names in Brother's Keeper for one of your output files.
  235.  
  236. [F1] exits to the Main Menu and creates the file BKIDEF.DT4 in
  237. the directory shown in "Program Path".  Hopefully this is where
  238. BKI.EXE, SORTF.COM, and Brother's Keeper reside.
  239.  
  240. [F2] exits just like [F1], only it doesn't save the options to
  241. disk.
  242.  
  243. [F3] resets all options to the last set saved.  If this isn't
  244. working, check the "Program Path" and make sure you start BKIndex
  245. from there.
  246.  
  247. [F4] resets all options to "factory" defaults.
  248.  
  249. The first four lines set screen colors, with 0-7 legal for
  250. background and 0-15 legal for foreground and highlight.  0-7 are
  251. low intensity colors, 8-15 are high intensity:
  252.  
  253.      0, 8  - black
  254.      1, 9  - blue
  255.      2, 10 - green
  256.      3, 11 - cyan
  257.      4, 12 - red
  258.      5, 13 - magenta
  259.      6, 14 - brown (yellow)
  260.      7, 15 - white
  261.  
  262. This should allow you to choose an acceptable combination
  263. regardless of your display type.
  264.  
  265. The next ten lines describe printer characteristics:
  266.  
  267.      lines per page   - 66
  268.      columns per page - 80
  269.      top margin       - 6    (6 lines = 1" @ 6 LPI)
  270.      bottom margin    - 6    (6 lines)
  271.      left margin      - 7    (start in col. 8)
  272.      right margin     - 7    (last col. = 73)
  273.      indent           - 3    (3 columns)
  274.      between columns  - 3
  275.      skip lines       - 0    (between names)
  276.      aspect factor    - 2.4  (see Index)
  277.  
  278. "Indent" through "aspect factor" also affect "screen" printing. 
  279. See page 9 for an explanation of aspect factor.
  280.  
  281. "Screen lines" allows selection of 25, 30, 43, 50, and 60 which
  282. Quick Basic supports, but your monitor may or may not.  25 and 43
  283. both work on EGA, so feel free to experiment.  VGA should support
  284. 25, 43, and 50.
  285.  
  286. "Program path" is where the program files (Brother's Keeper,
  287. BKI.EXE, SORTF.COM, BKIDEF.DT4) are to be found.
  288.  
  289. "Data path" is where the data files (FAMLFILE.DT4 and
  290. MARRFILE.DT4) are found and where the output files (QQQQQQQQ.QQQ
  291. and INDEX.DAT) are created.
  292.  
  293. "Output file" is the name of the output file created by
  294. "Generate" or printed by "Index".
  295.  
  296. "Output device" is "SCREEN" or "PRINTER".
  297.  
  298. "Index order" is "NORMAL" or "REVERSE".  See Generate, page 8.
  299.  
  300. "Print string" is the setup string for your printer.  You can use
  301. this to set font, lines per inch, draft or letter quality, etc. 
  302. Refer to your printer manual for details.  Note the default is
  303. "NULL", meaning that no setup string is sent.
  304.  
  305.  
  306. Check:
  307.  
  308. This command looks at the FAMLFILE.DT4 file for error conditions. 
  309. When complete it displays or prints a list of UNUSED records and
  310. MISSING FIRST/LAST NAMES.  If you delete a marriage with
  311. unmarried children, or delete unmarried children from a marriage,
  312. there will be ID numbers which are not linked to other records. 
  313. BKIndex locates these so that you can either link them in or
  314. reuse the ID numbers.
  315.  
  316. Brother's Keeper allows you to enter one name only for a person. 
  317. If BKIndex cannot locate a space in the name, it treats this as
  318. MISSING FIRST/LAST NAME.  The information is assumed to be the
  319. last name.  If you have "Cher" in your database, BKIndex will
  320. reference her as "Unknown Cher" in the index file.
  321.  
  322.  
  323. Generate (and Index Order):
  324.  
  325. This command creates the index file.  The number on screen
  326. indicates the ID number in FAMLFILE.DT4 that is being processed. 
  327.  
  328. Names are rendered in the index as follows, depending on whether
  329. you choose REVERSE or NORMAL order:
  330.  
  331.      William Ray Thorndike, born in 1906, ID number 27 will be
  332.      listed as:
  333.  
  334.           Thorndike, William Ray, b:1906, #27
  335.  
  336.      or:
  337.  
  338.           William Ray Thorndike, b:1906, #27
  339.  
  340. Females are always listed in their maiden name and all married
  341. names:
  342.  
  343.      Laura May Jones, born in 1940, ID number 36, and married
  344.      three times to spouses named Smith, Williams, and Jones will
  345.      be listed (REVERSE) as:
  346.  
  347.           Jones, Laura May, b:1906, #36             and
  348.           Smith, Laura May [Jones], b:1906, #36     and
  349.           Williams, Laura May [Jones], b:1906, #36  and
  350.           Jones, Laura May [Jones], b:1906, #36
  351.  
  352.      or (NORMAL) as:
  353.  
  354.           Laura May Jones, b:1906, #36             and
  355.           Laura May [Jones] Smith, b:1906, #36     and
  356.           Laura May [Jones] Williams, b:1906, #36  and
  357.           Laura May [Jones] Jones, b:1906, #36
  358.  
  359. Following the name will be a reference to the particular group
  360. sheets where pertinent information appears.  Let's look at some 
  361. examples:
  362.  
  363.      s:15, f:151, m:152, w:16, 201, 202
  364.  
  365.           This means there is a sheet for the person himself,
  366.           indicated by the "s" under his ID #15, his father,
  367.           #151, his mother, #152, who was married more than once,
  368.           and for three of his wives, #16, #201, and #202 - who
  369.           each had multiple marriages.
  370.  
  371. The abbreviations used are:
  372.  
  373.      s - self
  374.      f - father
  375.      m - mother (only if mother had multiple marriages)
  376.      h - husband(s)
  377.      w - wife or wives (only if wife had multiple marriages)
  378.  
  379. Most combinations are possible.  BKIndex picks the most compact
  380. set of group sheets that covers the data, printing at least one
  381. sheet for each marriage (in the husband's name).  Females are
  382. picked only if they have been married more than once.
  383.  
  384.  
  385. Index (Print Index and Aspect Factor):
  386.  
  387. This command prints the file created by Generate to the screen or
  388. the printer.  Each line of the file consists of a "name" field
  389. and a "reference field".  Depending on whether you have long
  390. names in your family and/or frequent multiple marriages, you may
  391. want to change the balance of how much of the width of your
  392. report that you wish to allocate to these fields.  Aspect factor
  393. controls this.  Factors range between 1.25 and 5.  The smallest
  394. factor allocates most of the space to the reference field, about
  395. five times as much as for the name field.  The largest factor
  396. does just the reverse.  Try different factors on screen before
  397. you print.  A good balance is when the program does not skip lots
  398. of lines between names because either the name or the reference
  399. is too long to fit on the same number of lines as the other
  400. field.  You can also regulate the amount of indent, the number of
  401. spaces between columns, and force one or two extra skipped lines
  402. between entries.
  403.  
  404. This command can be used to reprint a previously generated index,
  405. but it's safer to run Generate again to make sure things are
  406. current.
  407.  
  408.  
  409. List (Print List of Group Sheets):
  410.  
  411. This command prints a list of all the group sheets that you will
  412. need to make your book.  Note, this file exists only in memory
  413. after Generate is run.  You can access this command as frequently
  414. as desired, but it only works after a Generate and the results
  415. refer to the last Generate you did.  If you are working with
  416. multiple data sets, be sure you have run Generate with the
  417. correct data before printing the list of group sheets.
  418.  
  419.  
  420. About Names:
  421.  
  422. Brother's Keeper allows you to enter up to 40 characters for the
  423. name including suffixes like Jr., Sr., III, etc.  Names like "Van
  424. Dorn" or "De La Croix" are also acceptable.  Brother's Keeper
  425. attempts to separate these out so that it can distinguish what is
  426. and is not part of the family name.  BKIndex assumes that the
  427. last space in the name marks where the last name begins.  I
  428. suggest that names be entered in the following format:
  429.  
  430.      Albert James DeLaCroix      for   Albert James De La Croix
  431.      James Arthur (Sr.) Massey   for   James Arthur Massey Sr.
  432.      Egbert (Bud, III) Clark     for   Egbert (Bud) Clark III
  433.  
  434. This produces more logical sorts and insures that BKIndex can
  435. find the correct last name.  Brother's Keeper does an admirable
  436. job, but gets tripped up once in a while when John is confronted
  437. with an unanticipated situation.
  438.  
  439. Brother's Keeper suggests using the name "*unknown" whenever you
  440. don't know the person's name.  Each time you enter "*unknown" you
  441. create a new ID# just like if you knew the name.  I prefer
  442. "Unknown Unknown".  That is, I know who the person is, I just
  443. don't know their first or last name.  These people don't appear
  444. in the index produced by BKIndex, but they may show up in the
  445. list of needed group sheets.  This means that someone on their
  446. sheet is referenced in the index.
  447.  
  448.  
  449. Printer Problems:
  450.  
  451. I tried to address the printer situation with as generic an
  452. approach as possible.  By selecting the correct printer string
  453. you can access the full range of fonts, pitches, etc. that your
  454. printer supports.  I did notice some odd results in Elite Pitch
  455. and finally realized that 12 characters per inch is 96 characters
  456. per line, but only columns 1 through 95 were acceptable to my
  457. printer.  If you're getting odd results, try reducing the
  458. "columns per page" a little.
  459.  
  460.  
  461. Technical Details:
  462.  
  463. The output file is a comma and quote delimited ASCII file.  It
  464. can be imported into most spreadsheets, databases, and word
  465. processors.  The file lines are usually longer than 80
  466. characters, so you'll need to deal with field parsing.
  467.  
  468. Since this analysis is so i/o intensive, I tried to use RAM
  469. wherever possible rather than by writing additional files.  There
  470. are two internal integer matrices that handle the "check" routine
  471. and the "list" of group sheets.  I set these as large as Quick
  472. Basic would allow and still have the program compile.  Brother's
  473. Keeper supposedly limits you to 15,000 names, so I support lists
  474. up to 15,000.  "Check" only works up to 12,000.  If you have very
  475. large files and this creates a problem, let me know and I can
  476. tailor a special version for you.
  477.  
  478.  
  479. Credits:
  480.  
  481. Quick Basic is a registered trademark of Microsoft.
  482.  
  483. Brother's Keeper is copyrighted to John Steed, 6907 Childsdale
  484. Road, Rockford, MI  49341.  Please send him the $40, I did.
  485.  
  486. SORTF is the effort of Vernon D. Buerg, 139 White Oak Circle,
  487. Petaluma, CA  94952, Data: (707) 778-8944, 24-hour BBS,
  488. CompuServe: 70007,1212.  He'd like $15.  I haven't sent him
  489. anything yet, but I intend to.
  490.  
  491. For what it's worth, both of these gentlemen have created
  492. excellent programs, as good or better than many commercial
  493. products.  They have my highest praises and blessings.  Thanks,
  494. guys.
  495.  
  496.  
  497. Rampant Capitalism:
  498.  
  499. If you find BKIndex to be beneficial, please send $5 or whatever
  500. you can spare.  Please let me know your name, address, and disk
  501. size requirements (5¼" or 3½", high or low density).  I will try
  502. to alert everyone of future updates and provide them at my cost. 
  503. Regardless of whether you contribute financially or not, I would
  504. appreciate your comments, questions, and criticisms.  These will
  505. ultimately be used to improve BKIndex.
  506.  
  507. Please send contributions to:
  508.  
  509.      A. David Sause  (Dave)
  510.      2111 Jazzman Drive
  511.      Norman, OK   73071-2455