AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

Ein Thema von DieDolly · begonnen am 9. Feb 2019 · letzter Beitrag vom 11. Feb 2019
Antwort Antwort
Seite 2 von 2     12
DieDolly

Registriert seit: 22. Jun 2018
2.173 Beiträge
 
#11

AW: VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

  Alt 10. Feb 2019, 14:58
Danke für die Hilfe. Aber ich bin keine Delphicrack und versuche es lieber mit einfachem Code. Es bringt mir nix Code zu benutzen, den ich in 10 Jahren nicht verstehen werde.
Das müsst ihr verstehen. Ihr seid vermutlich gelernte Entwickler und macht eurer Leben lang nix anderes. Aber es gibt auch Leute wie mich die auch was anderes im Leben zu tun haben als sich
mit Code auseinanderzusetzen der komplizierter für normale Leute nicht sein könnte.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

  Alt 11. Feb 2019, 04:40
Ich habe eine Datei moit einem Format etwa wie dieses

HEADER|Gruppe1
-|Subitem1
--|Sub-Subitem2

HEADER|Gruppe2
HEADER|-|Gruppe3
--|Subitem1

Der Baum sollte danach etwa so aussehen

Gruppe 1
- Subitem1
-- Subitem2
Gruppe 2
- Gruppe 3
-- Subitem 1

Mir liegt jede einzelne Zeile als String vor. Die Nehme ich mit Explode auseinanider und packe alles in ein Record.

Delphi-Quellcode:
type
 TTitleParts = record
  IsHeader: Boolean;
  IsSubItemLevel1, IsSubItemLevel2: Boolean;
  Title: string;
 end;

 TitleParts.IsHeader := aTitleParts[0] = 'HEADER';
 TitleParts.IsSubItemLevel1 := aTitleParts[0] = '-';
 TitleParts.IsSubItemLevel2 := aTitleParts[0] = '--';

 if TitleParts.IsHeader or TitleParts.IsSubItemLevel1 or TitleParts.IsSubItemLevel2 then
  TitleParts.Title := aTitleParts[1];

 TitleParts.IsHeader := (not TitleParts.IsSubItemLevel1) and (not TitleParts.IsSubItemLevel2) and (TitleParts.Title <> '-');
Wie schaffe ich es jetzt daraus einen Baum zu bauen? Ich verzweifle langsam an all meinen versuchen.

Soweit komme ich
Delphi-Quellcode:
  if TitleParts.IsHeader then
    begin
     aNode := VST.AddChild(nil);
     Data := VST.GetNodeData(aNode);
     Data.Title := TitleParts.Title;

     aLastHeaderNode := aNode;
    end;

   if TitleParts.IsSubItemLevel1 then
    begin
     aNode := VST.AddChild(aLastHeaderNode);
     Data := VST.GetNodeData(aNode);
     Data.Title := TitleParts.Title;

     aLastSubLevel1Node := aNode;
    end;
Sobald ich weiter mache geht alles komplett schief.
Na so schlecht schauts doch garnet aus

Delphi-Quellcode:
   if TitleParts.IsSubItemLevel2 then
    begin
     aNode := VST.AddChild([B]aLastSubLevel1Node[/B]);
     Data := VST.GetNodeData(aNode);
     Data.Title := TitleParts.Title;
    end;
würde jetzt die 2. Ebene einfügen.

Kannst du dein Problem etwas genauer beschreiben ? Ein "Sobald ich weiter mache geht alles komplett schief." ist leider nicht sehr aussagekräftig, da es, grad beim VST, sehr viele Fehlerquellen gibt.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

  Alt 11. Feb 2019, 09:06
Schätze, der Punkt ist, daß das nie ein Baum werden kann, wenn es keine Informationen darüber gibt, welches Item ein Parent (oder Child) von welchem Anderen ist.
Überleg Dir einen Mechanismus, wie die Äste und Blätter in dem Baum zusammenhängen, dann springt Dir das Programmtechnische vllt schon direkt ins Auge
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: VirtualStringTree bringt mich zur Weißglut. Baum anhand von Datei erstellen

  Alt 11. Feb 2019, 13:38
Hallo,
ich würde mir den Baum erstmal mit einfachen Daten (keine Datei), also 2 Ebenen aufbauen.
Dann 3 Ebenen, 4 Ebenen.
Dort wirst du wahrscheinlich mit immer mehr Variablen hantieren.

Und jetzt ist Zeit für den Umbau in Rekursion.
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:52 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