LabVIEWForum.de
Array Element als Referenz von Referenz - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array Element als Referenz von Referenz (/Thread-Array-Element-als-Referenz-von-Referenz)

Seiten: 1 2


Array Element als Referenz von Referenz - Benjamin Fuchs - 11.10.2007 08:16

Hallo,

ich habe ein Array mit 8 Elementen, die Elemente sind Cluster. Soweit so gut.
Nun übergebe ich die Referenz des Arrays an ein SubVI.
In diesem möchte ich ein Array aus Referenzen aus der übergebenen Referenz erstellen, genauer gesagt ich habe eine For Schleife die 8 mal durchläuft. In jedem Durchlauf möchte ich die entsprechende Referenz auf das Cluster übergeben und den Wert auslesen.

Das Cluster und das Array liegen als StrictTypDef vor.

Hat jemand eine Idee?


Array Element als Referenz von Referenz - Achim - 11.10.2007 17:03

' schrieb:In diesem möchte ich ein Array aus Referenzen aus der übergebenen Referenz erstellen, genauer gesagt ich habe eine For Schleife die 8 mal durchläuft. In jedem Durchlauf möchte ich die entsprechende Referenz auf das Cluster übergeben und den Wert auslesen.

Zu was soll das gut sein? Du kannst doch den Wert direkt über ein Property "Value" des Arrays + ne FOR-Schleife auslesen...auch im SubVI...zu was sollen da "Referenzen auf Array-Elemente" gut sein...die es außerdem auch gar nicht gibt?!

Gruss
Achim


Array Element als Referenz von Referenz - jg - 11.10.2007 18:36

' schrieb:Zu was soll das gut sein? Du kannst doch den Wert direkt über ein Property "Value" des Arrays + ne FOR-Schleife auslesen...auch im SubVI...
@Achim: Bis hierhin stimme ich dir voll zu.
' schrieb:zu was sollen da "Referenzen auf Array-Elemente" gut sein...die es außerdem auch gar nicht gibt?!
Aber hier muss ich dir widersprechen. Bsp. gefällig:

[attachment=9128] (LV8.2)

[attachment=9129](zum Bild: Cluster im Array-Element besteht bei mir aus String, Bool und Numeric).

Aber das ist natürlich das Pferd von hinten aufgezäumt.

MFG, Jens


Array Element als Referenz von Referenz - Y-P - 11.10.2007 20:04

Krass! Wie kommt man denn auf so was?
Was wird denn da überhaupt gemacht?

Ich würde das so machen.....

Gruß Markus

' schrieb:@Achim: Bis hierhin stimme ich dir voll zu.

Aber hier muss ich dir widersprechen. Bsp. gefällig:

(zum Bild: Cluster im Array-Element besteht bei mir aus String, Bool und Numeric).

Aber das ist natürlich das Pferd von hinten aufgezäumt.

MFG, Jens

(VI LV 8.0)


Array Element als Referenz von Referenz - jg - 11.10.2007 20:18

' schrieb:Krass! Wie kommt man denn auf so was?
Was wird denn da überhaupt gemacht?
Ich gehe davon aus, dass du auf mein Bsp. ansprichst.

Also:
1. Setzen der PropertyNode IndexVals bringt das ArrayElement mit Index x an die erste sichtbare Stelle.
2. Jetzt hole ich per PropertyNode "Array Element -> Reference" wirklich die Referenz auf das Element x.
3. Um jetzt auf Cluster-Elemente zugreifen zu können, muss die allgemeine Control-Referenz zur Referenz auf einen Cluster gewandelt werden.
4. Auf die Elemente eines Clusters kommt man wieder per PropertyNode "Controls[]", die ein Array mit Referenzen auf alle Cluster-Control-Elemente zurückgibt.
5. Dann per Index-Array entsprechende Referenz rausgreifen, die muss wieder in die richtige Control-Klasse gewandelt werden.
6. Per PropertyNode "Value" Wert auslesen, da bei Numeric noch die Info zum exakten Datentyp fehlt, noch das "Variant To Data" wandeln.

Alle Klarheiten beseitigt?

MfG, Jens


Array Element als Referenz von Referenz - Achim - 12.10.2007 05:56

' schrieb:@Achim: Bis hierhin stimme ich dir voll zu.

Aber hier muss ich dir widersprechen. Bsp. gefällig:

