![]() |
Tiefe einer rekursiven Funktion
Ich durchsuche mit einer Rekursiven Funktion Verzeichnisse und erstelle mir damit eine Html-Datei mit den Verzeichnisnamen und den enthaltenen Dateien. Funktioniert prima.
Jetzt will ich die Überschriftenebenen passend zur Verzeichnistiefe formatieren. Also H! für die oberste, H2 für die darunter, H3 für noch eins tiefer. Jetzt ist das Problem: Wie kann ich festellen, wann er im Verzeichnisbaum wieder eine Ebene höher geht? Zur Verdeutlichung:
Code:
Ergebnis:
Root
|-Sub1 | |-Sub1_1 | |-Sub1_2 |-Sub2 |-Sub2_1 |-sUB2_2
Code:
Ich komme einfach nicht drauf, wie ich das hinbekommen soll. Ich glaube, ich sehe den Wald vor lauter Bäumen nicht. :wall:
H1: Root
H2: Sub1 H3: Sub1_1 H3: Sub1_2 H2: Sub2 H3: Sub2_1 H3: Sub2_2 |
Re: Tiefe einer rekursiven Funktion
Ich mache es immer so, dass ich vor dem Aufrufen in die Funktion einen Wert inkrementiere und nach dem verlassen den Wert wieder runterzähle. Mit Startwert 0 weißt du dann in deiner Funktion immer, wie tief du schon in die Verzeichnisse "eingestiegen" bist ;)
|
Re: Tiefe einer rekursiven Funktion
:wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall:
:wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall: |
Re: Tiefe einer rekursiven Funktion
Hallo Luckie,
probiers mal so:
Delphi-Quellcode:
Bei mir funktionierts immer so, also wenn du die Funktion mit Level=1 aufrufst, dann brauchst du nur noch 'H'+IntToStr(Level) ausgeben, und du hast deine Ueberschrift ;)
function DeineFunc(..., Level: Integer): ...;
begin ... DeineFunc(..., Level+1); end; Greetz alcaeus [add]:lol:[/add] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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