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


Code zum Einbinden ins Forum:
[wiki=de:Teil eines Strings bewegen]Teil eines Strings bewegen[/wiki]
Cookies helfen uns bei der Bereitstellung von Das deutschsprachige Scratch-Wiki. Durch die Nutzung von Das deutschsprachige Scratch-Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.