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 leeren



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!

08.02.2011, 17:41
Beitrag #1

Lupin Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Feb 2010

2012
2008
EN

1234
Oesterreich
Array leeren
Gibt es eine Möglichkeit ein Array komplett zu leeren?
Ich möchte nicht ein Konstante am Blockdiagramm anlegen, da es sich um ein Array von Clustern handelt, die selbst einiges Elemente enthalten und daher mMn nur das Blockdiagramm zumüllen. Das selbe gilt für das Frontpanel.
Ich könnte natürlich mit "Initialize Array" ein leeres erzeugen, aber dann habe ich auch wieder irgenwo den Cluster rumliegen. Ein Element aus dem alten Array raus zu holen und das an "Initialize Array" zu füttern kommt mir auch etwas übertrieben vor (und macht vor allem ein Problem, wenn das Array schon leer ist!).
"Array Subset" oder "Delete From Array" sind noch das nächste das man verwenden könnte, brauchen aber auch mehr als nötig. Gibt's noch was besseres?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.02.2011, 18:24
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Array leeren
Umsteigen auf LV2010: Da kannst du von einer Cluster-Konstanten im BD ein Symbol anzeigen anstatt des gesamten Cluster.

Gruß, 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
08.02.2011, 18:26 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2011 18:45 von Turbo.)
Beitrag #3

Turbo Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Apr 2009

2009
2008
DE

37077
Deutschland
RE: Array leeren
Hi,
probier mal im Blockdiagramm rechte Maustaste auf dein Array - Erstellen - Eigenschaftsknoten - Wert, dann Rechtsklick auf Knoten - alle in Schreiben ändern, dann Rechtsklick auf den Anschluss - Erstellen - Konstante

Hoffe, dass das die Lösung für dein Problem sein könnte...


Gruß Turbo


   
Ach wer lesen kann is klar im Vorteil, sehe gerade dass du ja eben keine Konstante in deinem Blockdiagramm haben willst.

Tja, falls du nicht gerade die 2010-Version zur Hand hast, würde ich aus meiner Lösung ein sub-vi erstellen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2011, 20:29
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Array leeren
Hallo Lupin,

Zitat:Ein Element aus dem alten Array raus zu holen und das an "Initialize Array" zu füttern kommt mir auch etwas übertrieben vor (und macht vor allem ein Problem, wenn das Array schon leer ist!).
Kannst du das "Problem" näher erläutern? Ich sehe da keins...

Zitat:Gibt's noch was besseres?
Ja, die Konstante selbst!

Zitat:mMn nur das Blockdiagramm zumüllen
Mach ein subVI daraus und nach Möglichkeit auch ein TypeDef.

Zitat:Gibt es eine Möglichkeit ein Array komplett zu leeren?
Case-Struktur mit "Default if unwired"-Ausgang würde auch gehen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.02.2011, 07:17
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Array leeren
Das leere Array ist doch der normale Defaultwert. Rücksetzen auf Standard mit Methodenknoten "Standard wiederherstellen"
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.02.2011, 09:07 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2011 09:07 von macmarvin.)
Beitrag #6

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Array leeren
   

Ich benutze meist die erste Methode... bei der zweiten "sah" es aber in einem Anwendungsfall so aus, als ob der MemoryManager das lieber bzgl. Buffer-Reuse mochte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.02.2011, 11:44 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2011 15:44 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Array leeren
Es herrscht ja hier eine ganz schöne Begriffsverwirrung. In Labview versteht man unter einem leeren Array ein Array mit 0 Elementen. Hier aber verstehen manche darunter ein Array, bei dem alle numerischen Elemente den Wert Null haben.
Was von beiden Lupin will, ist unklar. Es sollte nun langsam mal klar gesagt werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.02.2011, 19:31
Beitrag #8

Falk Offline
ja, das bin ich...
***


Beiträge: 343
Registriert seit: Jan 2006

8.0 :: 201x ::202x
2006
DE_EN


Deutschland
RE: Array leeren
(08.02.2011 18:24 )jg schrieb:  Umsteigen auf LV2010: Da kannst du von einer Cluster-Konstanten im BD ein Symbol anzeigen anstatt des gesamten Cluster.

Ja darüber bin ich auch vor 2 Tagen gestolpert. Echt Klasse. Alternativ die Konstante einfach in ein Control umwandeln und dieses auf dem Front Panel verstecken.


Schöne Grüße
Falk

Currently: zzzZZZZZZZZ
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.02.2011, 21:43
Beitrag #9

Lupin Offline
LVF-Grünschnabel
*


Beiträge: 21
Registriert seit: Feb 2010

2012
2008
EN

1234
Oesterreich
RE: Array leeren
(scheint, dass ich seit der Forumsumstellung keine automatischen Email-Benachrichtigungen mehr bekomme und selbst abonnieren muss)

Zitat:Was von beiden Lupin will, ist unklar. Es sollte nun langsam mal klar gesagt werden.
Also mit leerem Array meine ich natürlich LabVIEW gemäß eines mit 0 Elementen. Ich habe ja auch von einem Cluster-Array geschrieben. Damit sollte klar sein, dass es nicht um auf 0 setzen geht.

