-> Hier kostenlos registrieren
Hallo Zusammen,
ich habe ein Problem bei dem Vorhaben eine Enum-Variable mit einem String zu vergleichen.
Das Grundproblem:
Das Ganze ist für ein VORHANDENES Baukastensystem für Standardanwendungen gedacht, daher keine gravierenden, kostenintensiven Änderungen mehr möglich (hinterher ist man immer schlauer!)
In einer Enum-deklaration sind die Namen für diverse Instanzen angegeben.
Diese werden in einer, in der WebVisu laufenden, Auswahlmaske selektiert um diese zu verknüpfen. Soweit so gut. Leider ist die Anzahl der Namen stark gewachsen, sodass die Selektion total unübersichtlich wird.
Die Idee:
In der Auswahlmaske eine Vorselektion treffen (über ein String) in der man die, z.B. ersten drei Zeichen des gewünschten Namens eingibt. Dadurch soll dann die Möglichkeit der zu selektierenden Namen auf die eingegrenzt werden, die diese ersten drei Zeichen enthalten.
z.B.:
Namen (Enum):
„ST1_WP“
„ST1_HP“
“ST9_S1_HP”
“ST9_S1_WP”
…
Frei einzugebende Vorselektion (als String) = “ST1*”
Ergibt mögliche Auswahl von „ST1_WP“ und „ST1_HP“
Wie ich den Zahlenwert, der hinter einer Enum Variable steht über Pointer ermittle, ist klar!
ABER:
Weiß Irgendjemand wie man unter CoDeSys2.3 den NAMEN einer Enumvariable zu Laufzeit ermitteln kann um diesen dann mittels MID,Left, usw. mit einem String zu vergleichen?
Für Anregungen oder Hilfe wäre ich echt dankbar!
ich habe ein Problem bei dem Vorhaben eine Enum-Variable mit einem String zu vergleichen.
Das Grundproblem:
Das Ganze ist für ein VORHANDENES Baukastensystem für Standardanwendungen gedacht, daher keine gravierenden, kostenintensiven Änderungen mehr möglich (hinterher ist man immer schlauer!)
In einer Enum-deklaration sind die Namen für diverse Instanzen angegeben.
Diese werden in einer, in der WebVisu laufenden, Auswahlmaske selektiert um diese zu verknüpfen. Soweit so gut. Leider ist die Anzahl der Namen stark gewachsen, sodass die Selektion total unübersichtlich wird.
Die Idee:
In der Auswahlmaske eine Vorselektion treffen (über ein String) in der man die, z.B. ersten drei Zeichen des gewünschten Namens eingibt. Dadurch soll dann die Möglichkeit der zu selektierenden Namen auf die eingegrenzt werden, die diese ersten drei Zeichen enthalten.
z.B.:
Namen (Enum):
„ST1_WP“
„ST1_HP“
“ST9_S1_HP”
“ST9_S1_WP”
…
Frei einzugebende Vorselektion (als String) = “ST1*”
Ergibt mögliche Auswahl von „ST1_WP“ und „ST1_HP“
Wie ich den Zahlenwert, der hinter einer Enum Variable steht über Pointer ermittle, ist klar!
ABER:
Weiß Irgendjemand wie man unter CoDeSys2.3 den NAMEN einer Enumvariable zu Laufzeit ermitteln kann um diesen dann mittels MID,Left, usw. mit einem String zu vergleichen?
Für Anregungen oder Hilfe wäre ich echt dankbar!