Laden...

Geschachtelten Dateiinhalt in Baumstruktur einlesen

Erstellt von Nachtwind vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.237 Views
N
Nachtwind Themenstarter:in
118 Beiträge seit 2005
vor 10 Jahren
Geschachtelten Dateiinhalt in Baumstruktur einlesen

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!

C
2.121 Beiträge seit 2010
vor 10 Jahren

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.