Jou, wenn man's so sieht...hast natürlich recht...so kompliziert kann ich aber nicht denken Tongue...Aber: Das sind keine Referenzen auf Array-Elemente n, n+1, n+2, ... sondern nur ne allgemeine Referenz auf...ich sag mal..."mögliche Array-Elemente"...du musst dir ja schon das einzelne Array-Element, das du auslesen willst über den Index-Value in deinem ersten Node auswählen. Gut gut, du kannst die ganze Mimik natürlich in ne FOR-Schleife packen, dann hast du alle Referenzen verfügbar. Das wäre dann wohl das, was Benjamin wollte.

Aber ich kann immer noch nicht nachvollziehen, warum er es so "verzwickt" gestalten will...vielleicht kommt er durch Markus Vorschlag auf nen anderen Weg...oder er kann mal nachvollziehbar seine Beweggründe erläutern...

Gruss
Achim


Array Element als Referenz von Referenz - Benjamin Fuchs - 15.10.2007 07:00

Also als Hintergrund. ich habe ein SubVI, dass als Eingang eine Referenz eines Clusters bekommt und dieses modifiziert.
Dieses SubVI wird von einem VI aufgerufen dessen Eingang ein Array von Clusterreferenzen ist. Diese werden in einer For-Schleife an das SubVI übergeben. Ich möchte an dieser Stelle die Referenz übergeben, da sich während der Abareitung des SubVIs die eigentlichen Clusterwerte ändern können müssen. Würde ich den Wert übergeben hätte ich ja nur den aktuellen Wert und nicht mehr die Änderungen.

Mein aktuelles Workaround: Ich erstelle 8 Cluster. Von diesen erstelle ich eine Referenz (8 Stück) und erstelle aus diesen 8 Referenzen ein Array. Funktioniert toll. Aber braucht Platz und ist sicher nicht die eleganteste Lösung.


Array Element als Referenz von Referenz - Achim - 15.10.2007 07:29

Hi Benjamin,

ich hab Y-P's Beispiel mal abgewandelt, damit es so funktioniert, wie du willst...man braucht keine Referenzen auf einzelne Array-Elemente!

Einfach mal laufen lassen...

(VI's LV 8.5)
[attachment=9167]
[attachment=9168]
[attachment=9169]

Gruss
Achim


RE: Array Element als Referenz von Referenz - RabenFlug - 05.02.2014 14:05

Moin liebe Experten,

ich habe im Moment genau das gleiche Problem. Es geht um eine einfache "Projektübersicht".

Ich habe ein Array aus Clustern, die Wiederum ein Array enthalten. In der GUI sollen genau so viele "Zeilen" des inneren Arrays angezeigt werden, wie es Einträge hat. Leider gibt es bei Arrays kein Häkchen "Anzeigegröße automatisch anpassen" . Also will ich die Anzahl der angezeigten Zeilen über ein Propperty Node mittels Referenz anpassen.

Soweit so gut, nur leider gelingt es mir ums Verrecken nicht an die Referenzen aller Array-Elemente heranzukommen. Wenn ich es über "Indexwerte" versuche ändert sich ja leider auch die Ansicht des Arrays :/

Oje, hoffentlich war das jetzt verständlich? Im Beispiel wird es sicher deutlicher Smile

Wenn es nur 1 Projekt gibt, lassen sich problemlos "Projekt-Tasks" hinzufügen oder entfernen. Gibt es zwei, flackert die Anzeige ständig weil der "Indexwert" (um die Referenzen herauszufinden) ständig geändert wird.

Es muss doch eine Möglichkeit geben sich die Referenzen ALLER Array-Elemente und nicht nur des "Aktuellen" ausgeben zu lassen? Habt ihr eine Idee?


RE: Array Element als Referenz von Referenz - GerdW - 05.02.2014 15:08

Hallo Flug,

Zitat:Es muss doch eine Möglichkeit geben sich die Referenzen ALLER Array-Elemente und nicht nur des "Aktuellen" ausgeben zu lassen?
Nein, gibt es nicht.
Grund: alle Arrayelemente haben die gleichen Eigenschaften, nur ihr Wert unterscheidet sich! Und der Wert wird über die Value-Property das Arrays selbst gesetzt…

Zitat:Also will ich die Anzahl der angezeigten Zeilen über ein Propperty Node mittels Referenz anpassen.
Dafür braucht man keine Referenz auf das Arrayelement, sondern nur auf das Array selbst: "Spalten-" oder "Zeilenanzahl"!

Aber auch hier gilt: Die Arrays innerhalb der Cluster teilen sich einen Property-Satz, da sie ja nur Elemente des äußeren Arrays sind. Alle Cluster zeigen ein Array mit gleichen Zeilen-/Spaltenanzahl!