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!
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.
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
04.03.2015, 14:09 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2015 14:13 von tobi45f.)
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
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
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
04.03.2015, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2015 15:31 von jg.)
(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
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!
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…
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…