INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Array Element als Referenz von Referenz



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.10.2007, 08:16
Beitrag #1

Benjamin Fuchs Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 86
Registriert seit: Aug 2007

8.20
2007
kA

90427
Deutschland
Array Element als Referenz von Referenz
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?

Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.10.2007, 17:03
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.219
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Array Element als Referenz von Referenz
' 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

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2007, 18:36 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2007 18:36 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Array Element als Referenz von Referenz
' 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:


Sonstige .vi  Bsp_Reference.vi (Größe: 17,04 KB / Downloads: 614)
(LV8.2)

    (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

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2007, 20:04 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:34 von jg.)
Beitrag #4

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Array Element als Referenz von Referenz
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)


Angehängte Datei(en)
Sonstige .vi  Haupt_VI.vi (Größe: 12,13 KB / Downloads: 461)

Sonstige .vi  SubVI.vi (Größe: 12,28 KB / Downloads: 443)

Sonstige .ctl  Cluster_Array.ctl (Größe: 6,57 KB / Downloads: 362)

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2007, 20:18
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Array Element als Referenz von Referenz
' 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

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2007, 05:56
Beitrag #6

Achim Offline
*****
*****


Beiträge: 4.219
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Array Element als Referenz von Referenz
' 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

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.10.2007, 07:00
Beitrag #7

Benjamin Fuchs Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 86
Registriert seit: Aug 2007

8.20
2007
kA

90427
Deutschland
Array Element als Referenz von Referenz
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.

Ich würde mich ja gerne mit Dir geistig duellieren, aber ich sehe Du bist unbewaffnet.
--------------------
Der Vorteil von Klugheit ist, dass man sich dumm stellen kann. Das Gegenteil ist schwieriger.
--------------------
Damit immer mehr immer weniger tun können, müssen immer weniger immer mehr tun.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.10.2007, 07:29 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 13:35 von jg.)
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.219
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Array Element als Referenz von Referenz
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)

Sonstige .vi  HauptVI_ChangeClusterArray.vi (Größe: 8,77 KB / Downloads: 539)


Sonstige .vi  SubVI_ChangeClusterArray.vi (Größe: 9,9 KB / Downloads: 471)


Sonstige .ctl  Cluster_Array_2_.ctl (Größe: 6,57 KB / Downloads: 427)


Gruss
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2014, 14:05 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2014 14:06 von RabenFlug.)
Beitrag #9

RabenFlug Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Apr 2010

2016
2009
DE

22307
Deutschland
RE: Array Element als Referenz von Referenz
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?


Angehängte Datei(en)
12.0 .vi  main.vi (Größe: 69,7 KB / Downloads: 261)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.02.2014, 15:08
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Array Element als Referenz von Referenz
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!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Referenz Ratio 5 3.656 09.11.2018 14:29
Letzter Beitrag: Freddy
  Name Referenz von Hex in Dezimal voellig_egal 9 4.667 21.06.2018 14:31
Letzter Beitrag: voellig_egal
  Übergabe Anzeigeelement zwischen VIs (Referenz/globale Variable?) lipster 1 3.682 03.02.2017 14:27
Letzter Beitrag: GerdW
  Control-Referenz programmatisch erstellen? spacz 2 3.564 23.01.2017 11:31
Letzter Beitrag: spacz
  Referenz auf Gestaltungselemente Pavel 5 4.598 15.12.2016 15:29
Letzter Beitrag: Pavel
  Property Node - Referenz schließen? spacz 2 3.281 21.11.2016 11:16
Letzter Beitrag: spacz

Gehe zu: