Ich habe eine Exceldatei, in der ca. 600 Zeilen mit logischen Bedingungen stehen. Diese können einfach AND oder OR Verknüpfungen sein. Natürlich sind auch komplexere Verschachtelungen möglich.
Den logischen Ausdruck bekomme ich so vorgegeben. Leider gibt es bei den Vorgaben kein XOR, daher muss anhand vom Namen oder manuell gepflegter Mappingtabelle entschieden werden, ob es sich bei einem OR auch wirklich um ein OR oder XOR handelt.
Aus Gründen der Übersichtlichkeit habe ich die vollen Namen durch A, X_1 etc. ersetzt.
z. B.
(A==0x2) AND (
(X_1==0x1) OR
(X_2==0x1) OR
(X_3==0x1) OR
(X_4==0x1) )
Daraus resultiert: Excelzeile
Das AND mit dem A|2 steht in einer extra Zeile und wird damit als Standard vor jeder OR Kombination gesetzt. Die extra Zeiele lässt sich entweder aus dem Namen oder einer manuell gepflegten Mappingtabelle erschließen.
Bsp2: Sonderfall
(A==0x1)
OR
(A==0x7)
OR
(
Delay( (AB==TRUE), 5000ms) AND Timeout(B=0x0)
)
Daraus resultiert: Excelzeile
- Da es sich bei A um ein Signal handelt (kann am Namen erkannt werden) kann es natürlich nicht gleichzeitig 1 und 7 sein. Daher das EXOR.
- Das Timeout erscheint auch in der oberen Zeiele, da Timeout zusätzlich auch immer extra vom Delay aufgeführt werden muss. (Auch wenn es logisch nicht korrekt aufgelöst wurde)
Solche Ausnahmen gibt es sehr oft und müssen anhand von Logik (die ich vorgeben muss) umgesetzt werden.
Welche Programmier-/Skript/Logiksprache eignet sich hier am besten um?
Es würde zwar mit jeder Sprache funktionieren, aber vielleicht eigent sich eine ja besodners gut.
Den logischen Ausdruck bekomme ich so vorgegeben. Leider gibt es bei den Vorgaben kein XOR, daher muss anhand vom Namen oder manuell gepflegter Mappingtabelle entschieden werden, ob es sich bei einem OR auch wirklich um ein OR oder XOR handelt.
Aus Gründen der Übersichtlichkeit habe ich die vollen Namen durch A, X_1 etc. ersetzt.
z. B.
(A==0x2) AND (
(X_1==0x1) OR
(X_2==0x1) OR
(X_3==0x1) OR
(X_4==0x1) )
Daraus resultiert: Excelzeile
AND | A|2 | |||
OR | X_1|1 | X_2|1 | X_3|1 | X_4|1 |
Das AND mit dem A|2 steht in einer extra Zeile und wird damit als Standard vor jeder OR Kombination gesetzt. Die extra Zeiele lässt sich entweder aus dem Namen oder einer manuell gepflegten Mappingtabelle erschließen.
Bsp2: Sonderfall
(A==0x1)
OR
(A==0x7)
OR
(
Delay( (AB==TRUE), 5000ms) AND Timeout(B=0x0)
)
Daraus resultiert: Excelzeile
EXOR | A|1 | A|7 | B|0|Timeout |
AND | AB|1|Delay|5 | B|0|Timeout |
- Da es sich bei A um ein Signal handelt (kann am Namen erkannt werden) kann es natürlich nicht gleichzeitig 1 und 7 sein. Daher das EXOR.
- Das Timeout erscheint auch in der oberen Zeiele, da Timeout zusätzlich auch immer extra vom Delay aufgeführt werden muss. (Auch wenn es logisch nicht korrekt aufgelöst wurde)
Solche Ausnahmen gibt es sehr oft und müssen anhand von Logik (die ich vorgeben muss) umgesetzt werden.
Welche Programmier-/Skript/Logiksprache eignet sich hier am besten um?
Es würde zwar mit jeder Sprache funktionieren, aber vielleicht eigent sich eine ja besodners gut.