Zitat:Mach ein subVI daraus und nach Möglichkeit auch ein TypeDef.
Wie könnte ich ein SubVI schreiben, das für jegliches Array, egal welchen Typs funktioniert? Polymorph ok, aber da muss ich ja trotzdem für jeden Typ ein SubVI erzeugen. Klar für genau dieses eine Mal könnte ich es machen. Aber ich hatte den Fall schon einige Male.

Zitat:Array - Erstellen - Eigenschaftsknoten - Wert
Das mit dem Property-node geht an der Lösung vorbei. Ich möchte ja eben gerade KEINE Konstante am Blockdiagramm. Außerdem gibt es zu dem Array kein Frontpanel-Objekt, da es On-The-Fly zusammengebaut wird.

Zitat:Kannst du das "Problem" näher erläutern? Ich sehe da keins...
Aja, stimmt. Hatte kurz vergessen, das ein Zugriff auf ein nicht existierendes Array-Element ja dessen Default-Wert zurück gibt. Da ist also nur noch, dass man mehrere Funktionen braucht um ein Array zu leeren. Mir geht's darum, ein möglichst übersichtliches Blockdiagramm zu haben, bei dem man nicht überlegen muss "was macht die Funktion mit diesen Parametern".

Zitat:Umsteigen auf LV2010: Da kannst du von einer Cluster-Konstanten im BD ein Symbol anzeigen anstatt des gesamten Cluster.
Iin dem Fall hänge ich bei LV2009.

Zitat:Alternativ die Konstante einfach in ein Control umwandeln und dieses auf dem Front Panel verstecken.
Ja, das habe ich auch schon gemacht. Das kommt noch am ehesten an das ran, was ich möchte. Es ist mir aber schon mal passiert, dass ich unabsichtlich im Control des Arrays ein Element initialisiert habe. Wenn das FP-Objekt dann auch noch versteckt ist, sucht man lang, wenn plötzlich das Programm spinnt. Und bei einer Änderung der Cluster-Zusammensetzung muss ich das FP-Objekt mitanpassen (gilt für eine Konstante ebenso). Natürlich könnte man eine Typedef nehmen, aber das Array (und die enthaltenen Cluster) werden On-The-Fly zusammen gebaut und es gibt nirgends ein Frontpanel-Objekt dazu.


Also ich werde es am ehesten mit einer Case-Struktur mit "return default if unwired" machen, bei der immer der unwired Case aufgerufen wird. Das mit dem Diagramm disable würde mir noch besser gefallen, da dabei ja im kompilierten Code gar keine Fallunterscheidung gemacht werden muss, aber wenn es dabei dann andere Performanceeinbußen gibt, lieber doch nicht. Es ist zwar alles ein "workaround", aber das scheint mir der auf Anhieb am schnellsten zu erfassende zu sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2011, 11:16
Beitrag #10

macmarvin Offline
CLA
***


Beiträge: 445
Registriert seit: Sep 2006

2014
2004
EN

81373
Deutschland
RE: Array leeren
(11.02.2011 21:43 )Lupin schrieb:  .... Wenn das FP-Objekt dann auch noch versteckt ist, sucht man lang, wenn plötzlich das Programm spinnt. Und bei einer Änderung der Cluster-Zusammensetzung muss ich das FP-Objekt mitanpassen (gilt für eine Konstante ebenso). Natürlich könnte man eine Typedef nehmen, aber das Array (und die enthaltenen Cluster) werden On-The-Fly zusammen gebaut und es gibt nirgends ein Frontpanel-Objekt dazu.


Also ich werde es am ehesten mit einer Case-Struktur mit "return default if unwired" machen, bei der immer der unwired Case aufgerufen wird. Das mit dem Diagramm disable würde mir noch besser gefallen, da dabei ja im kompilierten Code gar keine Fallunterscheidung gemacht werden muss, aber wenn es dabei dann andere Performanceeinbußen gibt, lieber doch nicht. Es ist zwar alles ein "workaround", aber das scheint mir der auf Anhieb am schnellsten zu erfassende zu sein.


Hart gesagt: Zu jedem Cluster gehört ein Typedef (Afaik gibt's da nur eine Ausnahme, Q'n'D Sortierungen)! Alles andere ist Gebastel.

Ob du Disable Struktur oder ist Case-struktur mit Konstante nimmst ist afaik egal. Da wird im Kompilat keine Fallunterscheidung gemacht, der Code im "ausgeschalteten" Teil wurde eh beim builden raus geschmissen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Kein leeren sondern gar kein String in Array einfügen Philipp_O 3 3.534 25.08.2022 15:06
Letzter Beitrag: Kiesch
  Array leeren und erneut füllen TTT 2 4.268 24.05.2018 09:15
Letzter Beitrag: TTT
  XY Graph zurücksetzen bzw. leeren Ralfk84 2 3.692 06.10.2017 06:09
Letzter Beitrag: Ralfk84
  Listbox leeren tatnau 14 9.097 08.09.2015 14:31
Letzter Beitrag: GerdW
  Diagramm leeren Hasenfuss 1 3.369 11.04.2013 15:12
Letzter Beitrag: Kasi
  leeren Rahmen erstellen Hasenfuss 6 5.875 14.02.2013 09:39
Letzter Beitrag: alieninvader

Gehe zu: