Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hashtabelle oder binärer Baum in Datei (https://www.delphipraxis.net/146536-hashtabelle-oder-binaerer-baum-datei.html)

luke2 21. Jan 2010 23:05


Hashtabelle oder binärer Baum in Datei
 
Hi,

Ich würde gerne eine ganz simple Hashtabelle oder eine Art binären Baum in einer Datei anlegen und bearbeiten können, anstatt, wie üblich, im Speicher.
(So wie es auch die Datenbanken machen, glaube ich)

Leider fehlt mir ein guter Ansatz dafür.
Hat da jemand eine Idee oder Tip, wie man das am besten angehen kann?

Danke schonmal! :)

alzaimar 22. Jan 2010 02:49

Re: Hashtabelle oder binärer Baum in Datei
 
Datenbanken arbeiten mit meist optimierten Bayer-Bäumen, nicht mit binären Bäumen oder Hashtabellen, zumindest auf Datenebene.
Nimm doch einfach eine freie kleine Datenbank (SQLLite z.B.), oder willst Du eine eigene schreiben?

himitsu 22. Jan 2010 07:54

Re: Hashtabelle oder binärer Baum in Datei
 
Datei im Arbeitsspeicher:

- man erstelle eine Datei
- mappe diese via MMF in einen Speicherbereich
- nun kann man seinen binären Baum oder was auch immer, direkt im Arbeitsspeicher (über 'ne eigene Speicherverwaltung) in dieser MMF bearbeiten
- und gespeichert würde automatisch

alzaimar 22. Jan 2010 12:33

Re: Hashtabelle oder binärer Baum in Datei
 
Zitat:

Zitat von himitsu
Datei im Arbeitsspeicher:... (über 'ne eigene Speicherverwaltung) in dieser MMF bearbeiten...

Wozu MMF? Windows cached doch sowieso.

Dessenungeachtet verlagerst Du das Problem doch in "'ne eigene Speicherverwaltung". Wenn like2 aber auch lernen will, wie man soetwas *nicht* macht (filebasierte Hashmap bzw. Binärbau als Datastorage), dann hast du natürlich Recht.

luke2 22. Jan 2010 14:16

Re: Hashtabelle oder binärer Baum in Datei
 
Mich interessiert die Umsetzung, da ich irgendwie noch keine richtige Vorstellung habe, wie man sowas am besten machen kann.
Also einfach nur, wie man eine Datenstruktur auf die Festplatte bzw. in eine Datei auslagert.

Ein ganz kurzer Beispielcode würde mir evtl. schon helfen :stupid:

alzaimar 23. Jan 2010 02:31

Re: Hashtabelle oder binärer Baum in Datei
 
'Enfach so' ne Datenstruktur auszulagern bringt doch nichts, denn es wird sehr sehr langsam. Und wie himitsu schon erwähnte, muss man sich 'ne Speicherverwaltung ausdenken.

Such mal nach 'B-Tree' bei Google, du findest bestimmt eine Delphi-Umsetzung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz