2008-10-07 6 views
9

के लिए हैशटेबल कार्यान्वयन क्या आप डेल्फी 5 के लिए एक अच्छा और निःशुल्क हैशटेबल इमेलेमेंटेशन जानते हैं?डेल्फी 5

मुझे जल्दबाजी में बड़ी मात्रा में डेटा व्यवस्थित करने की आवश्यकता है और मैं वेब पर सबसे अधिक उपलब्ध कार्यान्वयन में मिली स्मृति रिसाव के मुद्दों के बारे में चिंतित हूं।

Tks

उत्तर

10

आप ओपन-सोर्स/पूर्व में वाणिज्यिक TurboPower SysTools भी देख सकते हैं। यह सुनिश्चित नहीं है कि इसे कितना अपडेट किया जा रहा है। एक बिंदु पर जूलियन बकनल ने इसे EZDSL library पर अनुशंसा की, हालांकि वह वापस था जब उसने अभी भी फर टर्बोपावर काम किया था और इसे बनाए रखा/अपडेट किया जा रहा था।

+1

असल में टर्बो-पावर लॉकबॉक्स संभवतः वह चाहता है, नवीनतम संस्करण http://www.songbeamer.com/delphi/ – skamradt

+2

पर अपडेट किया गया है लॉकबॉक्स क्रिप्टोग्राफ़िक हैशिंग - SysTools और EZDSL do हैशटेबल करता है, जो एक डेटा संरचना है। –

2
+0

हमने benya.com द्वारा प्रदान किए गए कार्यान्वयन की कोशिश की है लेकिन हम कुछ स्मृति रिसाव मुद्दों में भाग गए हैं। क्या आपने दूसरे की कोशिश की है? उत्तर के लिए Tnks – Gustavo

+1

नहीं। मैं बड़ी मात्रा में डेटा के मामले में टीएलिस्ट, टीस्ट्रिंगलिस्ट या टी क्लाइंटडेटासेट + बाइनरीशर्च का उपयोग करता हूं। – zaca

1

आप Koders में खोज करने के लिए कोशिश कर सकते हैं।
Here आपके पास JCL से एक साधारण कार्यान्वयन (Winjab project), या this है।

नोट: इसका उपयोग करने से पहले कोड का लाइसेंस देखें।

3

ईजेडीडीएसएल डेटा संरचनाओं की एक लाइब्रेरी है, जिसमें हैश टेबल भी शामिल है, जो टर्बोपावर और डेवेक्सप्रेस के जूलियन बकनल द्वारा लिखी गई है ... मैंने उनका उपयोग नहीं किया है, लेकिन मुझे इस लड़के के कोड के लिए उच्च उम्मीदें होंगी।

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

+0

मैंने वर्षों से EZDSL का उपयोग सिकुड़ने वाले अनुप्रयोगों के साथ किया है और कोड बहुत अच्छा है। अच्छा प्रदर्शन, स्मृति रिसाव पर कोई चिंता नहीं। –

3

तुम मेरे GpStringHash कोशिश कर सकते हैं। कोई मेमोरी लीक की गारंटी नहीं है, लेकिन केवल तारों के साथ काम करता है। मैं सोचता हूं इसे डी 5 में काम करना चाहिए।

0

पीटर नीचे सार्वजनिक रूप से Embarcadero newgroups में किए गए कुछ कामों की एक पुनर्विक्रय पोस्ट की गई। कोडगियर साइट पर http://cc.codegear.com/Item/24825 पर अपनी प्रोफ़ाइल के तहत कुछ है जो इसे बताता है।

0

चेकआउट DeCAL, जिसमें हैश टेबल और अधिक डेटा संरचनाएं शामिल हैं।

0

वास्तविक हैश-टेबल कार्यान्वयन के अलावा, हैश-फ़ंक्शन का उपयोग स्वयं भी महत्वपूर्ण है।

बॉब जेनकींस, read his paper here से एक अच्छा हैश फ़ंक्शन है।

हाल ही में उन मामलों के लिए यह एल्गोरिदम सुधार हुआ था जहां इनपुट DWord-size (See the C-version of it here) है। यह संस्करण तेज़ है, और इसके परिणामस्वरूप दो 32-बिट हैश-मानों में से एक है। (उदाहरण के लिए इन दूसरे हैश-वैल्यू का उपयोग बाल्टी चयन में तेजी लाने के लिए किया जा सकता है।)

रुचि रखने वालों के लिए, मैं यहां डेल्फी-अनुवाद पेस्ट कर सकता हूं? (यह कोड की लगभग 170 लाइनें है।)

0

RBS Antidot कंटेनरों की बहुत अच्छी लाइब्रेरी है (हैश-आधारित UnsortedMap सहित)।