[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