Aus Das deutschsprachige Scratch-Wiki
Bei den begrenzten Möglichkeiten von Scratch zur Manipulation von Strings erfordert das Verschieben eines Teils eines Strings an eine andere Position innerhalb desselben Strings einen Workaround. Ein Benutzerdefinierter Block, der auf "ohne Bildschirmaktualisierung" eingestellt ist, kann verwendet werden, um eines Substrings schnell an eine andere Stelle in seiner Basisstrings zu verschieben.
Programmierung
Der folgende benutzerdefinierte Block verschiebt den angegebenen Teil eines Basisstrings an eine andere Position (Index) innerhalb des Körpers (Basisstrings).
Definiere Zeichen (Anfang) bis (Ende) von (Basis) an Position (Pos) verschieben setze [i v] auf (Anfang) setze [gruppe1 v] auf [] wiederhole (((Ende) - (Anfang)) + (1)) mal setze [gruppe1 v] auf (verbinde (gruppe1) und (Zeichen (i) von (Basis))) ändere [i v] um (1) end setze [gruppe2 v] auf [] setze [i v] auf [1] wiederhole ((Anfang) - (1)) mal setze [gruppe2 v] auf (verbinde (gruppe2) und (Zeichen (i) von (Basis))) ändere [i v] um (1) end setze [i v] auf ((Ende) + (1)) wiederhole ((Länge von (Basis)) - (Ende)) mal setze [gruppe2 v] auf (verbinde (gruppe2) und (Zeichen (i) von (Basis))) ändere [i v] um (1) end setze [Kompiliert v] auf [] // will result in the finished string setze [i v] auf [1] wiederhole ((Pos) - (1)) mal setze [Kompiliert v] auf (verbinde (Kompiliert) und (Zeichen (i) von (gruppe2))) ändere [i v] um (1) end setze [Kompiliert v] auf (verbinde (Kompiliert) und (gruppe1)) // inserts the moved substring to the proper Position setze [i v] auf (Pos) wiederhole (((Länge von (Basis)) - (Pos)) + (1)) mal setze [Kompiliert v] auf (verbinde (Kompiliert) und (Zeichen (i) von (gruppe2))) end
Erklärung
Der allererste Abschnitt der Basiszeichenfolge, der in einer unabhängigen Variablen namens gruppe1
gruppiert werden muss, ist die Teilzeichenfolge der Hauptzeichenfolge, die entfernt werden soll. Anschließend wird die Teilzeichenfolge tatsächlich aus der Zeichenfolge entfernt und die verbleibenden Zeichen werden in einer Variablen namens gruppe2
gruppiert. Um die Bewegung zu beenden, werden die Ergebnisse der Variable „kompiliert“ mit den fertigen Strings in der richtigen Reihenfolge zusammengefügt.
Siehe auch
[wiki=de:Teil eines Strings bewegen]Teil eines Strings bewegen[/wiki]