LabVIEWForum.de
Wert des Variant ermitteln - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Wert des Variant ermitteln (/Thread-Wert-des-Variant-ermitteln)



Wert des Variant ermitteln - LV-New - 22.02.2022 10:54

Hi,

würde gern aus einem Variant (Cluster) die einzelnen Element-WERTE (String, Numerisch,Boolsch, Pfad etc.) ermitteln.
Im angehangenen Beispiel kann ich einwandfrei den Typ des Clusters ermitteln, allerdings werden stets die falschen Werte angezeigt.

Wie löst man diese Problem?

Anmerkung: Der Variant ist sowohl bei der Anzahl der Elemente flexibel als auch bei den Datentypen. Daher sollte der Variant während der Laufzeit des Programmes "zerlegt" werden (String, Numerisch, Boolsch etc. und anschließen die Werte ausgelesen werden.


RE: Wert des Variant ermitteln - GerdW - 22.02.2022 13:01

Hallo LV_new,

Zitat:Im angehangenen Beispiel kann ich einwandfrei den Typ des Clusters ermitteln, allerdings werden stets die falschen Werte angezeigt.
GetClusterInformation liefert dir ein Variant-Array, welches nur die Datentypen im Cluster beschreibt, aber nicht deren Werte enthält. Daher ist es sinnlos, in der Schleife dann noch zu versuchen, deren Werte auszulesen:
[attachment=62179]

Was genau willst du erreichen? Wo kommen die Eingangswerte/Cluster her?


RE: Wert des Variant ermitteln - LV-New - 22.02.2022 13:58

Die Intention war ein SUBVi zu schreiben, welches "automatisch" beliebige Datentypen in eine TDMS Datei ablegt.

Woher kommt das Cluster?
Daher wollte ich für jedes LAbview-Programm einen Clustertyp definieren, welche ich dann mit diesen Subvi verbinde, so dass er die einzelnen Datentypen "zerlegt" und anschließend in jener besagten TDMS abspeichern kann. (Wollte nicht für jedes Programm "TDMS schreiben" erstellen sondern es eben so probieren).

Da muss es doch einen Weg geben, schließlich ist doch bei einem Cluster auch ein Index vergeben. Wo der Datentyp als auch der Wert hinterlegt ist.
Genauso sehe ich doch beim Variant die Werte, da sollte es doch möglich sein, diese der Reihe nach ausgeben zu können?!


RE: Wert des Variant ermitteln - GerdW - 22.02.2022 15:25

Hallo LV-New,

Zitat:Da muss es doch einen Weg geben
Ja klar. Und andere sind ihn schon gegangen:
[attachment=62181]


RE: Wert des Variant ermitteln - LV-New - 22.02.2022 15:57

@GerdW: Kannst du das Vi auch teilen?
Dann anhand des Bildes ist mir nicht klar was in diesem SUBVi drin ist :-(


RE: Wert des Variant ermitteln - GerdW - 22.02.2022 16:19

Hallo LV-New,

ich habe extra das Label des VIs angezeigt: es stammt aus dem MGI-Toolkit, welches du in VIPM findest…


RE: Wert des Variant ermitteln - LV-New - 22.02.2022 16:35

Danke für den Hinweiß, dann muss ich mal schauen wie dieses MGI-Toolkit funktioniert.

Schönen (Feier-)Abend noch!


RE: Wert des Variant ermitteln - Martin.Henz - 22.02.2022 22:03

Haloo LV-New,

das VI GetClusterInformation ist ja lustig. Der Sinn dieses VI erschließt sich mir auch nicht, was nicht heist, dass es nicht doch irgendwo eine sinnvolle Anwendung gibt. Das VI ruft die Funktion GVariantTDR_GetClusterInfo() auf.

was du suchst/brauchst, ist sehr viel naheliegender:

[attachment=62182]

Das ist wahrscheinlich die einfachste Möglichkeit.

Eine andere Methode führt über die LabVIEW Funktion "Variant To Flattened String" und den Type Descriptor ("Type String"). Das ist dann allerdings etwas anspruchsvoller und für den vorliegenden Fall ist es Rube-Goldberg.


RE: Wert des Variant ermitteln - LV-New - 23.02.2022 09:09

Danke für die Unterstützung!

@Martin.HenzHopper DANKE!