LabVIEWForum.de - Array manipulieren, Schleife iteriert nicht

LabVIEWForum.de

Normale Version: Array manipulieren, Schleife iteriert nicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

ich habe ein Problem bei der Array-Manipulation.
Kurzer zum Hintergrund:

Ich habe ein Array mit Clustern. In diesem Cluster ist ein Zahlenwert und 2 Strings. Das Array wird automatisch beschrieben und somit initialisiert (Zahlenwert wird einfach durchnummeriert, String 1 mit "Klemmentyp", String 2 mit "-Kommentar-"). Nachher habe ich dann sowas:
1 Klemmentyp -Kommentar-
2 Klemmentyp -Kommentar-
3 Klemmentyp -Kommentar-
...
Im zweiten Schritt können die Strings geändert werden. Die Bezeichnungen "Klemmentyp" und "-Kommentar-" sollen also eine Art Eingabeaufforderung für ca. 40 Arrayelemente sein. (Kurzfrage: Ist es möglich ein Array in der Größe zu beschränken, sodass dies auch durch die manuelle Initialisierung nicht vergrößert werden kann, Éigenschaftsknoten oder so habe da nichts gefunden? oder einfach eine Dauer-Löschen Funktion wenn es größer ist als gewollt?)
Da nun der selbe Klemmentyp mehrfach vorhanden sein wird, wollte ich es möglich machen, per Button den letzten manuellen Eintrag in das nächste Feld zu kopieren.

1 Hersteller1 -Kommentar-
2 Klemmentyp -Kommentar-
3 Klemmentyp -Kommentar-

soll auf Knopfdruck zu

1 Hersteller1 -Kommentar-
2 Hersteller1 -Kommentar-
3 Klemmentyp -Kommentar-

werden.

Ich habe mir also eine Schleife gebaut die bei der Maximalen Anzahl anfängt und runterzählt. Dabei wird verglichen, ob Klemmentyp von n sowie der Klemmentyp von n+1 ungleich sind. Im Falle der Ungleichheit (letzter getätigter Eintrag) soll der Eintrag von n+1 auf n (Im Screenshot vertauscht) kopiert werden.
Zur Darstellung hab ich mir 2 Arrays zur Hilfe reingebastelt, leider zeigen die mir, dass es nicht geht wie gewünscht..

Wenn ich das richtig sehe, dann läuft nicht einmal die Schleife. Diese bleibt permanent auf ihrem Startwert. Warum?
Ganz außen rum ist eine While Schleife, danach der Case der State-Machine und dann das Programm aus der Abbildung.

Natürlich muss bei dem Bild an den offenen Eingang des Subtrahieren Bausteins auch die Anzahl der Messwerte dran.

Kann mir wer sagen, was hier falsch läuft?
Gruß Tobias
Ich bin so dämlich. Wenn man 2h drauf guckt, dann sieht man irgendwann die dümmsten Fehler nicht mehr. Ich muss ja auch den [i] Ausgang nehmen und nicht [N]...Wall
naja jetzt zählt die Schleife aber irgendwas ist immernoch faul. Ich wette es liegt an der Indexierung. Aber welche ich warum Umstellen muss
Hallo Tobi,

Zitat:Ich wette es liegt an der Indexierung. Aber welche ich warum Umstellen muss
Welche Indexierung? Du nutzt da DeleteFromArray - warum nicht IndexArray?
Aber das dürfte nicht das eigentliche Problem sein.

Häng doch mal ein (abgespecktes) VI mit sinnvollen Daten hier an!
(04.03.2015 14:31 )GerdW schrieb: [ -> ]Hallo Tobi,

Zitat:Ich wette es liegt an der Indexierung. Aber welche ich warum Umstellen muss
Welche Indexierung? Du nutzt da DeleteFromArray - warum nicht IndexArray?
Aber das dürfte nicht das eigentliche Problem sein.

Häng doch mal ein (abgespecktes) VI mit sinnvollen Daten hier an!

Mein Verdacht mit dem Index einfach nur deshalb, weil ich mir nie sicher bin, wann ich die indexierung brauche oder nicht Big Grin

hab das VI abgespeckt und alle subVIs rausgemacht.
Vi starten, auf neue Messung klicken, beliebige Zahl eingeben irgendwas zwischen 5 und 10 zb.
dann einfach bei Klemmentyp die ersten 3-4 Elemente mal umbenennen. Unten an den Arrays wird deutlich, dass sich leider nichts tut. Manchmal macht er mit den ersten beiden Elementen Unfug. Warum weiß ich nicht Huh
Zu deiner versteckten Zwischenfrage...
(04.03.2015 13:45 )tobi45f schrieb: [ -> ](Kurzfrage: Ist es möglich ein Array in der Größe zu beschränken, sodass dies auch durch die manuelle Initialisierung nicht vergrößert werden kann, Éigenschaftsknoten oder so habe da nichts gefunden? oder einfach eine Dauer-Löschen Funktion wenn es größer ist als gewollt?)
Nein, dafür gibt es keine "automatische" Vorgabe, musst du selber machen.

Gruß, Jens
Was machst du eigentlich, wenn sich der User beim Abändern der Texte "Klemmentyp" nicht eine Reihenfolge "von oben nach unten" hält?

Gruß, Jens
Hallo Tobi,

zu deiner Eingangsfrage:
[attachment=52302]
Es werden die "Klemmentypen" durchsucht. Wenn der Defaultwert "Klemmentyp" gefunden wird, wird dieser Eintrag durch den vorhergehenden ersetzt.
Ist noch nicht "sicher" programmiert (mit Fehlerabfrage), aber zeigt die prinzipielle Vorgehensweise. Statt der Loop könnte man auch Search1DArray nehmen…
(04.03.2015 15:34 )GerdW schrieb: [ -> ]Hallo Tobi,

zu deiner Eingangsfrage:

Es werden die "Klemmentypen" durchsucht. Wenn der Defaultwert "Klemmentyp" gefunden wird, wird dieser Eintrag durch den vorhergehenden ersetzt.
Ist noch nicht "sicher" programmiert (mit Fehlerabfrage), aber zeigt die prinzipielle Vorgehensweise. Statt der Loop könnte man auch Search1DArray nehmen…

Moin,

Danke. Funktioniert Smile
Referenz-URLs