![]() |
Speichern und Laden mit Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute.
Ich habe ein Problem. Bestimmt wurde diese Problematik schon oft hier erwähnt, aber ich weiss nicht genau wie ich vorgehen soll. Das Projekt um das es geht, kennen bestimmt schon einige. Tiereraten. Nun soll ich dabei jeweils neue Tiernamen und das dazugehöroge Attribut abspeichern, so dass die Liste bzw. der Binärbaum immer mehr wird. Der Tiername + Attribut soll in eine Editkomponente, in einem neuen Formular, eingegeben werden. Buttons zum laden und speichern sind schon vorhanden. Das Projekt sieht bislang so aus:
Delphi-Quellcode:
constructor TRateBaum.create(Tier_ja,Frage,Tier_nein:string);
var l_Baum,r_Baum TBinTree; begin l_Baum:=TBinTree.create(tString.create(Tier_ja)); r_Baum:=tBinTree.create(TString.create(Tier_nein)); hBaum:= TBinTree.create(TString.create(Frage),l_Baum,r_Baum); kAktueller_Baum:=hBaum; end; function TRateBaum.liesAktuellenKnoten:string; // var hilf:TObject; begin //hilf := kAktueller_Baum.getRootItem; // result := TString(hilf); result:= TString(kAktueller_Baum.getrootitem).lies_Inhalt; end; function TRateBaum.tierErreicht:boolean; var hilf1, hilf2 : TBinTree; begin hilf1 := kAktueller_baum.getLeftTree; hilf2 := kAktueller_Baum.getRightTree; if (hilf2.isempty) and (hilf2.isempty) then result := true; end; procedure TRateBaum.nach_rechts; begin kAktueller_Baum := kAktueller_Baum.getRightTree; end; procedure TRateBaum.nach_links; begin kAktueller_Baum := kAktueller_Baum.getLeftTree; end; procedure TRateBaum.zurueckSetzen; begin kAktueller_Baum:=hBaum; end; procedure TRateBaum.wissenErweitern(NeueFrage, NeuesTier:string; antwortJa:boolean); var Tier_alt,Tier_neu,Frage_neu:Tstring; begin Frage_neu:=TString.create(neueFrage); If AntwortJA then begin Tier_alt := TString(kaktueller_Baum.get_rootitem); kAktueller_Baum.setitem(Frage_neu); Tier_neu:= TString.create(NeuesTier); kAktueller_baum.getrightTree.create(Tier_alt); kAktueller_Baum.getlefttree.create(Tier_neu); end else begin Tier_alt := TString(kaktueller_Baum.get_rootitem); kAktueller_Baum.setitem(Frage_neu); Tier_neu:= TString.create(NeuesTier); kAktueller_baum.getleftTree.create(Tier_alt); kAktueller_Baum.getrighttree.create(Tier_neu); end; end; TMemo procedure TRateBaum.speicher(B:TBinTree); end; procedure TRateBaum.speichern; // savefileto.. begin // end; procedure TRateBaum.lade(B:TBinTree); begin // end; procedure TRateBaum.laden; //load bzw. ladenfilefrom begin // end; destructor TRateBaum.destroy; begin // end; end. |
Re: Speichern und Laden mit Delphi
Hallo.
Zitat:
|
Re: Speichern und Laden mit Delphi
Das Problem ist, dass ich nicht weiss wie genau ich das Laden und Abspeichern (im Quelltext ist es halt leer mit //) programmieren bzw. implementieren soll.
Nun die hoffentlich verständliche Frage ;-): Wie bekomme ich das speichern und laden hin? |
Re: Speichern und Laden mit Delphi
Ich verweise mal auf diesen Beitrag, weil ich mich nicht gerne wiederhole.
![]() |
Re: Speichern und Laden mit Delphi
Du hast also hierarchische Daten, da du eine Baumstruktur laden und speichern möchtest.
Man kann hierarchische Daten auch als flache Struktur speichern, indem man jedem Knoten eine ID gibt:
Code:
Diese Daten könnte man z.B. in eine Datenbanktabelle, Ini-Datei oder einer CSV-Datei speichern.
Node | Parent | Daten
===================== 1 -1 Tier 2 1 Säugetier 3 2 Primaten 4 1 Wirbellose 5 4 Spongebob Squarepants Wenn man eine CSV-Datei haben möchte, wird man selbstverständlich TStringList verwenden. Wesentlich schöner ist allerdings, wenn man gleich XML zu Speichern verwendet. Welchen Weg möchtest du also gehen ? |
Re: Speichern und Laden mit Delphi
oder du serialisierst dein objekt. dann kannste es in einem rutsch laden und speichern. dazu muss es jedoch von der klasse tpersistent (hoffentlich richtig geschrieben) abgeleitet sein.
|
Re: Speichern und Laden mit Delphi
Für so was bieten sich eigentlich XML-Dateien an.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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