Probleme mit Rekursion



  • Hallo zusammen,

    ich versuche mal, den Sachverhalt kurz darzustellen 🙂

    Ich verwalte eine Grid-Ansicht, in der mehrere Daten angezeigt werden können.
    Jede Zeile repräsentiert ein Muster. Der Benutzer kann mehrere Muster zusammenstellen und diese Konstellation in einer Datei abspeichern. Er hat weiterhin die Möglichkeit, diese Datei wiederum in eine neue Datei einzufügen, sodass eine rekursive Hierarchie-Struktur entsteht.

    Bsp.:

    [Zeile1]..Klammer
    [Zeile2]..Linie
    [Zeile3].....Verweis: Musterdatei_1.txt
    [Zeile4]........Klammer
    [Zeile5]........Rechteck
    [Zeile6]........Verweis: Musterdatei_2.txt
    [Zeile7]...........Kreis
    [Zeile8]...........Linie
    [Zeile9]..Rechteck
    [Zeile...]

    Der Benutzer hat auch die Möglichkeit, diese Zeilen über eine CheckBox zu selektieren. Meine Aufgabe ist es nun, diese Musterauflistung komplett zu durchlaufen, und die Zeilen zu löschen, welche nicht selektiert sind!
    Die Verweisdateien sind konkrete Dateien, die physikalisch auf der Platte vorhanden sind.

    Wichtig ist hierbei folgender Aspekt:
    Wurde in einer Verweisdatei (z.B. Musterdatei_2.txt) kein Muster selektiert, so muss die komplette Verweisdatei entfernt werden. Wurde jedoch in dieser mind. ein Muster selektiert, aber dafür in der Verweisdatei_1 keins, so würde dieses gelöscht werden. Das Problem ist aber, dass dadurch alle hintendranhängenden Muster und Verweisdateien auch gelöscht werden! Also löscht man die Datei "Verweisdatei_1.txt" dann sind auch die Einträge aus Verweisdatei_2.txt komplett weg. Übrig würde dann nur noch Zeile1,2 und 9 bleiben.

    Ich weiß nicht, ob man das verstehen kann. Mein Problem ist nun, wie ich diese Konstellation durchlaufen kann. Ich denke mal, dass ich hier mit einer Rekursion arbeiten müsste, oder?

    Aber hier fehlt mir gerade der Ansatz, wie ich diese Liste von unten nach oben durchlaufen kann! Könnt ihr mir hier vielleicht Hilfestellung geben?
    Vielen Dank!

    Gruß



  • Wie sieht denn die Datenstruktur aus? Wenn es wirklich nur eine Liste wie in dem gezeigten Beispiel ist mußt du doch nur nachfolgende Zeilen mitlöschen die eine größere Anzahl an Punkten (die Platzhalter links vor den Texten) haben als der zu löschende Hauptknoten.


Anmelden zum Antworten