[Allegro] P{8} als einzige Ausgabe

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Jun 19 16:29:17 CEST 2017


Hallo die Herren Eversberg und Eger!
> Am 19.06.2017 um 15:29 schrieb Bernhard Eversberg <b-eversberg at gmx.de>:
> 
>> Gesendet: Montag, 19. Juni 2017 um 14:44 Uhr
>> Von: "Fischer, Thomas" <fischer at sub.uni-goettingen.de>
>> 
>> 
>> #b1='|2'				(weiter oben definiert)
>> #utf p1
>> #utf +#99 c"#ute" e0 P{8}
>> #ute y0 p'|' P{8}
>> #99 e0
>> 
>> da fehlte dann das Trennzeichen und die Einträge ohne Teil 2 wurden hintereinander geschrieben.
> Ohne irgendwas hintereinander in einer Zeile?

Das Ergebnis ist dann
|2archiviert|2und|2mit|2einem|2eigens|2entwickelten|2computerprogramm|Computerprogramm
also so lange, bis tatsächlich ein Teil 2 auftritt.

> Kommen unter #99 noch ein oder mehr Schlüssel? Oder #+#?
> (Sonst ist  P{8} komplett sinnlos, wenn auch unschädlich)

Das ist Teil einer Schleife, in der ein Feldeintrag Wort für Wort abgearbeitet wird (sieht man schön an obigem Beispiel).

>> Jetzt mache ich
>> 
>> #utf p1
>> #ute y0 c"^#utf" p'|'
>> #t{8}
>> 
>> das ist sogar eleganter, und bei der Umkodierung kann man die Unterschiede der beiden Enthaltenseins-Tests wohl vernachlässigen.
>> 
> Ja, ist besser.
> Und hier also unter #t{8} noch weitere Schlüssel?

Ja, reichlich. Nach 500 mache ich dann Schluss. (Ich weiß nicht, was passiert wenn die Grenze von 1000 Schlüsseln bzw. 32000 Byte je Satz überschritten wird.

Herr Eger hat mich auf die Spur gebracht mit seinem Vorschlag

> #utf +#99 c"#ute" p{ 8 } e0

Daran anschließend habe ich

#utf +#99 c"#ute" P{8} e0

getestet, und das funktioniert auch.

Es ist also die Reihenfolge:
P{8} e0
geht,
e0 P{8}
geht nicht, analog mit dem indirekten Präfix.
Ob das schon immer so war, kann ich nicht sagen, aber die Konstruktion habe ich schon früher verwandt (aber vielleicht nicht genug getestet oder in einem anderen Kontext?).

Ob sich dieses Verhalten aus der Beschreibung ergibt, erscheint mir fraglich.
In der Dokumentation steht
– zum Präfix:
> pz, p{CS}
> Indirektes Präfix : Das Programm merkt sich die Zwischenteilnummer z bzw. die Steuerzeichenkette CS und gibt sie aus, bevor der Arbeitstext selbst ausgegeben wird.
– und zum Postfix:
> Pz, P{CS, P>K
> Zwischenteil z wird im Anschluß an #xxf ausgegeben. (Geeignet für Steuerzeichen!)
> Die Unterschiede zwischen Pz und PX sind dieselben wie beim Präfix (siehe vorige Seite).
> Reihenfolge der Abarbeitung: 1. direktes, 2. indirektes, 3. bedingtes Postfix.

Wie genau das Verhalten ist, überblicke ich noch nicht ganz, die Vermutung liegt aber nahe, dass e0 die Verarbeitung der Zeile abbricht.

Mit freundlichen Grüßen
Thomas Fischer

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 842 bytes
Beschreibung: Message signed with OpenPGP using GPGMail
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20170619/6c93d11c/attachment.sig>


Mehr Informationen über die Mailingliste Allegro