StringToVariablenname

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    StringToVariablenname

    Hallo zusammen,

    ich habe folgendes Problem:

    In einem Modul habe ich eine Struktur mit OPC-Variablen von einer SPS nach dem Schema

    Quellcode

    1. Public Structure ST_SPS
    2. Dim SPS2PC_Zaehler1 as UInteger
    3. Dim SPS2PC_Zaehler2 as UInteger
    4. .
    5. .
    6. .
    7. End Structure


    In einem FormZaehler gibt es eine Kombobox, welche durch eine SQL-Abfrage gefüllt wird.
    Die Tabelle im Hintergrund besitzt die Spalten: "ID", "Bezeichnung" & "OPC_Var"

    In der Kombobox wird jeweils der String aus der Spalte "Bezeichnung" angezeigt.

    Neben der Kombobox gibt es einen Button zum Rücksetzen des Zählers (vorher wird der aktuelle Zählstand natürlich in eine andere Tabelle weggeschrieben).
    Ich möchte nun, anhand des gewählten Kombobox-Eintrages, die dazugehörige OPC-Variable herausfinden, welche in der SQL-Tabelle als String (Bsp: "sps1.SPS2PC_Zaehler1") vorliegt.
    Diese Variable wird in dem Moment benötigt, um vor dem eigentlichen Reset den aktuellen Stand zu holen. Es geht natürlich um weitaus mehr "Zählvariablen" als in meinem obigen Beispiel. Es wäre nicht so schön für jeden einzelnen Zähler auch einen eigenen Button anzulegen.
    Ich hoffe die Beschreibung ist einigermaßen verständlich.

    Ist das überhaupt auf diese Art und Weise möglich? Also aus dem String "sps1.SPS2PC_Zaehler1" die passende Variable sps1.SPS2PC_Zaehler1 zu machen?
    Man könnte ein Array von Delegaten anlegen, Func(Of ST_SPS, Integer), und diese Delegaten mit den Combobox-Inhalten assoziieren.
    Je nach ComboItem kommt dann ein anderer Delegat zum Zuge, mit dem der Integer von der ST_SPS abgerufen wird.
    Aber du müsstest mehr von deim Code zeigen: Wo sind deine ComboItem - am besten wäre, die Combobox hätte eine DataSource.
    Und wo wird der ST_SPS-Zähler wie verwendet.