[Allegro] Trick 74 : Globale Dollarkrise (Den $ global ersetzen)

Thomas Fischer fischer at sub.uni-goettingen.de
Mo Nov 30 16:55:02 CET 2009


Lieber Herr Eversberg,

ich experimentiere mit der Schleife in Ihrem Trick 74 in einem reduzierten
Flex mit dem folgenden Inhalt:

_____________________________


first r
   falls der erste Satz gelöscht ist: nächster Satz
if del jump weiter

   Jeder Satz wird in dieser Schleife verarbeitet:
:schleife
   Kommt $ in #14 vor? Wenn nicht, -> :weiter
if not *#14_$_ jump weiter
z + 1
   Nächsten Satz holen (interne Nummernfolge)
:weiter
next r
	 kein Satz mehr, Ende erreicht
if cancel jump exit
	 der Satz ist gelöscht
if del jump weiter
	 es gab noch einen Satz? dann -> :schleife
if yes jump schleife

:exit
var 'Zähler: ' z
mes
_______________________

So wie er da steht sollte er m.E. das Auftreten der $-Zeichen zählen.
Ich bekomme als Ergebnis aber 51 (das ist die Größe der Ergebnismenge), wenn
ich  auf einem Datensatz starte, der ein $ in #14 enthält, und sonst 0.
Und beides ist falsch.
(Das gilt auch mit 
if not _$_ jump weiter
)

Habe ich da etwas falsch gemacht oder verstanden?
Mir sieht das verdächtig danach aus, dass gar nicht der aufgerufene
Datensatz, sondern der in der Anzeige getestet wird; das wäre nicht
sinnvoll. Oder muss der mit first/next r aufgerufene Satz erst noch
irgendwie "aktiviert" werden?

Am Ende steht übrigens der Zähler der Ergebnismenge am Ende, das wird aber
nicht angezeigt, sondern die Nummer des aktuellen Satzes (z.B. 45 / 51), der
auch in der Anzeige bleibt. Damit hat der rechte Pfeil keine Wirkung und der
linke Pfeil ruft den vorletzten Satz auf, das könnte irritieren.

Mit freundlichen Grüßen
Thomas Fischer 




Mehr Informationen über die Mailingliste Allegro