I'm dealing with Delphi as well as an internally ISAM database.

I've got a function that returns the records from the table right into a buffer of type pointer, one record at any given time. I'm attempting to group the records together because they are read in in the table.

Right now it is going such as this:

Read record from disk When the the record isn't within the record group list then combine it with their email list otherwise discard it.

The function essentially blogs about the record with all of other records presently within the list until it either finds a match or reaches the finish from the list.

I had been using CompareMem to check the record using the records within the list but it was slow. I discovered a hashing function that can a pointer rather than a string which appears to operate ok.

An archive consists of numerous fields of various data types (strings, integers, floats, booleans, etc).

While using hash function is a little faster as well as less memory when i now only have to keep hash value rather than a duplicate from the record.

I am certain there's an easy method to get this done. Could someone please produce a few recommendations concerning how to do that correctly?. I believe hashing is what you want and also the hashing function I'm using is alright but not so fast, perhapes someone could recommend a hash function?.

The information is accounting records, customer information, stock records, essentially whatever you would get in an average accounting application's database.