Hi,
Ich stehe gerade ein wenig auf dem Schlauch (hab mich zu lange nicht mehr mit c# beschäftigt..)...
Ich habe eine Datei in foglendem Format:
[pre]
SEKTION
{
key = val
key = val
SUBSEKTION
{
key = val
key = val
SUBSEKTION
{
key = val
key = val
}
SUBSEKTION
{
key = val
key = val
}
}
}
[/pre]
Diese würde ich gerne einlesen und möglichst direkt abbilden.
Ich habe irgendwo im Hinterkopf, dass man dafür einen Graphen wie in An Extensive Examination of Data Structures Using C# 2.0: Part 5: From Trees to Graphs beschrieben einsetzen kann.. aber ich habe ehrlich gesagt nicht mehr die geringste Idee, wie ich das angehen soll. Es scheitert schon beim einlesen.
Im Moment gehe ich mittels Streamreader die Datei Zeile für Zeile durch, was jedoch bei mehreren tausend Zeilen irgendwie unsinnig erscheint und speichere immer die letzte Poition einer geöffneten klammer und versuche dazwischen zu parsen. Was alles nicht wirklich funktioniert.
Kennt hier jemand eine schnelle, einfache Methode eine derartige Filestruktur einzulesen und möglichst als Tree zu behalten?
Danke schonmal!
Zeile für Zeile ist das einzig sinnvolle. Was auch sonst.
Du brauchst hier keine Position speichern. Durchlaufe die Zeilen der Reihe nach und merke dir das aktuelle Objekt im Tree. Wenn eine neue Subsektion beginnt, füge ein Element in das aktuelle Tree-Element ein und mach dieses zum aktuellen. Merke dir das bisherige aktuelle als Parent. Wenn eine Subsektion aufhört, mach wieder den Parent zum aktuellen Objekt.