AGB  ·  Datenschutz  ·  Impressum  







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

Baum laden

Ein Thema von Fehlersucher · begonnen am 17. Nov 2012 · letzter Beitrag vom 19. Nov 2012
 
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Baum laden

  Alt 19. Nov 2012, 06:51
Wie sieht denn die Datei aus?

Und so nebenbei:
Du liest 'y' ein. Wenn da ein '*' ist, dann erzeugst Du zwei Äste, denen Du 'y' übergibst (vermutlich der Inhalt). Das war's dann.

Alleine der Umstand, das eine rekursive Datenstruktur statisch so eingelesen wird (iterativ, ohne Stack) zeigt schon, das Du hier etwas falsch machst.

Das Laden funktioniert logischerweise genauso wie das speichern.

So würde das z.B. gehen:
Delphi-Quellcode:
Procedure TBaumKnoten.SpeichereIn (Datei : TextDatei); // TStream wäre besser
Begin
  if Assigned (Self) then begin
    Writeln(Knoteninhalt);
    SpeichereIn (LinkerAst);
    SpeichereIn (RechterAst);
  else
    Writeln('LEER');
End;

Class Function TBaumKnoten.ErzeugeBaumAusDatei(Datei : TextDatei) : TBaumKnoten; // TStream wäre besser
Var
  s : String;
Begin
  ReadLn(Datei, s);
  if s='LEERthen
    result := nil
  else begin
    result := TBaumKnoten.Create;
    result.KnotenInhalt := s;
    result.LinkerAst := ErzeugeBaumAusDatei(Datei);
    result.RechterAst := ErzeugeBaumAusDatei(Datei);
  end
end;

// Speichern:
MeinBaum.Wurzel.SpeichereIn(Datei);
...
// Laden
MeinBaum.Wurzel := TBaumKnoten.ErzeugeBaumAusDatei(Datei);

// Besser wäre so eine Methode, aber die bekomme ich mit einem Kaffee am Montagmorgen nicht hin
// MeinBaum.Wurzel.LadeAus(Datei);
Aber es geht bestimmt noch viel einfacher.

Geändert von Furtbichler (19. Nov 2012 um 07:08 Uhr)
  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 04:28 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