LabVIEWForum.de - Wie wird mit Variant als Datentyp gearbeitet?

LabVIEWForum.de

Normale Version: Wie wird mit Variant als Datentyp gearbeitet?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi Leute,

ich habe ein Problem mit Clustern und erstellten Eigenschaftsknoten. Im Anhang findet ihr ein Beispiel dazu.

Ich habe in diesem Beispiel über Cluster-Konstanten zwei Custer erstellt und dann zusammengefügt. Jetzt würde ich gern den Variablennamen und den Eingabewert aus dem Ausgangs-Cluster von beiden unteren Clustern auslesen. Dazu habe ich als erstes einen Eigenschaftsknoten erstellt und innerhalb einer FOR-Schleife einen Zweiten. Über den Zweiten lese ich die Werte aus. Ergebnis sieht wie folgt aus:

Array
1: 'Zahl' -> 1
'Komma' -> 2
2: 'Auto' -> 143
'Boot' -> 45

Hierbei steht die 1: für das Cluster 01 und 2: für das Cluster 00. Das Array scheint verschachtelt zu sein!

Leider erfolgt die Abspeicherung über ein Variant-Datenarray. Mit dehne ich bis jetzt nicht klar komme! Somit schaffe ich es nicht mein Ergebnis in die folgende Form zu bringen:

Array
1: 'Zahl' -> 1
'Komma' -> 2
'Auto' -> 143
'Boot' -> 45

Was muss ich tun damit ich, sofern es mit LabVIEW möglich ist, die Informationen als String bekomme.

Die Beispieldatei wurde mit LabVIEW 8.0 erstellt.

Ich danke euch schon Mal für Konstruktive Ratschläge

Kopi
Hallo,
im Anhang eine lv80Variante.

Gruß
Ralf
Danke Ralf,

hoffe ich steige da durch!

Gruß
Kopi
Hi Leute,

das Beispiel von Ralf war für Initiger. Ich arbeite leider mit Double Float. Den Code habe ich verstanden. Muss aber ehrlich sein. Drauf gekommen wäre ich nie.
Jedenfalls habe ich mich daran versucht statt der Intiger Double Float Zahlen auszulesen. Leider ohne Erfolg. Die Variant Vi's auf dem Panel geben mir nur Hieroglyphen aus.

Hilfe ist also weiterhin erwünscht.

Gruß
Kopi
' schrieb:Den Code habe ich verstanden.
Eigentlich musst du nur eine einzige Sache machen: In der Case-Sequenz in der letzten For-Schleife machst du aus dem einen Typ "Invalid Type" den Zusatz "Voreinstellung" weg. Dann lässt du automatisch mit "Case für jeden Wert hinzufügen" alle Cases erstellen. Nun suchst du den "Double float"-Case und machst da rein, was in I32 exemplarisch steht.
Hi Ichselbst,

mit dem Case habe ich gestern rumgespielt. Als ich den Code nachvollzogen habe war mir bewusst, dass in der ersten FOR-Schleife der Zahlentyp ermittelt wird. In der zweiten Schleife wird dann Fallbezogen (also je nach Zahlentyp) durch den Case bestimmt was gemacht wird.

Somit habe ich erst einmal, weil ich nur mit Double Float arbeite, das Beschriftungsfeld vom Case "I32" in "Double Float" geändert. (Double Float wurde nach dem D automatisch vervollständigt) Danach habe ich am VI "Variant nach Daten" den Typ von I32 auf DBL gesetzt. Da dieses VI aber nur mit Intiger arbeitet rundet es meine Werte.
Somit habe ich versucht dieses Problem zu lösen. Gelang mir nur nicht.

Ich gehe mal davon aus das du mit "Voreinstellung", "Standard" meinst?

Gruß
Kopi
Hallo Kopi,
schau mal im Anhang..

Gruß
Ralf
Offtopic: Bitte das nächste Mal "Integer" und nicht "Initiger". Ich habe dauernd einen Post von einem "Initiger" gesucht, bis ich dann aufgrund Deiner Nachfrage nach Double festgestellt habe, dass Du Integer-Zahlen (und nicht ein LVF-Mitglied) gemeint hast.

Gruß Markus

' schrieb:das Beispiel von Ralf war für Initiger.
Hi Leute,

für das "Initiger" entschuldige ich mich, das war ein Vertipper mit dem zweiten "i" das dritte muss natürlich ein "e" sein. Bin halt kein Programmierer sondern nur Wasserbauer.

Ich habe eure Lösungsvorschläge durchgesehen und ausprobiert. Leider klappt es nicht. Ich habe jetzt für beide Fälle I32 und Double Float einen Case erstellt. Daher sollte jetzt je nach Zahlentyp der richtige Case gewählt. Wird es aber nicht. Daher besteht hier noch ein anderes Problem. Bei der zweiten Schleife kommen nur I32 an??? Warum? (Ist mir eben erst aufgefallen!) Daher habe ich die nötigen Änderungen vorgenommen und im Case I32 alles für Double Float programmiert.

Trotzdem:

Das Problem liegt für mich am VI "Variant nach Daten". Es gibt nur Integer aus auch, wenn sie am Ausgang auf DBL umgestellt werden.

Mit dem VI "Zahl nach String" habe ich gestern auch gearbeitet. Leider ohne positives Ergebnis.

Ich habe Ralfs Lösungsvorschlag mit meinen Änderungen noch einmal angehängt. Achtung: Inhalt im Case für DBL und I32 getauscht!

Gruß
Kopi

Lv80_img
Hallo Kopi,
tausche die beiden Cases wieder so wie sie gehören und setze im "Ausgangs-Cluster", den Du ja als Referenz benutzt, alle Anzeigen auf Representation dbl.Diese stehen noch auf I32.

Gruß
Ralf
Seiten: 1 2
Referenz-URLs