[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