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.
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?
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?!
Hallo LV-New,
Zitat:Da muss es doch einen Weg geben
Ja klar. Und andere sind ihn schon gegangen:
[
attachment=62181]
@GerdW: Kannst du das Vi auch teilen?
Dann anhand des Bildes ist mir nicht klar was in diesem SUBVi drin ist :-(
Hallo LV-New,
ich habe extra das Label des VIs angezeigt: es stammt aus dem MGI-Toolkit, welches du in VIPM findest…
Danke für den Hinweiß, dann muss ich mal schauen wie dieses MGI-Toolkit funktioniert.
Schönen (Feier-)Abend noch!
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.
Danke für die Unterstützung!
@Martin.Henz

DANKE!