|
|
Themenkomplex |
Sprachelemente |
Funktion |
VAR |
Kurz |
Definiert eine oder eine Gruppe von Variablen |
Syntax |
VAR Bezeichner {, Bezeichner} : Typ [= Ausdruck] |
Parameter |
Typ:
BYTE (Zahl 0..255)
INTEGER (Zahl -2147483648 bis +2147483647)
REAL (Zahl Fließkomma mit ca. 18 sig. Stellen)
CHAR (1 Zeichen)
STRING (max 255 Zeichen)
TBITS (1 Bit)
MARKS (Markierungsliste)
Von jedem dieser Grundtypen können auch Arrays mit max 10 Dimensionen definiert werden:
VAR Matrix : REAL[10,10]
Der erste Feldindex ist immer 0
Ausdruck: arithmetischer Ausdruck des angegeben Typs.
|
Ergebnis |
|
Siehe auch: |
|
Beschreibung |
Durch die Angabe eines Ausdrucks werden alle Variablen der Liste mit diesem Wert initialisiert.
Derzeit (Version 6.2.6) können keine Felder auf diese Weise initialisiert werden. Sie werden immer mit 0 bzw. dem Leerstring initialisert.
Ist kein Ausdruck angegeben, so werden die Variablen mit folgenden Werten initialisiert:
BYTE, INTEGER, REAL : 0
STRING, CHAR : ''
MARKS :
TBITS : Bit zurüchgesetzt
Initialiserung
Der Ausdruck wird nicht zur Compilierzeit, sondern zur Laufzeit(!) berechnet und zugewiesen. Das bedeutet wiederum, dass hier auch selbstdefinierte Funktionen verwendet werden dürfen. Dazu ein Beispiel:
MODULE counter; // location: lib/counter.mod
PROCEDURE Init : REAL;
VAR result, ec_before : INTEGER;
ec_before:=getpara('ec'); setpara('ec 1');
result:=opendb("database/counter/counter.dat","",0,15);
setpara('ec '+str(ec_before));
IF result=0 THEN
cgiwriteln('content-type: text/html');
cgiwriteln('');
cgiwriteln('database-error: '+TDB_ErrorStr(TDB_LastError));
HALT
ELSE
RETURN result;
END
ENDPROC;
VAR db : INTEGER = Init;
Greift nun ein anderes Programm auf dieses Modul zu, so steht bereits nach
USES counter.mod;
mit counter.db ein gültiger (und zum Schreiben geöffneter) Tabellenhandle (der Tabelle database/counter/counter.dat) zur Verfügung.
|
|
|
|