AW: [Allegro] Exportsprache Dopplungen
Thomas Fischer
fischer at mail.sub.uni-goettingen.de
Di Jun 7 14:12:08 CEST 2005
Hallo Herr Möller!
>
> Leider kommt es zu doppelten
> Ausgaben, bei der folgenden Abarbeitung von Sprungmarken (in der
> Datei gibt es keine Kopfbefehle):
>
>
> #00 +A i1,u e0 #zz 0
> #00 +A i1,h i2,b e0 #zz 0
> #00 +B i1,z e0 #zz 0
> #00 +C i1,b e0 #zz 0
> #00 +C i1,k e0 #zz 0
> #00 +C i1,a e0 #zz 0
> #00 +C i1,m e0 #zz 0
> #00 +C i1,f e0 #zz 0
> #00 +D i1,h I2,b e0 #zz 0
>
> #-A
> #00 "001 "
> ...
>
> #-B
> #8n "331 "
> ...
>
> usw.
>
> dabei wird in den Sprungmarken z.B. mehrmals #8n "331 "
> ausgegeben und wenn ich nach jeder Sprungmarke #+# setze geht er
> nur noch zur Sprungmarke -A. Wo ist mein Denkfehler?
Ich fürchte, Ihr Script kann so nicht das gewünschte liefern.
Der Test mit
i1,u
testet das _erste_ Zeichen des bei #00 vorliegenden Eintrags. Das ist gewissermaßen definitionsgemäß 0:
"Anweisung nur fortsetzen, wenn auf Position k das Zeichen x steht (Position 1 = erste Kategorieziffer)" steht dazu im Handbuch. Das ist ungewöhnlich, dient aber bei Allegro dazu, notfalls verschiedene Variablen #uxy verschieden zu behandeln.
Was Sie brauchen, ist wahrscheinlich ein Test auf den _ersten Buchstaben des Inhalts_ von #00. Bei einem dreistelligen Kategoriesystem (so sieht es hier aus) wäre das
#00 +A i4,u e0 #zz 0
Dann springt die Bearbeitung nach #-A, wenn der Inhalt vpn #00 mit u anfängt.
Wenn Sie dann aber nicht auch noch alles das abarbeiten wollen, was unter #-B, #-C etc. steht, müssen Sie hinter jedem Buchstaben noch einen Ausstieg definieren. Entweder #+#, wenn nichts mehr kommen soll, oder den Sprung nach einer beliebigen Stelle, etwa
#-A
#00 "001 "
...
#+S
#-B
#8n "331 "
...
#+S
usw.
#-S
hier geht's dann weiter
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro