Ja, genau, sehr hübsch (insbesondere wesentlich besser dokumentiert (und ganz unauffällig auch meinen Fehler mit dem "alten" Channelwert korrigiert
))
Eine kleine Anmerkung: Die "Insert into Array"-Funktion hängt in deiner Lösung immer ein Element an den Anfang des Arrays (bei Index 0). Das kann
bis zu 100 mal langsamer sein, als es an das Ende des Arrays zu hängen. Bei wenigen und kleinen Arrays fällt das Performance-mäßig noch nicht auf, aber ich würde trotzdem versuchen, das zu ändern, um solche Flaschenhälse direkt am Anfang zu vermeiden.
Außerdem kannst du ganz am Anfang die Zusammenführung der beiden Channel und Value Arrays am Anfang sehr viel direkter mit
auto-indexing lösen, also einfach direkt beide Arrays in die For-Schleife geben und die auto-indizierten Werte Clustern. Dann brauchst du dein N nicht bestimmen und musst keine pseudo-Laufindexe (dieses Shift-register +1) erzeugen (welches auch direkt über den Laufindex i unten links funktioniert hätte
)).