FLEX : Die wichtigsten Befehle 
`Weitere Beispiele`  --  `Gesamte Befehlsliste`  

%=#uX9x var "x " zc\if ="x  " end\sho iv\exec% Die Beispiele in diesem Text können Sie alle sofort ausprobieren: 
%=x set db% Schreibmarke in eine Befehlszeile setzen, Alt+9 drücken.  (Gleichzeitig Alt-Taste und die Ziffer 9 - nicht die Taste F9!) 
Sie könnten  die Zeile auch in das Schreibfeld kopieren, mit "x " davor, und Enter drücken!  Um dies zu ersparen, wurde ein besonderer FLEX in diesen Text eingebettet, und der wird mit Alt+9 ausgelöst. 

	ALSO  :  Zeile anklicken, z.B. die unter 1., dann  Alt+9  tippen: das löst den FLEX aus  - die gewählte Zeile wird dann kopiert und ausgeführt. 

	ACHTUNG:   Weiter unten kommt eine `genauere Beschreibung` dieser Beispiele. 

 In  rot sieht man die eigentlichen Befehle. Der Backslash ist das Trennzeichen zwischen den Befehlen, wenn man sie auf einer Zeile hintereinander eingibt.

   1. Eine Meldung anzeigen (Befehl message, kurz  mes - der darauf folgende Text wird angezeigt ) 
mes Dieser Text erscheint in einer Meldungs-Box 

   2. Dieselbe Meldung zuerst mit Befehl   var  als interne Variable erzeugen, diese dann anzeigen 
var "Dieser Text erscheint in einer Meldungs-Box"\mes
Sehr wichtig:  Dieser Mechanismus gilt für die meisten Befehle: wenn hinter dem Befehlswort (also hier mes) nichts steht, wird als Ersatz 
der Inhalt der internen Variablen genommen. Und dieser wird meistens, wie hier, vorher mit  var  erzeugt!

   3. Eine Meldung erzeugen, die auch Elemente des momentanen Datensatzes enthält: 
var "Der Titel ist: " #20 n "Das Buch erschien " #76\mes
 
   4. Eine Meldung mit `internen Variablen` erzeugen: D ist das Datenverzeichnis, t die Anzahl Datensätze 
var "Die Datenbank liegt auf " D " und hat " t " Saetze"\mes
  
   5. Den Nutzer mit Befehl  ask  zu einer Eingabe auffordern und die Eingabe (sie steht dann in der internen Variablen!) als Meldung anzeigen 
ask Bitte Eingabe\mes

   6. Dasselbe, aber Fehlermeldung, wenn nichts eingegeben wurde 
ask Bitte Eingabe\if "" mes Keine Eingabe\if not "" mes

   7. Die Nutzereingabe in eine Hintergrundvariable kopieren, diese dann anzeigen 
ask Bitte Eingabe\ins #uva\var "Eingegeben wurde " #uva\mes 

   8. Eine Ja/Nein-Frage stellen (Befehl  yesno ) und die Reaktion des Nutzers auswerten 
yesno Haben Sie was gelernt?\if no mes Schade\if yes mes Gut, dann machen Sie weiter 

   9. Prüfen, ob ein eingegebener Wert kleiner als der in #uwx ist 
ask Geben Sie eine Zahl ein\Z=\var #uwx\Z-\var Z\if Z<0 mes OK, ist kleiner\if not #uwx mes #uwx fehlt! 

  10. Eine Datei anzeigen, hier soll es die Datei  quick.vw  sein, und die vom Nutzer ausgewählte Zeile verwerten 
Aresqa help/quick.vw\ins #uaz\var "Ihre Wahl ist " #uaz\mes 

Genaue Beschreibung der Beispiele 
Auch hier können Sie die Zeilen mit Alt+9 auslösen! 

   1. Eine Meldung anzeigen 
mes Dieser Text erscheint in einer Meldungs-Box 

Hinter dem Befehlswort "message" (verkürzbar bis auf 3 Buchstaben, also "mes"), kann man einen beliebigen Meldungstext angeben. Dieser Text wird dann in einer Message-Box gezeigt, die nach Druck auf [OK] oder die Enter-Taste wieder verschwindet. Was aber macht "mes", wenn kein Text dahinter steht? 

   2. Dieselbe Meldung zuerst mit   var  als interne Variable ( iV ) erzeugen, diese dann anzeigen. Denn wenn hinter  mes nichts steht, wird der Inhalt der iV angezeigt.
var "Dieser Text erscheint in einer Meldungs-Box"\mes

Der Sinn des Befehls  variable (verkürzbar bis auf  var) ist es, eine Zeichenkette zusammenzustellen, mit der anschließend vieles gemacht werden kann. Sie steht dann in einer "internen Variablen", kurz iV genannt. Das Einfachste ist, diese iV-Zeichenkette dann anzeigen zu lassen. Der Befehl  message  ohne etwas dahinter macht genau das: anzeigen, was in der Variablen iV steht. 

   3. Eine Meldung erzeugen, die auch Elemente des momentanen Datensatzes enthält: 
var "Der Titel ist: " #20 n "Das Buch erschien " #76\mes

Jedes Datenfeld kann in eine FLEX-Ausgabe einbezogen werden, indem man im var-Befehl einfach die Kategorienummer angibt, hier #20 und #76. Merke: Text muß zwischen Anführungszeichen, die Kategorienummern aber nicht! Beides kann sich, wie man sieht, abwechseln. Soll es übersichtlich bleiben, schreibt man mehrere solche Befehle untereinander. Eine neue Zeile wird durch das n hinter der #20 ausgelöst. 

   4. Eine Meldung mit internen Variablen erzeugen 
var "Datenbank liegt auf " D " und hat " t " Saetze"\mes
  
Es gibt eine große Zahl von `internen Variablen` mit festgelegten Bedeutungen, die man in einem var-Befehl verwenden kann. Die interne Variable D enthält den Pfadnamen (auch "Ordner" oder "Verzeichnis" genannt) wo sich die Datenbank befindet, die Variable t enthält die momentane Gesamtzahl von Datensätzen. 
Merke: Alles, was hinter var zwischen Anführungszeichen steht, wird unverändert als Text übernommen. Was außerhalb von Anführungszeichen steht, in diesem Fall also D und t, wird als interne Variable interpretiert und in den Text eingesetzt. Insgesamt entsteht so ein zusammengesetzter Text, der aktuelle Angaben enthalten kann. Dadurch wird der Befehl var enorm FLEXibel.

   5. Den Nutzer zu einer Eingabe auffordern, die Eingabe (sie steht in der internen Variablen!) dann als Meldung anzeigen 
ask Bitte Eingabe\mes

Aus einem FLEX heraus kann man dem Nutzer Fragen stellen. Der einfachste Befehl dazu ist "ask". Die hinter "ask" stehende Zeichenkette (bzw., wenn da keine steht, der Inhalt der iV !) wird über einer Eingabezeile angezeigt. Der FLEX wartet dann, bis der Nutzer "Enter" oder "Esc" tippt. War es Enter, wird die eingegebene Zeichenkette in der iV stehen. Mit "mes" wird deren Inhalt angezeigt, wie beim Beispiel 3. 

   6. Dasselbe, aber Fehlermeldung, wenn nichts eingegeben wurde 
ask Bitte Eingabe\if "" mes Keine Eingabe\if not "" mes

Hier wird nach der Eingebe geprüft, ob wirklich etwas eingegeben wurde! Die Formulierung  if ""  prüft, ob die iV nichts enthält (Nichts = leere Zeichenkette, dargestellt durch "", also zwei Anführungszeichen ohne etwas dazwischen). Stimmt dies, wird der nachfolgende Befehl ausgeführt, also die Meldung "Keine Eingabe" angezeigt. Der nächste Befehl, if not ""  macht das Umgekehrte: Das Wort "not" dreht die Logik um, der nachfolgende Befehl "mes" gibt die eingegebene Zeichenkette aus, wie im Beispiel 4. 

   7. Die Nutzereingabe in eine Hintergrundvariable kopieren, diese anzeigen 
ask Bitte Eingabe\ins #uva\var "Eingegeben wurde " #uva\mes 
 
In diesem Fall wird das, was der Nutzer eingegeben hat, zuerst in eine Variable #uva kopiert. Dann wird in einem "var"-Befehl der Text "Eingegeben wurde " mit dem Inhalt dieser Variablen zu einer Zeichenkette zusammengesetzt. mes zeigt diese dann wieder an. Die Variablen vom Typ #uxy (mit zwei beliebigen Zeichen x und y, und vorn immer #u) kann man freizügig überall in einem FLEX verwenden, d.h. in var-Befehle einbauen und durch "ins"-Befehle mit Inhalten füllen. Dieselben Variablen können in den Index- oder Exportparametern auftreten, daher kann es Wechselwirkungen oder Nebenwirkungen geben. Empfohlen wird, um das zu vermeiden, daß man die Zeichen xy nicht ganz beliebig wählt, sondern das einer der beiden ein Großbuchstabe ist. In den Parameterdateien werden nämlich fast immer ausschließlich Kleinbuchstaben verwendet. 

   8. Eine Ja/Nein-Frage stellen und die Reaktion des Nutzers auswerten 
yesno Haben Sie was gelernt?\if no mes Schade\if yes mes Gut, dann machen Sie weiter 

Der Befehl "yesno" mit nachfolgendem Text zeigt diesen Text in einer JA-NEIN-Box an und wartet auf Eingabe von j, n oder Esc (bzw. Druck auf die entsprechenden Buttons. Mit Hilfe des if-Befehls kann man danach prüfen, welche dieser Reaktionen es war: "if no" gilt, wenn "n" geantwortet, "if yes" gilt, wenn "j" gedrückt wurde, und "if cancel" gilt, wenn Esc betätigt wurde. Die "yesno"-Frage bietet also tatsächlich drei Möglichkeiten der Reaktion. 
Hinweis:  ab V25 kann man mehrere Befehle hinter einen if-Befehl setzen, diese müssen dann durch Semikolon getrennt sein.

   9. Prüfen, ob ein eingegebener Wert kleiner als der in #uwx ist 
ask Geben Sie eine Zahl ein\Z=\var #uwx\Z-\var Z\if Z<0 mes OK, ist kleiner\if not #uwx mes #uwx fehlt! 

Die eingegebene Zahl wird zuerst in die `interne Zahl` Z kopiert, dann wird der Wert von #uwx davon subtrahiert. War die eingegebene Zahl Z kleiner als die in #uwx, dann muß die Differenz kleiner als Null sein. Diese Arbeitsweise ist nötig, weil man nicht direkt so etwas wie  if Z<#uwx  schreiben kann, sondern hinter if Z<  muß eine richtige Zahl  stehen. 

  10. Eine Datei anzeigen und die vom Nutzer ausgewählte Zeile verwerten. Als Beispiel soll es die Datei quick.vw sein: 
Aresqa help/quick.vw\ins #uaz\var "Ihre Wahl ist " #uaz\mes 

Die Datei quick.vw, auf dem Hilfeverzeichnis liegend, wird im aresqa-Fenster gezeigt. Das große A hat zur Folge, daß die Datei nicht bearbeitet werden kann! Mit Enter wird dann das Fenster geschlossen und die zuletzt markierte Zeile landet in der iV, wird dann in #uaz kopiert und diese mit dem Hinweis "Ihre Wahl ist " angezeigt. 

Anmerkungen
Die meisten FLEXe werden unübersichtlich, wenn sie in einer einzelnen Zeile dargestellt werden. Man hat daher die Möglichkeit, den FLEX-Text in eine Datei zu schreiben, wobei dann jeder Befehl eine eigene Zeile hat. So wird es viel besser überschaubar. Hat man eine Datei xyz.flx angelegt, kann die mit eingabe von X xyz aktiviert werden, d.h. der darin stehende FLEX wird dann ausgeführt. Der Aufruf einer FLEX-Datei kann eingebaut sein in einen Hilfetext, er kan aber auch hinter einem der Flip-Buttons, links unter diesem Textfeld, versteckt werden. Wie das alles gemacht wird, steht in der Anleitung `So erstellt man FLEXe`. 
Hier wurden nur ganz wenige, sehr wichtige Befehle gezeigt. Es gibt eine `Liste aller Befehle`, in der Sie jeden einzelnen anklicken können, um genau zu erfahren, wofür er gut ist. 

?internen Variablen=h xcstring=Interner Sondervariablen  
?So erstellt man FLEXe=h flex=So erstellt man FLEXe 
?Liste aller Befehle=h xa 
?Gesamte Befehlsliste=h xa 
?genauere Beschreibung=h =Genaue Beschreibung 
?interne Zahl=h xiz 
?Weitere Beispiele=h mbtest