LabVIEWForum.de
Variantinhalt finden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Variantinhalt finden (/Thread-Variantinhalt-finden)



Variantinhalt finden - Peter Knauer - 30.09.2008 12:21

Ich hab das mit den Variants noch nicht so richtig verstanden.

Ausgangsproblem ist: Ich möchte in einem Eventcase mehrere ControlValueChanges gleichzeitig abfangen. (Gebe also mehrere Event Specifiers an).

Dann wird "NewVal" zum Datentyp "Variant".

Wie bekomme ich da nun raus, welcher der Controls das Event ausgelöst hat und welchen NewVal er nun besitzt?

Eigentlich ginge das doch ganz einfach mit Get Variant Attribute. Habe mir anhängendes Beispiel (LV8.0) gebaut.

Kann mir jemand sagen, warum die Arrays "Value" und "Names" leer bleiben?
Was mache ich falsch?


Variantinhalt finden - TSC - 30.09.2008 12:30

Mein LabVIEW sagt mir, dass dein Beispiel in LabVIEW 8.6 erstellt wurde, und nicht wie versprochen 8.0! Kann es daher nicht öffnen.


LG, Torsten!


Variantinhalt finden - thomas.sandrisser - 30.09.2008 12:40

Falsch machst was grundlegendes: Wenn du ein Value change event auf unterschiedliche elemente anwendest und dann den neuen wert auswerten willst, solltest du deine strategie ueberdenken.
Beispiel koenntest du von variant ganz einfach auf den datentyp kommen indem du von der ctrl ref das label ausliest und dann ein variant to data mit der dir bekannten datenstruktur anwendest.

besser ist es jedoch grundsaetzlich alles schoen aufzutrennen und/oder nur jene elemente zusammen zu fassen, die definitiv den gleichen datentypen haben (erspart dir sehr viel zeit).

wennst grundsaetzlich in zukunft einen variant datentypen analysieren willst, schau dir das angehaengte beispiel an (8.6).
wenn es sich um komplexere datentypen handelt (cluster), musst du die variant anaylse VIs verschachteln bzw rekursiv verwenden


Das set und get variant attribute verwendet man fuer ganz andere sachen :-)


Variantinhalt finden - Peter Knauer - 30.09.2008 12:54

Vielen Dank für die Hilfe, das hat mich schon weitergebracht.

' schrieb:Das set und get variant attribute verwendet man fuer ganz andere sachen :-)

Für was denn?

In dem LabVIEW-Example LabVIEWexamplescommdatasktx.llb hab ich die Verwendung genau so verstanden.


Variantinhalt finden - thomas.sandrisser - 30.09.2008 13:18

Mit getset variant attribute kannst du dynamisch daten in den variant daten typ einpflegen bzw individuell auslesen... aber es bleibt nach wie vor ein variant datentyp und hilft dir nicht unmittelbar beim transformieren.


Variantinhalt finden - Y-P - 30.09.2008 14:07

Hab' Dir hier ein Bsp.

[attachment=14608]
Lv86_img

Gruß Markus


Variantinhalt finden - Y-P - 30.09.2008 14:08

......... und hier noch für LabVIEW 8.0

[attachment=14609]
Lv80_img

Gruß Markus


Variantinhalt finden - Peter Knauer - 30.09.2008 14:51

Das hat sich überschnitten, aus den Hinweisen hatte ich mir schon etwas sehr ähnliches gebaut. Ich danke sehr für die Hilfe!