[Allegro] Von einer Variablen einen variabel langen Teil abschneiden
Sibylle Koczian
Sibylle.Koczian at T-Online.de
Di Jul 17 15:56:00 CEST 2007
Liebe Liste,
ich möchte in eine Kategorie eine Zeichenkette schreiben, die aus Nullen und Einsen besteht. Das Problem dabei: wo die Einsen stehen, muss aus Inhalten anderer Kategorien berechnet werden. Es geht auf ziemlich umständliche Art mit zwei Schleifen: Nullen anhängen, so lange der interne Zähler kleiner ist als die Position der ersten Eins, Eins anhängen, den internen Zähler um den gewünschten Abstand erhöhen, zum Schleifenanfang; in einer weiteren Schleife mit Nullen bis zur gewünschten Länge auffüllen.
Etwas netter schiene mir:
$ausgangsstring = '000000000000' (gewünschte Gesamtlänge)
z = $gewuenschteStartposition
:loop
$ausgangsstring = $ausgangsstring(0,z-1) '1' $ausgangsstring(z+1,0)
z = z + $gewuenschterAbstand
if z < $gewuenschteGesamtlaenge jump loop
Geht leider nicht (auch nicht mit u-Variablen). $ausgangsstring(0,z) ergibt einfach den Ausgangs-String in voller Länge, und $ausgangsstring(0,z-1) bringt A99 zum Absturz.
Hiermit kann man testen:
x variable '000000'\insert #uxA\z = 2\variable #uxA(0,z) '1' \message
Weiß jemand einen Trick, der funktioniert und das Gewünschte liefert?
Ich sehe doch richtig, dass es keinen Flex-Befehl gibt, der einfach ganz direkt der i-ten Stelle einer Kategorie oder Variablen ein neues Zeichen zuweist (mit variablem Wert von i)?
Dank und Gruß,
Koczian
--
Dr. Sibylle Koczian
Fasanenstrasse 12
D-82293 Mittelstetten
Mehr Informationen über die Mailingliste Allegro