[Allegro] globales löschen eines subfeldes: wie?
Bernhard Eversberg
ev at biblio.tu-bs.de
Mo Jan 27 07:27:56 CET 2014
Am 26.01.2014 20:34, schrieb Sibylle Koczian:
>
> Es müsste aber doch auch in der Exportsprache möglich sein, eine
> Schleife zu bilden, die ein Subfeld g nach dem anderen entfernt.
>
> Also etwa so, wieder ungetestet:
>
> #-A
> #90 +A ~g p"#" M e0
> ##
>
> Ich bin nicht ganz sicher, ob der Sprung ausgeführt wird, wenn es kein
> Subfeld g mehr gibt.
Er wird, d.h der Vorgang liefe in eine Endlosschleife.
> Handbuch, 10.2.6.1 "Anweisungen", unter "BS": "Bis
> zu dieser Stelle wird gesprungen, wenn #xxf in der aktuellen Aufnahme
> besetzt ist und MB ausführbar ist". Ohne ein Subfeld g ist der
> Manipulationsbefehl ~g nicht ausführbar, also auch kein Sprung - denke
> ich.
Stimmt aber nicht. In 10.2.6.3 steht:
~x Das Teilfeld x wird im Arbeitstext gesucht und entfernt, wenn
es mehrfach vorkommt, nur das erste. Wenn es nicht vorkommt,
bleibt der AT unverändert.
Und das heißt - die Zeile wird weiter abgearbeitet. Sonst hätte der AT
ja gar keinen Sinn und keine Wirkung mehr. (Man sollte aber wohl die
Formulierung noch klarer fassen.)
> Sonst:
>
> #-A
> #90 +#90 c"$g" e0 Statt $ das Teilfeld-Dreieck
> #+B
> #90 +A ~g p"#" M e0
> #-B
> ##
>
Es geht kürzer, weil beides kombinierbar:
#-A
#90 +A c"$g" ~g p"#" M e0 Statt $ das Teilfeld-Dreieck
Aber das klappt nur mit ks=1! (der Befehl M, genau gesagt, sonst
Endlosschleife)
Hätte man ks=4, wäre zu schreiben:
#-A
#90 +A c"$g" ~g p"#90 " M e0 Statt $ das Teilfeld-Dreieck
(Alles getestet)
Ab V34.0 wird es eine neue Kurzschreibweise geben: c$g, und
zwar mit $ statt Dreieck. Es wird dann automatisch das wirkliche
Unterfeld-Steuerzeichen aus der CFG genommen. (Dies ist ein Teil
der Verbesserungen, die für eine bessere Editierbarkeit der
Exportparameter sorgen sollen.) Genauso: b$g, e$g und auch e$,
während ja $g schon lange ging, um Unterfeld $g zu extrahieren.
B.E.
Mehr Informationen über die Mailingliste Allegro