Variable in FLEX

 

Interne Variable (kurz iV)   avanti

Diese gehört zu den wichtigsten Elementen des FLEX-Konzepts!

Die iV ist eine temporäre Textvariable (Zeichenfolge), die nur so lange besteht, bis sie durch einen weiteren Befehl überschrieben wird. Das geschieht z.B. durch die Befehle  ask ,  date  und vor allem   var . Die Ergebnisse dieser und anderer Befehle stehen automatisch in der iV und können direkt danach benutzt werden.

Die iV wird immer nur indirekt angesprochen, nicht mit einem Namen - das vereinfacht einiges.

Man verwendet die interne Variable in der Regel sofort z.B. in einem   insert -Befehl (z.B.  insert #98 , um den iV-Inhalt in das Datenfeld #98 zu kopieren).

Bei vielen Befehlen wird, wie gesagt, automatisch etwas in die iV geschrieben, das steht jeweils in der Beschreibung der Befehle. Das Befehlsergebnis kann entweder mit dem nächsten Befehl direkt verwendet werden, denn viele Befehle nehmen als Default-Argument automatisch den iV-Inhalt, so z.B.  find , oder man speichert den Inhalt mit  ins #uxy  in einer Uservariablen #uxy, siehe unten.

 

Beispiel:

Die Ergebnismenge zu dem Personennamen bilden, der im Feld #40 des aktuellen Satzes steht:

var "per " #40   // Den Namen in die iV kopieren, mit "per " davor

find             // in der iV steht nun ein Suchbefehl, führe diesen aus

 

 

Interne Zahlenvariable (kurz -->  iZ ),    avanti

Interner Zähler ,    avanti

Das sind zwei Zahlen, die für Berechnungen verwendet werden können. Sie werden zu Beginn jedes FLEXes auf 0 gesetzt. Der Unterschied: z ist eine ganze Zahl, Z eine Dezimalzahl. Ansonsten gibt es ab V27.2 den komfortablen Rechenbefehl  eval , mit dem beliebige arithmetische Ausdrücke ausgewertet werden können.

In var-Befehlen werden diese Zahlen durch Z bzw. z angesprochen, um die Werte in eine Zeichenfolge einzubauen.

Wenn einer der Werte länger aufbewahrt werden soll, muß man ihn in einer Uservariablen speichern (s.u.). Das geht so:

var Z

ins #uxy

   Zurück in die iZ bekommt man den Wert mit

var #uxy

Z=

 

Sondervariable   avanti

Es gibt eine Anzahl von Variablen, die man in den Befehlen var und write verwenden kann. Diese sind im Text über  cstrings  beschrieben.

 

Uservariable   avanti

Will man die iV länger aufbewahren, dann

mit  ins #uxy  in die  Uservariable #uxy kopieren. Und  

mit  var #uxy  von dort später wieder zurück in die iV.

Die Namen der  " Nutzervariablen " sind auf 2 Zeichen beschränkt! x und y können aber beliebige Zeichen sein.  #uab  ist nicht dasselbe wie  #uaB, #uAb oder  #uAB, das sind vielmehr 4 unabhängige Werte!

Warum aber die Einschränkung auf  2buchstabige Namen?  Diese Variablen sind zugleich innerhalb der Export- und Indexparameter verfüg- und verwendbar. Wenn dort eine solche Variable gesetzt wird, etwa in den Anzeige- oder Indexparametern, hat man sie anschließend auch in FLEX zur Verfügung.

Die mitgelieferten FLEXe nutzen i.d.R. die Variablen  #uvX   (v = Kleinbuchstabe, X = Großbuchstabe).

 

Freie Variablen

Die Windowsprogramme - nicht avanti - können neben den Uservariablen auch noch beliebig viele Zeichenfolgen in sog. Freien Variablen speichern. Diese haben Namen, die mit $ beginnen und länger als zwei Zeichen sein können! Über die Einzelheiten informiert eine  eigene Dokumentation .

 

Mehrfachleerzeichen   avanti

Hinweis: um Mehrfach-Leerzeichen innerhalb des iV-Textes zu beseitigen --> Befehl  spaces