Array manipulieren, Schleife iteriert nicht - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Array manipulieren, Schleife iteriert nicht (/Thread-Array-manipulieren-Schleife-iteriert-nicht) |
Array manipulieren, Schleife iteriert nicht - tobi45f - 04.03.2015 13:45 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 RE: Array manipulieren, Schleife iteriert nicht - tobi45f - 04.03.2015 14:09 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]... naja jetzt zählt die Schleife aber irgendwas ist immernoch faul. Ich wette es liegt an der Indexierung. Aber welche ich warum Umstellen muss RE: Array manipulieren, Schleife iteriert nicht - GerdW - 04.03.2015 14:31 Hallo Tobi, Zitat:Ich wette es liegt an der Indexierung. Aber welche ich warum Umstellen mussWelche 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! RE: Array manipulieren, Schleife iteriert nicht - tobi45f - 04.03.2015 15:09 (04.03.2015 14:31 )GerdW schrieb: Hallo Tobi, Mein Verdacht mit dem Index einfach nur deshalb, weil ich mir nie sicher bin, wann ich die indexierung brauche oder nicht 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 RE: Array manipulieren, Schleife iteriert nicht - jg - 04.03.2015 15:25 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 RE: Array manipulieren, Schleife iteriert nicht - GerdW - 04.03.2015 15:34 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… RE: Array manipulieren, Schleife iteriert nicht - tobi45f - 05.03.2015 07:25 (04.03.2015 15:34 )GerdW schrieb: Hallo Tobi, Moin, Danke. Funktioniert |