Get Info Demo Program
version 3.0

In version 2 we wrote out the entries to a file.  In this version we will read them
back in again.  You always want to write entries before you read them for the simple
reason that if you do it the other way, you have to build the input file by hand.
Also, by the time you get the write routine working, the format may have changed
from whatever you first thought it would be.

We also moved the code to write an entry into the stuff.c file and called it
save_stuff.  As before, we simply called the arguments the same names as we had
in the original source file.  By isolating the input and output routines in the
stuff.c file, we are able to keep the logic together.  To further this goal, we
create a new header file, stuff.h, and move everything related to the stuff structure
from the getinfo.h file into stuff.h.  This is the beginning of an Abstract Data 
Type (ADT) for this type of data.

The header file should contain the data structure, and defines, and the prototypes
of all the routines contained in the source file.  There were a few routines we
didn't have a prototype for before, so they got added in this release.

The load and append routines do about the same thing.  The big difference is that
the load routine clears out the list before reading from the file.  Every line in
the file is read, and the fields split and stored in the structure.

We can now save to files, and then read them back in again.

In order to really test this program, we should use an input file that has more
than a few entries.  To do this, we have written a small program called genstuff,
that will create an input file.  The program uses random numbers to generate the
names and phone numbers.  Since the ID fields should be unique, we use a counter
to set that field.  The program asks for the name of the output file, and how
many records should be generated.
