Announcement

Collapse
No announcement yet.

Key Tree aus Datei auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Key Tree aus Datei auslesen

    Hallo zusammen, ich habe ein Problem mit einer Datei, die ich einlesen soll. Die Daten sind als Schlüssel-Wert Paare in einer Art Liste, dem key tree abgelegt. Wobei der Schlüssel immer ein String ist. Der key tree sieht dann so aus:

    (.(."Keyname1",value1),("Keyname2",value2),("Keyna me3",value3),......)

    "Keyname" ist immer ein String variabler Länge, der durch " " begrenzt wird.

    value kann entweder ein Integer, ein String unterschiedlicher Länge, ein weiterer key tree oder eine durch Kommas getrennte Liste in der Form (."Keyname",(value1, value2, value3,...) sein.

    Die Namen der Schlüssel sind bekannt und es sind so um die 200 Stück, der key tree ist also recht groß.

    Hat jemand von euch vielleicht eine Idee, wie ich die Daten sinnvoll einlesen kann, so dass ich auf den Wert, der zu einem bestimmten Schlüssel gehört, zugreifen kann ??

    Vielen Dank schon mal für eure Antworten


    PS: Ich benutze Visual C++ 6 falls das wichtig ist

  • #2
    Hat jemand von euch vielleicht eine Idee, wie ich die Daten sinnvoll einlesen kann, so dass ich auf den Wert, der zu einem bestimmten Schlüssel gehört, zugreifen kann ??
    Ja, programmieren....

    Versuche die Struktur der Liste zu erkennen und die Aussnahmen zu finden -> Beispiel: Ein Key/Value Paar steht wohl immer in Klammern. Ausnahme: Beim ersten Paar steht ein Punkt vor dem Keynamen.

    Alle Key/Value Paare sind in einer Klammerpaar mit einem Punkt zusammen gefasst.

    Also würde doch folgendes zu Programmieren sein:

    Entferne erste und letzte Klammer

    Entferne den ersten Punkt

    Teile den verbleibenden String an den Klammern auf, so das du x Strings hast die jeweils ein Key/Value Paar repräsentieren

    Entferne beim ersten Paar den Punkt

    Nun laufe die Anzahl der Strings durch:

    Alles was in einer Klammer zwischen " " steht ist der Key
    Alles was nach dem Komma und vor der schließenden Klammer kommt ist der Value.

    Wenn der Value noch weiter aufgelöst werden muss muss das jetzt erfolgen??

    Hier ist dein Beispiel unklar

    Liste in der Form (."Keyname",(value1, value2, value3,...)
    Entweder ist hier eine Klammer zuviel oder zu wenig.

    Wie du das nun programmierst -> mit den String-Methoden von CString. Um Teilstrings zu suchen und abzutrennen.
    Christian

    Comment


    • #3
      Danke, ja du hast Recht, bei dem Listenbeispiel habe ich eine Klammer vergessen. Eigentlich müsste das so aussehen:

      (."Keyname",(value1, value2, value3,...))

      Sorry ich stehe gerade ein wenig auf dem Schlauch, kannst du das noch ein wenig genauer erklären oder vielleicht ein Codefragment (auch in Pseudocode) posten ? Das wäre sehr nett, vielen Dank

      Comment


      • #4
        Naja, als Pseudocode würde ich das schon so ein bisschen bezeichnen, nein und Code für VC habe ich nicht -> nutze Borland.

        Vielleicht kannst du dir aber in VC das hier nachprogrammieren:

        http://www.marquardtnet.info/cecke/q...quicky_01.html

        Des Weiteren wäre ja mal zu klären wie du aus der Datei lesen willst?

        Du kannst Byte für Byte lesen und analsyieren und die Arbeit sozusagen beim Einlesen machen oder auch erstmal alles in einen einzigen String lesen und diesen bearbeiten. Für den Anfang würde ich letzteres vorschlagen
        Fang an mit

        Lese alles in einen String
        Entferne erste und letzte Klammer

        Entferne den ersten Punkt

        Teile den verbleibenden String an den Klammern auf, so das du x Strings hast die jeweils ein Key/Value Paar repräsentieren

        Das ist schon die halbe Miete
        Christian

        Comment

        Working...
        X