AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern von Baumstrukturen

Ein Thema von Chewie · begonnen am 29. Sep 2003 · letzter Beitrag vom 11. Okt 2003
 
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Speichern von Baumstrukturen

  Alt 29. Sep 2003, 20:01
So, ich bin jetzt zu dem Schluss gekommen, dass es eigentlich keine Rolle spielt, in welcher Reihenfolge die Records in die Datei geschrieben werden. Denn egal wie ich sie reinschreibe, auslesen kann ich sie sowieso nur von vorne bis nach hinten, da jedes Element unterschiedlich groß sein kann. Und wegen der Geschwindigkeit ist das auch schnuppe, die Datei muss ja schließlich sowieso ganz gelesen werden.

Jetzt habe ich mich entschieden, die Speicherung der Baumstruktur in eine eigene Klasse zu verlegen, die dann völlig unabhängig von der Klasse sein soll, in der ich die Daten eigentlich speichern muss. Also keine Methode SaveToFile() in der dann die einzelnen Items gespeichert werden.
Die Klasse soll universell verwendbar sein, da es ja immer mal wieder vorkommen kann, dass man eine Baumstruktur speichern muss.
Deshalb hab ich mir folgendes überlegt:

Ich bastele mir eine abstrakte Klasse, die die Methoden enthält, um auf Parent- und Child-Nodes sowie die zu speichernden Daten zuzugreifen. Das hab ich mir etwa so gedacht:

Delphi-Quellcode:
TTFNode = class
  private
    function GetData: TTFDataStruc; virtual; abstract;
    function GetChildren: TTFNodes; virtual; abstract;
    function GetParent; TTFNode; virtual; abstract;
  end;
TTFDataStruc sieht dabei so aus:
Delphi-Quellcode:
TTFDataStruc = packed record
    PData: Pointer;
    Size: Word;
  end;
Man kann also beliebige Daten speichern (65kb sollten genügen).

Eine Klasse, von der jetzt eine Baumstruktur gespeichert werden soll, müsste nun von TTFNode abgleitet sein und die abstrakten Methoden ersetzen. Nun übergebe ich einen Zeiger auf dieses Objekt an eine SaveToFile-Methode von meiner TTreeFile-Klasse (die Klasse, die die Verwaltung der Datei übernimmt) und es kann losgehen.
Soweit so gut.
Allerdings habe ich die ganze Zeit das Gefühl, als würde ich es mir unnötig schwer machen und es eine viel leichtere und vor allem flexiblere Lösung gibt, aber ich komm nicht drauf.
Wenn es keine geben sollte, dann macht das auch nichts, dann betrachtet diesen Post als Liebesbekundung an abstrakte Methoden.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz