[Allegro] Fortbildung 13.3: Wir machen eine neue FLEX-Datei
Bernhard Eversberg
ev at biblio.tu-bs.de
Mo Jun 20 07:49:13 CEST 2005
14-03-2005
Fortbildungskurs 20-06-2005
13 Sonstige Fragen
13.3 Wir machen eine neue FLEX-Datei
[Dieser Punkt war schon knapp in Lektion 9.2 angesprochen worden, jetzt
machen wir das viel ausführlicher. Zur Wiederholung: h flexw geben]
Nachdem wir nun einigermaßen wissen, was FLEX eigentlich ist, steht
vielleicht mancher vor den Fragen: "Aber wie kann ich denn eine eigene
FLEX-Datei machen, und wie kann ich sie dann in meine Arbeit
integrieren?"
Diese Lektion soll deshalb zeigen, Schritt für Schritt, wie man es
anstellt.
Um ein wirklich brauchbares Beispiel zu haben, nehmen wir mal diese
Aufgabe: Ein FLEX soll die momentane Ergebnismenge durcharbeiten
und dabei in jeden Datensatz ein Feld #31 mit einem neuen Schlagwort
einfügen. Dabei kann es zwei Varianten geben:
A) Jeder Satz bekommt dasselbe Schlagwort
B) Bei jedem Satz wird der Nutzer nach einem neuen SW gefragt.
Hier das Rezept, ausführen und testen am besten an der DemoBank!
Die FLEXe sind hinterher auch an der eigenen Datenbank einsetzbar,
wenn man die Datei im eigenen Startverzeichnis speichert, was
automatisch der Fall ist. (Oder im FLEX- oder Programmverzeichnis,
falls man dort das Recht hat.) Empfehlung: ins Datenverzeichnis legen,
wenn der FLEX im Netz für alle ausführbar sein soll.
1. Neue Datei anlegen:
Alt+h (Füllhorn öffnen)
Klicken auf "Neue Textdatei schreiben" (Mitte rechts)
Anzeigefeld wird leer und breit. (Mit F11 schmal machen, wenn Sie
wollen. Das hat keine Wirkung auf den Inhalt!)
2. In das Anzeigefeld hinein schreiben wir den Text des neuen FLEXes.
Kopieren Sie die folgenden Zeilen von hier weg in das Anzeigefeld:
(Alle Zeilen, die zwischen den Strichen stehen! Tip: Zuerst die
Schreibmarke an den Anfang setzen, dann Shift-Taste runter und fest-
halten, Pfeil-nach-unten-Taste so lange, bis man bei der unteren
Zeile mit ---- angekommen ist, dann Strg+c - dann ist der Inhalt in
der Zwischenablage! In das Anzeigefeld klicken und Strg+v.)
---------------------------------------------------------------------
SW-NEU.FLX : Neues Schlagwort in jeden Satz der Erg.Menge einfuegen
2005-03-14 Variante A: Dasselbe neue SW fuer alle Saetze
Zuerst das gewuenschte neue Schlagwort abfragen:
ask Wie soll das Schlagwort lauten?
if "" end
und in #uSW speichern
ins #uSW
Gibt es ueberhaupt eine Erg.Menge? Wenn nein -> :keine
if empty jump keine
Ersten Satz der Erg.Menge laden
first
Folgende Schleife wird fuer jeden Satz ausgefuehrt:
:schleife
Schlagwort in #31 einsetzen, aber wenn da schon was steht,
mit "; " hinten anhaengen!
if #31 var #31 "; " #uSW
if not #31 var #uSW
ins #31
und Satz wieder speichern:
put
naechsten Satz laden:
next
Wenn es noch einen gab, dann Sprung nach :schleife
if yes jump schleife
Sonst ist Schluss:
jump schluss
:keine
Keine Erg.Menge, dann nur den momentanen Satz verarbeiten
Neues SW an #31 anhaengen
if #31 var #31 "; " #uSW
if not #31 var #uSW
ins #31
und Satz wieder speichern
put
:schluss
Den momentanen Datensatz noch neu anzeigen
show rec
disp
mes Erledigt!
--------------------------------------------------------
--- >>> Variante B unten als Anhang! <<<---------------
3. Diesen Text speichern
Alt+s oder den Button [Speichern], dann
den Namen sw-neu.flx im Feld "Dateiname" eingeben
4. Den FLEX ausprobieren
Im Schreibfeld eingeben:
X sw-neu
Auf diese Weise kann man jede FLEX-Datei jederzeit starten!
(Ob dabei immer was sinnvolles passiert, das kommt drauf an...)
5. Modifizieren (>>SuperTip!<<)
Diese FLEX-Datei kann jetzt benutzt werden, um andere neue FLEXe
zu bauen! Denn der Hauptteil, wo die Aktion eigentlich passiert,
das sind nur die Zeilen:
if #31 var #31 "; " #uSW
if not #31 var #uSW
ins #31
und Satz wieder speichern
put
Nur diese Zeilen braucht man zu ändern, wenn man eine andere
Aktion mit einer Ergebnismenge machen will! Alles andere kann
genauso übernommen werden.
6. Wie macht man es, das Modifizieren? So:
h sw-neu.flx eingeben, Text erscheint
Aenderungen ausfuehren
Mit Alt+s wieder speichern, dabei den Namen ändern, wenn es eine
neue Variante sein soll - die alte Datei wäre ja sonst weg!
7. FLEX auf einen Flip-Button legen
a) Nur für die Dauer der Sitzung
Eingeben: x flip 1&1: SW-NEU=X sw-neu
Schon kann man mit Alt+1 oder Druck auf Button 1 den neuen
FLEX starten
b) Für die längere Dauer: Einbau in die Datei _start.flx
Eingeben: h _start.flx
Man sieht, daß es da schon acht Flip-Befehle gibt.
Einen davon muß man sich aussuchen, den man nicht braucht und
durch den eigenen ersetzen kann. Sagen wir, die Nummer 3.
Dann ersetzen wir die Zeile "flip 3 ..." mit der folgenden;
flip 3&3: SW-NEU=X sw-neu
Auf dem Button 3 wird dann stehen: 3: SW-NEU
und die 3 wird unterstrichen sein, d.h. mit ALt+3 ausloesbar.
8. Einbau in eine RTF-Hilfedatei
8.1. Dazu legen wir wieder eine neue Datei an, wie oben Punkt 1
8.2. Folgendes hineinschreiben: (was zwischen den Strichen steht)
---------------------
Eigenes Menü
Neues Schlagwort einsetzen
Jeden Datensatz der Ergebnismenge mit einem neuen Schlagwort versehen
---------------------
8.3. Dann die drei Wörter "Neues Schlagwort einsetzen" markieren
8.4. Rechte Maustaste, Funktion "Flip"
8.5. Es wird eine Zeile unten erscheinen, die so aussieht;
?Neues Schlagwort einsetzen=
8.6. Hinter das = schreibt man X sw-neu
8.7. Mit Alt+s speichern, und zwar unter dem Namen e-menu.rtf
8.8. Aufrufen mit h e-menu
Wenn der Flip nicht funktioniert:
8.9. Im Schreibfeld eingeben Dos edit e-menu.rtf
Man sieht dann vielleicht eine Zeile, die so aussieht;
\par \f0 ?Neues Schlagwort einsetzen=\f1 X e-menu
Sie muß aber so aussehen:
\par ?Neues Schlagwort einsetzen=X e-menu
Nehmen Sie die überflüssigen Elemente \f0 und \f1 heraus,
dann mit Alt+d und "Beenden" den Text wieder speichern.
Wenn das geschafft ist, können Sie in Zukunft den neuen FLEX immer
über dieses Menü aufrufen, also h e-menu eingeben, dann klicken.
Das neue Menü ist eine RTF-Textdatei. Die können Sie mit weiteren
Menüpunkten nach demselben Rezept immer weiter ausbauen:
8.10. h e-menu.rtf eingeben (also mit .rtf)
Dann sieht man auch die Flip-Zeilen mit dem ? am Anfang, die
man nicht sieht, wenn man nur h e-menu eingibt
8.11. Neue Menüpunkte einbauen
8.12. Schritte 3.-6. für jeden neuen Menüpunkt ausführen
8.13. Schritte 7.-9. zum Testen ausführen
Und jetzt wollen Sie dasselbe machen, aber nicht mit #31, sondern mit
einer anderen Kategorie? Das wäre eine gute Übung! (siehe Punkt 6.)
-----------------------------------------------------------------------
ANHANG
------
Variante B: Suum cuique : Jedem Satz sein eigenes Schlagwort
---------------------------------------------------------------------
SW-NEUB.FLX : Neues Schlagwort in jeden Satz der Erg.Menge einfuegen
2005-03-14 Variante B: Anderes SW fuer jeden Satz
Gibt es ueberhaupt eine Erg.Menge? Wenn nein -> :keine
if empty jump keine
Ersten Satz der Erg.Menge laden
first
Folgende Schleife wird fuer jeden Satz ausgefuehrt:
:schleife
Den Satz anzeigen
sho rec
disp
Das gewuenschte neue Schlagwort abfragen:
(Wenn #uSW schon belegt, erscheint es als Vorgabe)
ask Wie soll das Schlagwort fuer diesen Satz lauten?=#uSW
if "" end
und in Hilfsvariable #uSW einfuegen
ins #uSW
Schlagwort in #31 einsetzen, aber wenn #31 schon besetzt, dann
das neue hinten mit "; " anhaengen
if #31 var #31 "; " #uSW
if not #31 var #uSW
ins #31
und Satz wieder speichern:
put
naechsten Satz laden:
next
Wenn es noch einen gab, dann Sprung nach :schleife
if yes jump schleife
Sonst ist Schluss:
jump schluss
:keine
Das gewuenschte neue Schlagwort abfragen:
ask Wie soll das Schlagwort fuer diesen Satz lauten?=#uSW
if "" end
und in #uSW speichern
ins #uSW
dann an #31 anhaengen
if #31 var #31 "; " #uSW
if not #31 var #uSW
ins #31
und Satz wieder speichern
put
:schluss
Den momentanen (also letzten) Datensatz noch neu anzeigen
show rec
disp
mes Erledigt!
--------------------------------------------------------
Wenn man beide FLEXe braucht, muß man ihnen natürlich verschiedene
Namen geben. Und in den Punkten 7. und 8. jeweils den richtigen
Namen verwenden.
Übung: Denken Sie sich weitere Varianten aus! Z.B., eine Kategorie
zu beseitigen oder ihr eine andere Nummer zu geben.
>>SonderTip: Das erste Wort einer FLEX-Zeile ist immer ein Befehlswort
(Ausnahmen: Sprungziele! Die fangen mit : an. Und die eingerückten
Zeilen sind nur Kommentare.)
Um zu einem Befehl die Doku zu finden: h xa geben und den
Befehl auf der Liste anklicken. (Befehlswörter sind oft verkürzt auf
die ersten drei oder vier Buchstaben.)
Mehr Informationen über die Mailingliste Allegro