Autor Beitrag
dragi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88



BeitragVerfasst: Mo 27.03.06 10:42 
Hallo,

ich benötige dringend Hilfe beim Parsen eines Dokumentes. In diesem Dokument befinden sich folgende Konstrukte:

Einfaches Objekt:
ausblenden Quelltext
1:
2:
3:
4:
5:
object NAME: TYP
  Wert1 = 1
  Wert2 = 2
  ...
end


Kompliziertes Objekt:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
objekt NAME: TYP
  objekt NAME: TYP
    Wert1 = 1
    Wert2 = 2
    ...
  end
  objekt NAME: TYP
    Wert1 = 1
    Wert2 = 2
    ...
  end
end


Das bedeutet das es Objekte gibt, die aus Unterobjekten bestehen. Nun habe ich absolut keine Ahnung wie ich das vernünftig parsen soll. Ich habe schon Klassen die die Objekte und Unterobjekte repräsentieren, mir fehlt aber die reine Parser Logik :(

1. ich finde die Zeile object NAME: Typ
2. Prüfen ob die 2te Zeile leer, ein "=", object oder end enthält
3. ...

Ich weiß einfach nicht was wirklich Sinn macht. Ich habe das File in einem Array, mit einem regulären Ausdruck finde ich das erste object und muß ab jetzt Zeile für Zeile vorgehen, oder?

Ich bin verwirrt und ein nervliches Wrack... :)

Gruß

Dragi
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mo 27.03.06 11:00 
Warum sagst du nicht einfach, dass du DFMs parsen willst? :gruebel:
Schaue dir mal objHierarchy von choose und maximov an. ;)
dragi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88



BeitragVerfasst: Mo 27.03.06 11:21 
Hmm, es geht bei mir gar nciht um DFM´s aber wenn die ähnlich sind ist es ja von Vorteil :)

Ich schau mir das mal an

Danke
zemy
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 207

Win XP Prof.
D7
BeitragVerfasst: Di 28.03.06 18:18 
Kann man da nicht ein bissel OO betreiben? Hättest dann 2 Typen:
- 1. Das Objekt enthält Werte (einfacher Fall)
- 2. Das Objekt enthält weitere Objekte (komplizierter), die dann entsprechend rekursiv angelegt werden (entweder Typ 1 oder 2)

Der aktuelle Objektcontainer (Typ 2, Toplevel oder intern) Schaut ein paar vorraus, ob als nächstes ein wert= oder einer object kommt. Danach entscheidet sich es, ob es Typ1 oder2 wird...

Hoffe mal, es gibt nichts, was beides hat ;)

Ne alternative währe aber auch, das du durch suchen und ersetzen zu nem Valid-XML kommst und einen von den 10'000 Parsern nimmst^^ Das währe die gemeine Methode mit der Brechstange...

MfG

_________________
LifeIsToShortToThinkAboutTheShortness