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 >
Wrap
Text File
|
1991-01-02
|
22KB
|
511 lines
BKIndex
Version 1.00
copyright January 2, 1991
(distributed as Shareware)
A. David Sause
2111 Jazzman Drive
Norman, OK 73071-2455
(405) 364-7018
TABLE OF CONTENTS
What does BKIndex do?. . . . . . . . . . . . . . . . . . . . . .3
System Requirements. . . . . . . . . . . . . . . . . . . . . . .4
Installing and Starting BKIndex. . . . . . . . . . . . . . . . .5
Main Menu Commands . . . . . . . . . . . . . . . . . . . . . . .6
Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Check. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Generate (and Index Order) . . . . . . . . . . . . . . . . . . .8
Index (Print Index and Aspect Factor). . . . . . . . . . . . . .9
List (Print List of Group Sheets). . . . . . . . . . . . . . . 10
About Names. . . . . . . . . . . . . . . . . . . . . . . . . . 10
Printer Problems . . . . . . . . . . . . . . . . . . . . . . . 11
Technical Details. . . . . . . . . . . . . . . . . . . . . . . 11
Rampant Capitalism . . . . . . . . . . . . . . . . . . . . . . 12
Credits. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Rampant Capitalism . . . . . . . . . . . . . . . . . . . . . . 12What does BKIndex do?
Brother's Keeper is a very well thought out program and makes it
relatively easy to keep all the details straight. Having
incorporated information from several different manually
maintained systems created by various relatives, I certainly
prefer the computerized approach. Brother's Keeper has also made
it possible to locate and correct the typographical errors that
invariably creep into manual systems. Everything is fine as long
as I am working at the PC, Brother's Keeper can locate and
correct records with only minimal input on my part. The only
difficulty results in trying to get back to a paper system.
When someone gives me information, I try to supply them with a
printed group sheet. This serves two purposes. First, I give
them positive feedback that their information was important and
useful. They like seeing accurate and neatly printed group
sheets. Besides that, everyone seems to love to see their own
name in print and to talk about their kids and grandkids. Also,
if they aren't on a computer system, I've saved them lots of
work. Secondly, this helps me catch errors. It's a quirk of
human nature that it's difficult to proofread a marked-up copy.
Some errors don't show up until after you've printed that "final"
copy.
I also like to print group sheets and file them in a book. Since
I don't have a portable computer, this is the set of information
which goes with me when I'm doing research. This works well, if
you can locate the particular sheet(s) that relate to the person
you are researching. Of course, you could print a sheet for
every person in your database, but I suspect this would quickly
become unmanageable. Also, there would be lots of duplication.
If a husband and wife have been married only once, that is, to
each other, then the husband's sheet and the wife's sheet would
contain exactly the same information. The sheet for an unmarried
child would only repeat information from a parent's sheet.
Clearly, you could print selected group sheets and still cover
everyone in the database.
I began to put together a set of group sheets, each with a header
indicating the ID number of the person used to generate the
sheet, that is, the husband or wife. Thus each sheet had a
unique number and was filed in numerical order. In the case of
the once married husband and wife, I printed whoever the relative
was. As you might guess, I quickly got into trouble. When
looking someone up, I had to remember who they were married to or
who their parents were in order to find the right sheet. When
asking for information, people tend to talk about "Aunt Hatttie's
first husband". Before you can begin making notes you have to
find the page, which may be in her father's name, or the second
husband's name, or whatever. I needed an index that kept
multiple marriages straight. Brother's Keeper will handle
multiple marriages, but only the first marriage is considered in
many functions. In my family, this was not enough.
I started generating an index using a second database program.
This was doomed to failure from the start. Every change to
Brother's Keeper had to be manually noted and then keyed into the
second database, and this was tedious to say the least.
Moreover, I wanted multiple references to all the possible
married names a woman might have. This involved a relational
database, and that was even more complicated than the flat field
database I was using. Finally I hit on the idea of a program
that could read the Brother's Keeper data files and generate the
index directly with all the logic of handling names and which
sheets to print. The result is BKIndex.
System Requirements:
The distribution diskette contains the following files:
BKI.EXE BKIndex main program
SORTF.COM Shareware file sorting utility
SORTF.DOC SORTF documentation
BKI.DOC this file in ASCII format
BKI.50 this file in WordPerfect 5.0 format
PRINTDOC.BAT batch file to print documentation
BKIndex should run on any 640 KB PC compatible, with or without
hard disk. It was tested and developed on a 386 EGA system, so
there may be incompatibilities I'm not aware of. Please let me
know if you experience any problems.
BKIndex will create some files when you run it:
BKIDEF.DT4 saved set of user selected options
QQQQQQQQ.QQQ unsorted index file
The user selected file (default is INDEX.DAT) is also created.
At this point QQQQQQQQ.QQQ is erased. If you happen to be using
the file name, QQQQQQQQ.QQQ, you'll need to take steps to protect
it from BKIndex.
BKIndex looks for BKIDEF.DT4 and SORTF.COM in the current drive
and directory. If you have BKI.EXE and SORTF.COM in a directory
on your path, then they will work fine, but will start with
"factory" defaults. BKIndex must be started from the directory
where it resides in order to locate the saved defaults. This is
just like Brother's Keeper.
Naturally, BKIndex must be able to locate the files FAMLFILE.DT4
and MARRFILE.DT4. You must specify where they are to be found.
This will support multiple sets of data in case you are keeping
separate files. The output files will be created in the same
location. One thousand names and 400 marriages produces two
files of approximately 70K.
Installing and Starting BKIndex:
BKIndex is an executable file originally written in Quick Basic.
It can be copied directly into wherever the Brother's Keeper
executable files are or run from floppy. Let's assume that you
run Brother's Keeper from hard disk C: in a directory called \BK.
If you have BKIndex on a floppy disk in drive A:, then:
copy a:*.* c:\bk [ENTER]
will install BKIndex. To run it, type:
c: [ENTER]
cd \bk [ENTER}
bki [ENTER].
BKIndex reads the files FAMLFILE.DT4 and MARRFILE.DT4 to find the
information it needs. It does not alter these files in any way,
but it must access them again and again to construct the index,
so the speed depends on the device used. If your data is on
floppy disks, this will be a slow process. This program is very
I/O intensive. That is, the speed is controlled by how fast the
disk can read and write, not so much by how fast your computer
is. If you can run BKIndex on a hard disk, by all means do so.
It will be even faster on a RAM disk if you have the memory to
support that.
Please note that in the above example, C:\BK is the "program
path" that Options refers to. If the data files (FAMLFILE.DT4
and MARRFILE.DT4) were in a different directory, like C:\BKDATA,
then this would be the "data path" that options needs. I
encourage you to use this approach for one major reason. Each
time you get a new version of Brother's Keeper, or alter the
"path to .dt4 files" you are setting up to save a new set of
data, and this occurs automatically upon exit. So, if you happen
to run the program from disk, just to look, and then exit, here's
what happens. First, since the path wasn't set, you had none of
your data. On exit you saved a blank set of data somewhere. If
you haven't already overwritten your working files, you may when
you copy the files from floppy to hard disk. The danger is very
real if you keep everything in one directory. I encourage you to
create specific and separate data and program directories. All
the *.dt4 files go in the data directory. All the program files
go in the program directory. Now start Brother's Keeper or
BKIndex and immediately go to Options and set the paths. Exit
the program. You now have a fresh FOPTIONS.DT4 and BKIDEF.DT4
file in the program directory, and these are the only *.dt4 files
there. Your data is safe. Just remember to repeat this process
whenever you get a program update.
Main Menu Commands:
The Main Menu allows five possible main responses: Options,
Check, Generate, Index, and List. Just press the first letter of
the desired option. "Options" allows you to set all user
selections, colors, file names, etc. "Check" checks FAMLFILE.DT4
for unused persons and missing first or last names. "Generate"
creates and sorts the index file and creates a list of group
sheets needed. "Index" prints the index file (screen or printer)
and "List" prints the list of group sheets (screen or printer).
Following the convention in Brother's Keeper, the lower left
corner indicates the location of the Brother's Keeper data files
(data path) and the lower right corner indicates "screen" or
"printer". [F9] toggles between these. There is no "print to
disk" routine, because a disk file is always created.
Options:
The options file operates very much like that in Brother's
Keeper. Use cursor keys to highlight the item you want to change
and just type in the desired response. At that point [ENTER],
[UP], [DOWN], or [F1] - [F4] will register the response and put
your new choice into effect. BKIndex will attempt to edit the
response to keep it within acceptable limits. For example, the
only allowed responses to "Output Device" are "SCREEN" and
"PRINTER". The logic here is not perfect, as it seemed to
require more effort to block weird responses than it was worth.
So, if you try hard, you can get the logic to fail. The average
user should not have any problems and there should be no way to
damage any Brother's Keeper files short of using one of the
reserved names in Brother's Keeper for one of your output files.
[F1] exits to the Main Menu and creates the file BKIDEF.DT4 in
the directory shown in "Program Path". Hopefully this is where
BKI.EXE, SORTF.COM, and Brother's Keeper reside.
[F2] exits just like [F1], only it doesn't save the options to
disk.
[F3] resets all options to the last set saved. If this isn't
working, check the "Program Path" and make sure you start BKIndex
from there.
[F4] resets all options to "factory" defaults.
The first four lines set screen colors, with 0-7 legal for
background and 0-15 legal for foreground and highlight. 0-7 are
low intensity colors, 8-15 are high intensity:
0, 8 - black
1, 9 - blue
2, 10 - green
3, 11 - cyan
4, 12 - red
5, 13 - magenta
6, 14 - brown (yellow)
7, 15 - white
This should allow you to choose an acceptable combination
regardless of your display type.
The next ten lines describe printer characteristics:
lines per page - 66
columns per page - 80
top margin - 6 (6 lines = 1" @ 6 LPI)
bottom margin - 6 (6 lines)
left margin - 7 (start in col. 8)
right margin - 7 (last col. = 73)
indent - 3 (3 columns)
between columns - 3
skip lines - 0 (between names)
aspect factor - 2.4 (see Index)
"Indent" through "aspect factor" also affect "screen" printing.
See page 9 for an explanation of aspect factor.
"Screen lines" allows selection of 25, 30, 43, 50, and 60 which
Quick Basic supports, but your monitor may or may not. 25 and 43
both work on EGA, so feel free to experiment. VGA should support
25, 43, and 50.
"Program path" is where the program files (Brother's Keeper,
BKI.EXE, SORTF.COM, BKIDEF.DT4) are to be found.
"Data path" is where the data files (FAMLFILE.DT4 and
MARRFILE.DT4) are found and where the output files (QQQQQQQQ.QQQ
and INDEX.DAT) are created.
"Output file" is the name of the output file created by
"Generate" or printed by "Index".
"Output device" is "SCREEN" or "PRINTER".
"Index order" is "NORMAL" or "REVERSE". See Generate, page 8.
"Print string" is the setup string for your printer. You can use
this to set font, lines per inch, draft or letter quality, etc.
Refer to your printer manual for details. Note the default is
"NULL", meaning that no setup string is sent.
Check:
This command looks at the FAMLFILE.DT4 file for error conditions.
When complete it displays or prints a list of UNUSED records and
MISSING FIRST/LAST NAMES. If you delete a marriage with
unmarried children, or delete unmarried children from a marriage,
there will be ID numbers which are not linked to other records.
BKIndex locates these so that you can either link them in or
reuse the ID numbers.
Brother's Keeper allows you to enter one name only for a person.
If BKIndex cannot locate a space in the name, it treats this as
MISSING FIRST/LAST NAME. The information is assumed to be the
last name. If you have "Cher" in your database, BKIndex will
reference her as "Unknown Cher" in the index file.
Generate (and Index Order):
This command creates the index file. The number on screen
indicates the ID number in FAMLFILE.DT4 that is being processed.
Names are rendered in the index as follows, depending on whether
you choose REVERSE or NORMAL order:
William Ray Thorndike, born in 1906, ID number 27 will be
listed as:
Thorndike, William Ray, b:1906, #27
or:
William Ray Thorndike, b:1906, #27
Females are always listed in their maiden name and all married
names:
Laura May Jones, born in 1940, ID number 36, and married
three times to spouses named Smith, Williams, and Jones will
be listed (REVERSE) as:
Jones, Laura May, b:1906, #36 and
Smith, Laura May [Jones], b:1906, #36 and
Williams, Laura May [Jones], b:1906, #36 and
Jones, Laura May [Jones], b:1906, #36
or (NORMAL) as:
Laura May Jones, b:1906, #36 and
Laura May [Jones] Smith, b:1906, #36 and
Laura May [Jones] Williams, b:1906, #36 and
Laura May [Jones] Jones, b:1906, #36
Following the name will be a reference to the particular group
sheets where pertinent information appears. Let's look at some
examples:
s:15, f:151, m:152, w:16, 201, 202
This means there is a sheet for the person himself,
indicated by the "s" under his ID #15, his father,
#151, his mother, #152, who was married more than once,
and for three of his wives, #16, #201, and #202 - who
each had multiple marriages.
The abbreviations used are:
s - self
f - father
m - mother (only if mother had multiple marriages)
h - husband(s)
w - wife or wives (only if wife had multiple marriages)
Most combinations are possible. BKIndex picks the most compact
set of group sheets that covers the data, printing at least one
sheet for each marriage (in the husband's name). Females are
picked only if they have been married more than once.
Index (Print Index and Aspect Factor):
This command prints the file created by Generate to the screen or
the printer. Each line of the file consists of a "name" field
and a "reference field". Depending on whether you have long
names in your family and/or frequent multiple marriages, you may
want to change the balance of how much of the width of your
report that you wish to allocate to these fields. Aspect factor
controls this. Factors range between 1.25 and 5. The smallest
factor allocates most of the space to the reference field, about
five times as much as for the name field. The largest factor
does just the reverse. Try different factors on screen before
you print. A good balance is when the program does not skip lots
of lines between names because either the name or the reference
is too long to fit on the same number of lines as the other
field. You can also regulate the amount of indent, the number of
spaces between columns, and force one or two extra skipped lines
between entries.
This command can be used to reprint a previously generated index,
but it's safer to run Generate again to make sure things are
current.
List (Print List of Group Sheets):
This command prints a list of all the group sheets that you will
need to make your book. Note, this file exists only in memory
after Generate is run. You can access this command as frequently
as desired, but it only works after a Generate and the results
refer to the last Generate you did. If you are working with
multiple data sets, be sure you have run Generate with the
correct data before printing the list of group sheets.
About Names:
Brother's Keeper allows you to enter up to 40 characters for the
name including suffixes like Jr., Sr., III, etc. Names like "Van
Dorn" or "De La Croix" are also acceptable. Brother's Keeper
attempts to separate these out so that it can distinguish what is
and is not part of the family name. BKIndex assumes that the
last space in the name marks where the last name begins. I
suggest that names be entered in the following format:
Albert James DeLaCroix for Albert James De La Croix
James Arthur (Sr.) Massey for James Arthur Massey Sr.
Egbert (Bud, III) Clark for Egbert (Bud) Clark III
This produces more logical sorts and insures that BKIndex can
find the correct last name. Brother's Keeper does an admirable
job, but gets tripped up once in a while when John is confronted
with an unanticipated situation.
Brother's Keeper suggests using the name "*unknown" whenever you
don't know the person's name. Each time you enter "*unknown" you
create a new ID# just like if you knew the name. I prefer
"Unknown Unknown". That is, I know who the person is, I just
don't know their first or last name. These people don't appear
in the index produced by BKIndex, but they may show up in the
list of needed group sheets. This means that someone on their
sheet is referenced in the index.
Printer Problems:
I tried to address the printer situation with as generic an
approach as possible. By selecting the correct printer string
you can access the full range of fonts, pitches, etc. that your
printer supports. I did notice some odd results in Elite Pitch
and finally realized that 12 characters per inch is 96 characters
per line, but only columns 1 through 95 were acceptable to my
printer. If you're getting odd results, try reducing the
"columns per page" a little.
Technical Details:
The output file is a comma and quote delimited ASCII file. It
can be imported into most spreadsheets, databases, and word
processors. The file lines are usually longer than 80
characters, so you'll need to deal with field parsing.
Since this analysis is so i/o intensive, I tried to use RAM
wherever possible rather than by writing additional files. There
are two internal integer matrices that handle the "check" routine
and the "list" of group sheets. I set these as large as Quick
Basic would allow and still have the program compile. Brother's
Keeper supposedly limits you to 15,000 names, so I support lists
up to 15,000. "Check" only works up to 12,000. If you have very
large files and this creates a problem, let me know and I can
tailor a special version for you.
Credits:
Quick Basic is a registered trademark of Microsoft.
Brother's Keeper is copyrighted to John Steed, 6907 Childsdale
Road, Rockford, MI 49341. Please send him the $40, I did.
SORTF is the effort of Vernon D. Buerg, 139 White Oak Circle,
Petaluma, CA 94952, Data: (707) 778-8944, 24-hour BBS,
CompuServe: 70007,1212. He'd like $15. I haven't sent him
anything yet, but I intend to.
For what it's worth, both of these gentlemen have created
excellent programs, as good or better than many commercial
products. They have my highest praises and blessings. Thanks,
guys.
Rampant Capitalism:
If you find BKIndex to be beneficial, please send $5 or whatever
you can spare. Please let me know your name, address, and disk
size requirements (5¼" or 3½", high or low density). I will try
to alert everyone of future updates and provide them at my cost.
Regardless of whether you contribute financially or not, I would
appreciate your comments, questions, and criticisms. These will
ultimately be used to improve BKIndex.
Please send contributions to:
A. David Sause (Dave)
2111 Jazzman Drive
Norman, OK 73071-2455