2008-10-07 12 views
9

¿Conoces una buena y gratuita imitación de Hashtable para Delphi 5?Implementación de Hashtable para Delphi 5

Necesito organizar una gran cantidad de datos en un hastable y estoy un poco preocupado por los problemas de pérdida de memoria que encontré en la mayoría de las implementaciones disponibles en la web.

Tks

Respuesta

10

También puede consultar el código abierto/anteriormente comercial TurboPower SysTools. No estoy seguro de cuánto se está actualizando. En un momento, Julian Bucknall lo recomendó sobre su EZDSL library, aunque eso fue cuando todavía trabajaba pieles TurboPower y se mantenía/actualizaba.

+1

Actually Turbo-Powers LockBox es probablemente lo que él quiere, la última versión se actualiza en http://www.songbeamer.com/delphi/ – skamradt

+2

LockBox realiza hashing criptográfico - SysTools y EZDSL hacen hashtables, que son una estructura de datos. –

1

Usted puede intentar buscar en Koders.
Here tiene una implementación simple (Winjab project), o this de JCL.

NOTA: Consulte la licencia de los códigos antes de usarlo.

3

EZDSL es una biblioteca de estructuras de datos, que incluye una tabla hash, escrita por Julian Bucknall de TurboPower y DevExpress ... No las he usado, pero tendría grandes expectativas para el código de este tipo.

http://www.boyet.com/FixedArticles/EZDSL.html

+0

He usado EZDSL durante años con aplicaciones envueltas y el código es muy bueno. Buen rendimiento, sin preocupaciones por fugas de memoria. –

3

Puede intentar mi GpStringHash. Garantizado sin pérdidas de memoria, pero funciona solo con cadenas. Creo que debería funcionar en D5.

0

Peter Acabamos de publicar una revisión de algo que hizo a los grupos nuevos de Embarcadero en los registros públicos. Hay algo en su perfil en el sitio CodeGear en http://cc.codegear.com/Item/24825 que lo describe.

0

Pago DeCAL, que incluye tablas hash y más estructuras de datos.

0

Además de la implementación real de la tabla hash, la función hash que se usa también es importante.

Una buena es una función hash de Bob Jenkins, read his paper here.

Este algoritmo se ha mejorado recientemente para los casos en que la entrada es de tamaño DWord (See the C-version of it here). Esta versión es más rápida y da como resultado dos valores hash de 32 bits en lugar de uno. (Este segundo valor hash podría usarse para acelerar la selección en el intervalo, por ejemplo).

Para los interesados, ¿podría pegar la traducción Delphi aquí? (Se trata de 170 líneas de código.)

0

RBS Antidot es una muy buena biblioteca de contenedores (incluida UnsortedMap basada en hash).

Cuestiones relacionadas