[Allegro] (linux)avanti phpac: kleines problem bei d-khtm.apr
Bernhard Eversberg
ev at biblio.tu-bs.de
Mi Jul 23 10:30:59 CEST 2014
Am 22.07.2014 18:30, schrieb Klaus Lehmann:
Am 22.07.2014 13:18, schrieb Bernhard Eversberg:
> Richtig schwer ist das nicht.
> Hier haben Sie ein Beispiel aus cat.api:
> #u1 =mo e0 Feld zerlegen bei ;
> #-k
> !umo e";" y2 p{ 8 "|:M " }
> !umo +k b";" f" " =mo
>
>> Dieses Rezept können Sie leicht modifizieren.
>
> wo finde ich bitte im handbuch etwas dazu?
Verstreut an einigen Stellen, irgendwo ist jeder Befehl in seinem
Kontext beschrieben. Diese Methodik ergibt sich als Kombination
der einzelnen Teile - das Ganze ist mehr als die Summe seiner
Teile.
> das da oben ist -bestimmt nicht nur für mich- unverstehbar.
> sowas geht nicht in meinen kopf rein.
>
Das wollen wir doch mal sehen. Schritt für Schritt:
Ziel ist:
Das Datenfeld #u1 (aus einem ak-Befehl) soll am ';' zerlegt und dann
jeweils ins Register 10 mit M davor eingeordnet werden.
1.
#u1 =mo e0 Feld zerlegen bei ;
=mo Der Inhalt von #u1 wird in #umo kopiert,
e0 aber nicht an dieser Stelle ausgegeben
2.
#-k Sprungmarke als Schleifenanfang (s. 4.)
3.
!umo e";" y2 p{ 8 "|:M " }
e";" Ende bei ;
y2 umcodieren mit q-Liste
p{ 8 "|:M " } Das Register-Präfix, '8' besagt, daß
hier ein weiterer Schlüssel beginnt
4.
!umo +k b";" f" " =mo
+k Wenn diese Zeile noch etwas ergibt (d.h. nach b";" noch
was übrig ist), dann nach #-k springen
b";" Teil hinter dem nächsten ; nehmen
f" " Leerzeichen am Anfang (hinter ;) wegnehmen
=mo den so verkürzten Teil wieder in #umo kopieren
Kurz: #umo (Kopie von #u1) wird schrittweise verkürzt und die
einzelnen Teile dann als je ein Schlüssel eingeordnet.
Sie modifizieren dann z.B. die Zeile 3, indem Sie die jeweils
passenden Prä- udn Postfixe mit p und P hinzufügen.
Die Schleife endet zwanglos, sobald kein ; mehr vorkommt (Zeile 4.
löst dann keinen Sprung aus)
B.E.
Mehr Informationen über die Mailingliste Allegro