[comp.sys.next] HashFile Object Class

lane@sumex-aim.stanford.edu (Christopher Lane) (08/08/90)

I've FTP'd the file HashFile.tar.Z to the 'submissions' directory (should
eventually show up on 'classes' or 'sources') of the cs.orst.edu archive.

HashFile is a sub-class of HashTable.  (The initial part of) Its 'CLASS
DESCRIPTION' from HashFile.wn:

    HashFile implements a bridge between the hashed database library
    functions, db(3) (used to implement the 'defaults' database and
    Digital Librarian index files), and the HashTable object.  It can
    be viewed as an alternate interface to the database library functions
    or as a type of HashTable that survives program execution.

    Except for initial object creation, methods are a superset of those
    provided by HashTable and a HashFile can be substituted for a HashTable
    in most code.  In order to maintain this similarity, the database file
    is closed when the free method is called on the HashFile object, rather
    than having a separate method.

    Database files created using the HashFile object can be manipulated
    using the utilities dbCatenate, dbCompare, dbDescribe etc. on
    /usr/lib/database (see dbCatenate(1)).

    The HashFile object uses a HashTable object as a buffer to optimize
    multiple access to keys/values.  ...

The tar file also includes an example program that accesses a database file
(the bulk of the tar file) via the HashFile object.  This program reads up to
7-digit telephone numbers and searches for them in a database, printing the
equivalent words (from the /usr/dict/web2 file) that can be dialed instead:

    > echo '2277666 227 7666' | HashExample PhoneWords
    2277666 barroom bassoon cassoon
    227 bap bar bas cap car
    7666 Pomo poon room roon soon

Of the over 2 million possible seven (or less) digit numbers, less than 2%
have matches in PhoneWords, so you'll have to try a lot of numbers before you
get one.  (Of those that do have a match, over 15% have multiple matches).

Comments, suggestions and bug reports on HashFile and HashExample welcome.

- Christopher
-------