LabVIEWForum.de
Array neu initialisieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Array neu initialisieren (/Thread-Array-neu-initialisieren)

Seiten: 1 2


Array neu initialisieren - kcccp - 10.11.2010 14:28

Moin, wie kann ich ein 1D Array mit wenig Aufwand neu initialisieren und dabei einige Elemente (dynamisch) verwerfen.

Gruß
kcccp


Array neu initialisieren - GerdW - 10.11.2010 14:55

Hallo kcccp,

kannst du bitte kurz die gewünschte Funktionalität darlegen? Bei sovielen parallel und eng aneinander verlaufenden Drähten und verschachtelten Case-Strukturen kommt man ganz durcheinander...

Ich persönlich habe schon nach dem ClusterToArray und IndexArray (mitsamt unnötiger Indizes) resigniert. Warum nicht ein simples UnbundleByName, welches die gleichen Werte wesentlich übersichtlicher (da beschriftet) liefert? Warum in jeder Iteration neu indizieren, die Werte ändern sich doch nicht?


Array neu initialisieren - kcccp - 10.11.2010 15:22

Hi GerdW, ich gebe dir Recht ist sehr schlecht programmiert.

Also zu der erwünschten Funktion, man habe ein 1DArray mit n-Elementen (0-200), nun sollen einige Elemente (20-Grupen) verworfen und die restlichen in einem anderen Array dargestellt werden. Mit den Kontrollkästchen in dem Cluster wird die Auswahl getroffen ob das Element verworfen oder dargestellt wird.

Gruß
kcccp


Array neu initialisieren - kcccp - 10.11.2010 15:45

Also so was.

Gruß
kcccp


Array neu initialisieren - GerdW - 10.11.2010 15:56

Schon wesentlich übersichtlicher. Warum nicht gleich so?

Jetzt würde ein ClusterToArray wieder sinnvoll sein, da man dann mit einer Schleife und einer Case-Struktur auskommen würde...


Array neu initialisieren - kcccp - 10.11.2010 16:12

Es ist jetzt Übersichtlicher geworden, aber es Funktioniert noch nicht so wie erwünscht.


Array neu initialisieren - Lucki - 10.11.2010 16:55

' schrieb:Es ist jetzt Übersichtlicher geworden, aber es Funktioniert noch nicht so wie erwünscht.
Das liegt daran, daß der Cluster nur ein einziges Mal am Anfang abgefragt wird. Der gehört in die Schleife:
[attachment=30497]
Lv86_img[attachment=30496]
NB: Was das alles mit "Array initialisieren" zu tun hat, erschließt sich mir nicht...


Array neu initialisieren - kcccp - 11.11.2010 08:49

Hi, erstmal vielen dank für die Beispiele.
Leider stellte ich fest, dass die Ergebnisse von einander abweichen (siehe Anhang). In deinem Beispiel ist der Array-Index immer konstant 20 (unabhängig davon ob du vorhin schon etwas gelöscht hast oder nicht), sieht man schön an den beiden Arrays in dem Bsp. Mein Bsp. sieht zwar nicht so gut aus, liefert aber die erwünschte Funktionalität.

Nun hab ich das Problem, dass die Länge des Array (wie viele Elemente gelöscht werden sollen) nicht wie in dem Bsp. immer 20 sondern unterschiedlich groß ist (12,18,40), hat eine/r vielleicht eine Idee wie ich das Problem lösen kann?

Gruß
kcccp


Array neu initialisieren - GerdW - 11.11.2010 17:16

Hallo kcccp,

Zitat:die Ergebnisse von einander abweichen
Das kommt daher, dass sich bei einem Array die Indizes verschieben, wenn du am Anfang schon etwas weggelöscht hast. Du müsstest am Ende mit dem Löschen anfangen! (Kannst ja mal mit Stift und Papier nachvollziehen: Wenn ich bei einem Array Element #0 lösche, verringert sich bei allen nachfolgenden Elementen der Index um 1: Element #1 wird zu #0, #10 zu #9...) Wenn du dann stur weiter Element #20 löschen willst, triffst du das falsche ZielSmile

Zitat:nicht ... immer 20 sondern unterschiedlich groß ist (12,18,40)
Dafür musst du nur alle Instanzen der Konstante 20 (die du ja ziemlich oft im BD verteilt hast, statt einen Draht zu verwenden), durch einen Draht ersetzen, der an ein entsprechendes Eingabe-Control angeschlossen ist...


Array neu initialisieren - kcccp - 12.11.2010 09:19

Moin GerdW,

mit den Indizes hab ich zwar schon in dem Beitrag davor beschrieben (es war keine Frage, hab mich vielleicht unglücklich ausgedruckt), aber trotzdem vielen dank für dein Engagement.

Die erwünschte Funktionalität des VIs hab ich jetzt erreicht (siehe Anhang), nun wollte ich fragen ob ich es irgendwie vereinfachen kann?

Gruß
kcccp