LabVIEWForum.de
Cluster (Typ A) in Cluster (Typ B) überführen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Cluster (Typ A) in Cluster (Typ B) überführen (/Thread-Cluster-Typ-A-in-Cluster-Typ-B-ueberfuehren)



Cluster (Typ A) in Cluster (Typ B) überführen - TSC - 15.09.2016 08:35

Hallo zusammen,

ich habe ein Cluster von Typ A:
i32 - ID
dbl - Value

und würde dieses gerne überführen in ein Cluster von Typ B:
i32 - ID
dbl - Value
String - Name

Zur Zeit verwende ich die Cluster aufschlüsseln Funktion, verdrahte alle Elemente einzeln mit Cluster Bündeln und setze da eben das neue Element mit an. Natürlich ist das Cluster bei mir kein Dreizeiler, so dass das irgendwie doofe Arbeit ist und zweitens häßlich aussieht.

Interessant fände ich eine Variante mit Typumwandlung oder Ähnlichem?

Hier mal zwei Varianten die mir so im Kopf rumschwirren:
[attachment=56620]

Also falls da jemand was Schöneres Eleganteres oder auch Effizienteres kennt, freue ich mich über Anregungen!

Viele Grüße,
Torsten


RE: Cluster (Typ A) in Cluster (Typ B) überführen - GerdW - 15.09.2016 09:03

Hallo TSC,

bei Variante 1 kannst du den Namen beim Bundle weglassen (bzw. alle Elemente, die nicht im Cluster1 vorkommen). Deren Wert ist ja schon in der Cluster-Konstanten definiert…

Zitat:Zur Zeit verwende ich die Cluster aufschlüsseln Funktion, verdrahte alle Elemente einzeln mit Cluster Bündeln und setze da eben das neue Element mit an.
Genau das ist die Vorgehensweise, die ich auch empfehlen würde…
Grundgedanke dabei: wenn das Problem wie bei dir auftaucht, wurde der Cluster im Vorfeld nicht korrekt typdefiniert. Typischer Fehler im Software-Design-Prozess Big Grin
Andere Option: mach deinen Cluster1 zu einem Sub-Cluster in Cluster2, dann kannst du ihn direkt reinschreiben…


RE: Cluster (Typ A) in Cluster (Typ B) überführen - TSC - 15.09.2016 09:19

Hi Gerd, danke für den Input,

die Variante mit dem Cluster im Cluster hatte ich auch mal im Kopf, aber das gefällt mir nicht, weil die Cluster auch als Bedien- bzw Anzeigeelement verwendet werden.

Dass die Werte im Cluster definiert sind, ist in der Realität natürlich nicht gegeben. Ist eben nur ein Beispiel zur Veranschaulichung! Eine gute Idee wäre an der Stelle, von Anfang an mit dem erweiterten Cluster Typ zu arbeiten. Aber auch dann habe ich "falsche" Anzeigeelemente in denen dann eben die erweiterten Elemente aus Typ B leer bzw mit defaulwerten belegt wären. Ich benötige im Prinzip beide Typen, je nachdem, wo ich grade bin, im Programmablauf.


RE: Cluster (Typ A) in Cluster (Typ B) überführen - jg - 15.09.2016 10:37

Dann kommst du um deine Vorschläge nicht rum. Mit irgendwelchen Tricks über binäre Typecasts zu arbeiten, davon würde ich in so einem Fall die Finger lassen. Erstens nicht lesbar, zweitens viel zu große Gefahr, das etwas schief geht (z.B. wenn ein Element ein String ist, dann ist die "Speichergröße" des Cluster variabel).

Gruß, Jens


RE: Cluster (Typ A) in Cluster (Typ B) überführen - TSC - 15.09.2016 11:55

Okay, dann gibts für die Optik auf der obersten Ebene ein SubVI und dadrin ist dann der ganze Schmodder fein versteckt.
Hab direkt zwei SubVIs gebaut,.. eins zum kombinieren und eins zum zerlegen,..

Danke euch!