Announcement

Collapse
No announcement yet.

Formel erzeugen zur Laufzeit

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

  • Formel erzeugen zur Laufzeit

    Hallo ihr lieben,

    ich habe ein kleines bis mittelgroßes Problem und hoffe das ihr mir helfen könnt.

    Ich habe ein Objekt, welches einen Wert, eine Flanke, ein Signal und einen Operator beinhaltet, z.B.
    Wert = 7
    Operator = &
    Flange = Steigend
    Signal = Tröt

    Von diesen Objekten habe ich aber mehrere, um genau zu sein eine Variable Liste voll den Objekten. Das Ziel soll es sein, eine Bedingung zu erzeugen. Also wenn ich z.B. 3 Items in der Liste habe dann soll die Bedingung zum Beispiel mal so aussehen:

    if (Signal >= 7 | AnderesSignal <= 3 & SignalX >= 9)
    {

    }

    Nun möchte ich aber nicht bei jedem Aufruf eine Schleife durch laufen, da dies zu viel Zeit in Anspruch nehmen würde. Also will ich bim Starten diese Formel einmal erzeugen und dann nur immer wieder benutzen.

    Also wär es am besten wenn ich diese Formel in irgendetwas Speichere und diese Variable dann immer nur in die if Schleife packe.

    Hat einer von euch vielleicht eine Idee?

    Gruß und danke im vorraus

    Gropi

  • #2
    Hallo,

    vielleicht kann dir mein Snippet zur Kompilierung während der Laufzeit weiterhelfen.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Hallo gfoidl,

      erst mal Danke für die Antwort. Wirklich weiter gebracht hat es mich noch nicht. Mein jetziger Gedanke ist es einen Parser zu schreiben der mit Regular Expressions umgehen kann (ist aber auch noch neu land für mich -.-)

      Gruß,
      Gropi

      Comment


      • #4
        Warum hilft das nicht?

        Die Bedinung der IF-Abfrage ist allgemein eine Methode die einen boolschen Wert (true/false) zurück gibt - ein Vergleich mit == ist nichts anderes nur einfacher zu programmieren.

        Somit kannst du diese Prüffunktion per Code ertsellen und zur Laufzeit kompilieren und verwenden.
        Das entspricht genau dem was in deiner Frage verlangt wird.

        Durch dieses Verfahren wird eine Art Interpreter erzeugt.
        Ein Parser mit Regex wird dir nicht viel helfen.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment

        Working...
        X