Variant Datentyp - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Variant Datentyp (/Thread-Variant-Datentyp) Seiten: 1 2 |
Variant Datentyp - TDO - 10.04.2015 09:30 Hallo Zusammen, ich schreibe gerade ein Konfigurationstool. Der Benutzer soll auf dem Frontpanel verschiedene Einstellungen vornehmen können. Die Frontpanelelemente sind dynamisch, d.h. deren Untertitel ist sichtbar und wird durch Werte aus einer .ini Datei gefüllt. Es wurden Dummy Elemente angelegt, welche nicht dargestellt werden, wenn Sie nicht benötigt werden. Das ganze hat den Vorteil, dass neue Konfigurationsmöglichkeiten eingefügt werden können, indem die .ini Datei und nicht das Programm selbst angepasst wird. So.. jetzt möchte ich die Möglichkeit erstellen, damit die vorhandene Konfiguration in einer seperaten .ini Datei abgespeichert und geladen werden kann. Wenn ich mir über eine Propertynode alle Referenzen auf Frontpanelelemente hole, alle Elemente in einer Schleife durchgehe und mir die Werte von den Elementen holen möchte, bekomme ich diese nur im Datentyp Variant. Wie komme ich über diesen Datentyp an die eigentlichen Werte, sprich: Ist ein bool Element True oder False, was steht in einem String Control usw. Die Frontpanelelemente können bool, string oder auch Integer Werte sein. Gruß TDO RE: Variant Datentyp - n4f3ts - 10.04.2015 10:48 Hallo, ich bin selbst kein Experte, aber ich würde es mal mit der Funktion "Variant nach Daten" versuchen. [attachment=52779] Gruß Stefan RE: Variant Datentyp - Morpheus - 10.04.2015 11:19 Mit dem Eigenschaftsknoten "ClassID" kannst du den Datentyp des Controls auslesen. Mit Hilfe der ClassID ist es möglich den Variant-Datentyp in den spezifischen Datentyp (Boolean, String, etc.) zu konvertieren. Gruss Chris RE: Variant Datentyp - TDO - 10.04.2015 11:23 Hi, vielen Dank für die Antwort! Das war der Anstoß, den ich gebraucht habe. Über die Klassen-ID des jeweiligen Elements kann dessen Typ ermittelt werden und somit kann der "Typ" Anschluss des Variant to Data VIs dementsprechend verbunden werden! Funktioniert super! Vielen Dank. Gruß TDO (10.04.2015 11:19 )Morpheus schrieb: Mit dem Eigenschaftsknoten "ClassID" kannst du den Datentyp des Controls auslesen. Danke Chris, mir ist der Gedanke gleichzeitig gekommen! :-) RE: Variant Datentyp - Morpheus - 10.04.2015 11:42 Kleine Ergänzung... Mit der Variant-Palette aus der vi.lib (Hidden Gems) kann der Datentyp direkt aus dem Variant gelesen werden. Gruss Chris RE: Variant Datentyp - jg - 10.04.2015 12:13 OpenG liefert ebenfalls eine ausführliche Variant-Palette... Gruß, Jens RE: Variant Datentyp - Morpheus - 10.04.2015 12:22 (10.04.2015 12:13 )jg schrieb: OpenG liefert ebenfalls eine ausführliche Variant-Palette... Wie konnte ich die OpenG Palette bloss vergessen RE: Variant Datentyp - TDO - 10.04.2015 12:59 So, jetzt kommt der umgekehrte Fall... Wenn ich jetzt so eine Konfig Datei wieder laden will und die FP Elemente dementsprechend füllen will, brauche ich ja erneut den Variant Datentyp. Ich lese also die ganzen Konfig Werte aus der .ini Datei ein. Diese stehen mir dann als String zur Verfügung. Wenn ich das über das "ToVariant" VI mache, bringt er mir leider einen Fehler. Wie kann ich die Daten also typenabhängig wieder auf meine FP Elemente übertragen? Gruß TDO RE: Variant Datentyp - jg - 10.04.2015 13:10 Du solltest dir die "OpenG Variant Configuration File" Palette anschauen, ich denke, da ist alles enthalten, was du gerade so versuchst... Gruß, Jens RE: Variant Datentyp - GerdW - 10.04.2015 13:17 Hallo TDO, Zitat:Die Frontpanelelemente können bool, string oder auch Integer Werte sein.Warum speicherst du sie dann nicht in deiner INI-Datei als eben diese Datentypen? Das wird doch von den ConfigFile-Funktionen unterstützt! Zitat:Wenn ich jetzt so eine Konfig Datei wieder laden will und die FP Elemente dementsprechend füllen will, brauche ich ja erneut den Variant Datentyp.Nein, du brauchst den Datentyp, der zum FP-Element passt. Zitat:Ich lese also die ganzen Konfig Werte aus der .ini Datei ein. Diese stehen mir dann als String zur Verfügung.Wenn du sie passend gespeichert hättest, würdest du nicht String, sondern Bool/I32/String bekommen - passend zum FP-Element. Idee: - Lege dir deine FP-Elemente mit den Labels String_nnn, Bool_nnn und INT_nnn an, mit "nnn" jeweils als fortlaufende Nummer. Die Caption dieser FP-Elemente kannst du benennen, wie du willst. - Wenn du jetzt Daten speichern willst, kannst du anhand des Labels sofort den Datentyp erkennen. In der INI-Datei landet dann jeweils die Keys "String_nnn_Caption" und "String_nnn_Value", genauso für die Bools und INTs… - Beim Einlesen der INI-Datei kannst du dir die Keys ausgeben lassen und gleich passend einlesen und zuweisen… - Für den "Komfort" beim Erstellen der INI-Datei kannst du ja einzelne Gruppen für STRING, BOOL und INT anlegen… |