Einzelnen Beitrag anzeigen

dragi

Registriert seit: 22. Jul 2003
198 Beiträge
 
Delphi 2005 Personal
 
#1

Brauche Hilfe bei einem Parser

  Alt 23. Mär 2006, 13:13
Hallo,

ich habe folgendes Problem:

Ein Dokument ist in etwa so aufgebaut:
Code:
object objektname1: Typ1 //Irgendein Objektname und Typ
  Wert1 = 1  //irgendeine Bezeichnung und irgendein Wert
  Wert2 = 2  //irgendeine Bezeichnung und irgendein Wert
  ...
end

object objektname2: Typ2
  object objektname3: Typ3
    Wert1 = 1
    Wert2 = 2
    ...
  end
end
Wie oben zusehen ist, gibt es Objekte die nur Werte beinhalten und Objekte die aus Unterobjekten bestehen. Die möchte ich nun programmiertechnisch [c#] in Objekte speichern und die Objekte in einer Liste verwalten.

Mein Objekt besteht zur Zeit aus einem String Name und String Typ sowie einer Liste vom Typ ValueObject. ValueObject besteht wiederum aus string Valuename und string Value. So kann ich nun den Namen und den Typ des Objektes anlegen und eine nicht definierte Menge von Values in der Liste des Objektes anlegen.

Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace ParsIni
{
    class StFctObject
    {
        private string ObjName;
        private string ObjType;
       
        //Liste mit Werteobjekten
        List<StFctValueObject> StFctValueObjList = new List<StFctValueObject>();

        public void SetObjName(string ObjNameToSet)
        {
            ObjName = ObjNameToSet;
        }

        public string GetObjName()
        {
            return ObjName;
        }

        public void SetObjType(string ObjTypeToSet)
        {
            ObjType = ObjTypeToSet;
        }

        public string GetObjType()
        {
            return ObjType;
        }

        public void SetStFctValueObject(string NameToSet, string ValueToSet)
        {
            StFctValueObject MyStFctValueObject = new StFctValueObject();
            MyStFctValueObject.SetName(NameToSet);
            MyStFctValueObject.SetValue(ValueToSet);
            StFctValueObjList.Add(MyStFctValueObject);
        }

        public int ValueCount()
        {
            int count = StFctValueObjList.Count;
            return count;
        }

        public string GetStFctValueObjName(int i)
        {
            return StFctValueObjList[i].GetName();
        }

        public string GetStFctValueObjValue(int i)
        {
            return StFctValueObjList[i].GetValue();  
        }
    }

    class StFctValueObject
    {
        private string Name;
        private string Value;

        public void SetName(string NameToSet)
        {
            Name = NameToSet;
        }

        public string GetName()
        {
            return Name;
        }

        public void SetValue(string ValueToSet)
        {
            Value = ValueToSet;
        }

        public string GetValue()
        {
            return Value;
        }

    }
}
Um nun auch die Unterobjekte zu speichern, habe ich gedacht, ich füge eine weitere Liste hinzu die von gleichen Typ wie das Objekt ist. Bis dahin ja kein Problem. Ich kann dann ein Objekt definieren, mit dessen Namen und Typ, und es der Liste hinzufügen. Wie füge ich diesem Unterobjekt nun aber die nicht definierte Menge an Werten hinzu? Es kann ja mehrere Unterobjekte geben und wie kann ich sicher sein das ich gerade dem richtigen Unterobjekt die Werte zuweise?

Ich hoffe das Problem ist verständlich...

Gruß

dragi
Delphi 3 Professional @home
Delphi 2005 PE @home
Delphi 2005 Enterprise @work
  Mit Zitat antworten Zitat