[Allegro] Trick 35: Gleichlautende Flips
Bernhard Eversberg
ev at biblio.tu-bs.de
Mi Jan 17 09:33:03 CET 2007
Trick 35: Gleichlautende Flips
Aufgabe: Mehrere gleichlautende Flips präsentieren, die aber
unterschiedliche Dinge tun.
Was ist das Problem? Flips funktionieren so, daß die sichtbare
(meistens blau unterstrichene) Zeichenfolge beim Anklicken
verglichen wird mit den in den Variablen #uY? hinterlegten
Zeichenfolgen. Die erste Übereinstimmung wird genommen,
sagen wir #uYk. (Mit Alt+r kann man sie alle sehen und diese
Dinge kontrollieren!) Dann wird #uZk hergenommen, als FLEX
interpretiert und ausgeführt. Daher sind, einfach weil
immer die ERSTE Ubereinstimmung genommen wird, gleichlautende
Flips nicht möglich - ausgeführt wird immer nur der erste.
Der Trick besteht darin, daß der FLEX zuerst die TextZEILE
auswertet, in der geklickt wurde. Und in der Textzeile muß
ein Kriterium stehen, das dann eindeutig ist und das eindeutige
Funktionieren ermöglicht.
Die Textzeile auswerten? Das geht mit
var zc
schon hat man sie in der iV und kann machen damit, was immer
man will.
Dieser Trick wird ausgenutzt in dem neuen FLEX xgrep.flx,
der mit V27.1 kommt. Er dient dazu ausgewählte Textdateien
zu durchsuchen mittels RegEx-Methodik, z.B. Importparameter,
CFG-Dateien oder Verlautbarungen. Wenn man letztere wählt
und als Suchbegriff eingibt: isbn + 13
dann kommt heraus:
DATEI: c:\allegro\help\vb184
show -- c:\allegro\help\vb184 at 309 - Ab 2007 wird eine 13stellige,...
DATEI: c:\allegro\help\vb193
show -- c:\allegro\help\vb193 at 84 - Man gibt die ISBN so ein, wie...
DATEI: c:\allegro\help\v258\vb184
show -- c:\allegro\help\v258\vb184 at 309 - Ab 2007 wird eine 13stell...
***** 3 Vorkommnisse von isbn + 13 gefunden
Und in jeder Zeile ist "show" ein Flip - 3mal dasselbe! Es können aber
auch 100 sein oder mehr!
Die Zeile enthält aber jeweils den Dateinamen und die Zeilennummer
(hinter @) innerhalb der Datei! Das ist eindeutig. Aus dem Inhalt
von zc kann man also präzise isolieren, welche Datei es ist und
welche Zeile, und der Klick auf "show" liefert genau diese Datei
in der Anzeige, positioniert auf genau die Zeile.
Pfiffige werfen jetzt ein: Aber zwei gleichlautende Flips dürfen dann
nicht in derselben Zeile stehen! Doch, wenn diese genügend geschickt
gestaltet ist. Denn var zc liefert die Textzeile, aber an der
exakten Stelle, wo geklickt wurde, ist __ eingefügt, daher kann
der FLEX dann genau herausfinden, welcher von mehreren Flips angeklickt
wurde. Wie gesagt, die Zeilengestaltung muß dafür gut durchdacht
sein, damit man mit Manipulationsbefehlen das Kriterium herausfischen
kann, um das es geht.
Wir denken, das neue xgrep wird sehr populär werden, auch bei
jenen, die sich mit FLEX weiter nicht befassen.
Die bisherige Verlautbarungssuche wird auch hinsichtlich
Schnelligkeit übertroffen.
Mehr Informationen über die Mailingliste Allegro