Redaktion CHIP des Vogel-Verlages Würzburg in Zusammenarbeit mit der Firma Borland
, die die Programmiersprache TurboPascal entwickelt hat. Im Jahre 1994 haben die
Entwickler "tdb" aus dem Vogel Verlag herausgelöst und, aus organisatorischen Gründen,
eigenständige Firmen in München, Passau, Hamburg und Schwabach gegründet.

tdb heißt...

"tdb" bedeutet Turbodatenbank und entstand durch die Verschmelzung der beiden Begriffe
"TurboPascal" und "Datenbank". tdb war von Anfang an als so genanntes OpenSource-Projekt
angelegt, was damals als große Innovation galt: Der Quellcode war frei und für jedermann
zugänglich. Heute hat sich dieser OpenSource-Gedanke bei der breiten Masse der
EDV-Anwender durchgesetzt.

tdb muss nicht fremd gehen...

Die tdbengine kommt ohne jegliche Fremdtools aus. Sie beinhaltet neben Datenbank-Engine,
CGI-Interpreter und Compiler sämtliche Tools, die man zum Anlegen und Verwalten einer
Datenbank braucht, sowie einen Editor zum Erstellen der Module. Die Einrichtung auf dem
Webserver (entweder Apache unter Linux/Windows oder Internet Information Server (IIS)
von Microsoft) ist innerhalb von Minuten geschehen.

tdb kann 18 Sprachen...

Somit verfügt die Firma tdb außer über eine reichhaltige Erfahrung bei der Erstellung von
Kunden-Applikationen auch über ein tiefes technisches Verständnis, da nicht nur Endapplikationen
entwickelt werden, sondern auch die komplette darunter liegende Datenbank-Engine. Mehrsprachige
Webapplikationen haben wir bereits in 18 Sprachen realisiert, u. a. auch in schwierigeren
Sprachen wie Arabisch und Russisch.

tdb ist überall...

"tdb" ist heute das älteste noch lebende OpenSource-Projekt in Deutschland. Wann immer einer Adresse
im Internet die Endung .prg aufweist, steckt tdb dahinter. Das Unternehmen koordiniert und pflegt
die mittlerweile weltweite OpenSource-Datenbank tdbengine (www.tdbengine.org) und verwaltet den Quellcode.

18.04.2016, tdb-dojo: BorderContainerRack
ein BorderContainerRack ist ein Object, welches drei Inhaltsbereiche definiert.
Einen Top, einen Center und einen Bottombereich.
Jeder Bereich benötigt wiederum die Angabe, welche Klasse als Vorlage benutzt wird.
Es sind alle Layoutklassen von Dojo sowie tdb-dojo zulässig.
Innerhalb eines Bereiches kann man auch wiederum einen BorderContainerRack definieren.
Der Vorteil von  BorderContainerRack ist, dass hier die Bereichsgrößen automatisch vergeben werden und jeder Bereich korrekt in
das äußere Objekt eingebunden wird.

 
Var  bc = new BorderContainerRack({
     
     topCreateInfo : {
         mid : "dijit/layout/ContentPane",
         id : "A"
     },
     
     centerCreateInfo : {
         mid : "tabBAse/layout/BorderContainerRack",
         design : sidebar,
         topCreateInfo : {
             mid : "dijit/layout/ContentPane",
             region : left,
             style : {"width":"50%"}
         },
         centerCreateInfo : {
             mid : "tdbBase/dgird/GridTypeA",
             columnStructure: [hier Spaltendefinition einfügen]
         },
         id : "B"
     },
     
     bottomCreateInfo : {
         mid : "dijit/layout/ContentPane",
         id : "C"
     }
 });
21.03.2016, tdb-dojo : Nachladen der Menüstruktur loadMenuStu
Existiert bereits ein Objekt vom Typ tdbBase/menu/MainMenuWithDisplay, so kann man das Menü aktualisieren.

Beispiel:
Das Menü wurde definiert:
                        mid : "tdbBase/menu/MainMenuWithDisplay",
                        id : "meditHR",
                        region : "center",
                        menuSource : "href:hotel_rechnung.prg?act=getSubMenu&id="+Lfd
 
 das Nachladen geschieht dann über:
                            var m = registry.byId("meditHR");
                            m.loadMenuStucture("href:hotel_rechnung.prg?act=getSubMenu&id="+Lfd);
10.03.2016, tdb-dojo : grid / reloadStoreData

mit dem Erstellen eines Tabellengrides werden auch die Daten erstmalig geladen.
Dies erfolgt durch die  Anweisung dataOfGridStore

                            mid : 'tdbBase/dgrid/GridTypeC',
                            id : gridID,
                            usedIdProperty  : "Lfd",
                            dataOfGridStore : "todo.prg?act=getData&id_j="+id_j,
                            style : {"height":"100%"},
                            "class" : "mbColumns",rowsPerPage: 25,
                            columnsStructure: [
                                { label: "Lfd", field: "Lfd",hidden:true },
                                { label: "Buch-ID", field: "ID"},
                                { label: "Gruppenname", field: "Gruppenname"},
                                { label: "Termin", field: "Termin"},
                                { label: "Aufgabe", field: "Aufgabe"},
                                { label: "Hotel", field: "Hotel"},
                                { label: "Zimmer", field: "Zimmer"},
                                { label: "Bearbeiter", field: "Bearbeiter"},
                                { label: "Angelegt am", field: "CreatedOn"}
                            ],
                            myRowSelected : function( evt ){
                                var row = this.row(evt),storeItem;
                          storeItem = this.store.get( row.id );
                          var _this=this.id;
                          dlgEditBuchung(storeItem.ID,storeItem.Gruppenname,"gridBuchung","");
                        }

 
 
will man die Daten zu einem bestehenden Grid neu laden, so benutzt man die Funktion reloadStoreData()
var g=registry.byId(gridID);
g.reloadStoreData();


Der bei dataOfGridStore hinterlegte Serveraufruf wird dabei erneut gestartet und das Grid aktualisiert.
Sollte der Prozess aus noch dataOfGridStore  laufen, weil z.B. die Datenmenge größer ist, und wird die Funktion reloadStoreData() zwischenzeitlich  aufgerufen, so wird diese nicht ausgeführt, um eine Kollision zu vermeiden.
10.03.2016, US National Library of Medicine würdigt Arbeit
Artikel zur Arbeit von Prof. Dr. Trefz, Dr. Frauendienst und Hermann Götz zu:

Untargeted metabolomic analysis for the clinical screening of inborn errors of metabolism

Zu finden unter:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4626538/
09.03.2016, tdb-dojo : grid / preFilter
In einem Tabellengrid werden die Tabellenspalten mit Inputfeldern angezeigt.
Über das Inputfilter  kann man in der Spalte einen Filter aktivieren.
mit preFilter kann man bei der Definition eines Grids einen Filter vorbelegen.

Beispiel für die Definition eines Grids mit preFilter
mid : 'tdbBase/dgrid/GridTypeC',
id     : gridID,
dataOfGridStore : "reservierung.prg?act=getData&mode="+mode,
"class" : "mbColumns",rowsPerPage: 100,
columnsStructure: [
                { label: "Lfd", field: "Lfd",hidden:true },
                { label: "Status", field: "Status" },
                { label: "Termin", field: "Termin"  },
                { label: "Gruppenname", field: "Gruppenname"  },
                { label: "Hotel", field: "Hotel"  },
                { label: "Zimmer", field: "Zimmer"  },
],
preFilter : {"Status":"reservieren"}

natürlich kann man auch per Script die Inputfelder befüllen:

mid : "tdbBase/menu/MainMenuWithDisplay",
menuSource : [
    {"label":"Reservierungsanfrage",
        onClick: function() {
        g = registry.byId(gridID);
        g.filterInputWidgets["Status"].set("value","reservieren");
    },menuType: 'MenuItem'},
    {"label":"Reserviert",
        onClick: function() {
        g = registry.byId(gridID);
        g.filterInputWidgets["Status"].set("value","reserviert");
    },menuType: 'MenuItem'},
    {"label":"Stornierungsanfragen",
        onClick: function() {
        g = registry.byId(gridID);
        g.filterInputWidgets["Status"].set("value","stornieren");
    },menuType: 'MenuItem'},
    {"label":"Storniert",
        onClick: function() {
        g = registry.byId(gridID);
        g.filterInputWidgets["Status"].set("value","storniert");
    },menuType: 'MenuItem'},
    {"label":"Abgelehnt",
        onClick: function() {
        g = registry.byId(gridID);
        g.filterInputWidgets["Status"].set("value","abgelehnt");
    },menuType: 'MenuItem'}
]

 
 
08.03.2016, tdb-dojo : Auswahlfeld mit Suche im Text
Ein Selectfeld reagiert  auf eine Eingabe so, dass der eingegebene Begriff die möglichen Optionen einschränkt.
Dabei erfolgt die Einschränkung der Optionlist mit der Eingabe von links her gesehen.
Wenn man jedoch möchte, dass die Eingabe eine Option selektiert, die irgendwo im Text der Option steht, so geht man wie folgt vor:

Im Formular muss stehen
<select style="width:350px"  data-dojo-attach-point="AutoID_Adresse" name="AutoID_Adresse" data-dojo-props="searchDelay: 600,queryExpr:'*${0}*'' " data-dojo-type="dijit/form/FilteringSelect"/></select>

Mit diesen beiden Anweisungen beginnt die Suche an beliebiger Stelle in der Optionliste und zwar nach 600 millisekunden
03.02.2016, tdbengine : no_cgi_encoding vs setpara UO
der Laufzeitschalter UO dient dazu, während des Programmflusses zwischen ANSI und UTF-8 Codierung hin und her zuschalten.
Wenn jedoch ein Postaufruf mit UTF-8 Daten erfolgt , dann ist setpara(UO 0) im Programm zu spät.
Beim Befüllen der cgi-Variablen (und das sind die Post-Daten) wird der Schalter no_cgi_encoding  in der tdbengine.ini berücksichtigt.

Fazit:
setpara(UO 0) direkt nach procedure Main ersetzt nicht no_cgi_encoding=1
26.01.2016, tdbengine : FindAndMark und ramtext
FindAndMark hat einen dritten optionalen Parameter.
Dieser kann Anweisungen, durch ; getrennt beinhalten.
Dieser 3. Parameter kann ein String, aber auch ein Ramtext sein.

Der 2. Parameter, der die Suchanweisung beinhaltet, muss immer ein String sein.
(und kein ramtext wie bei einigen Usern bermutet)
20.01.2016, tdbengine : Laufzeitschalter UA UTF8-Modus

Mit .U8 1 wird in den UTF8-Modus geschaltet.

 

.U8 0|1

 

Vorgabe ist immer

 

.U8 0

 

Folgende Funktionen sind davon betroffen:

 

LeftStr

RightStr

POS

Lenght

 

sowie der Teilstring-Operator [a,n]

 

Die dann alle mit UTF8-Strings arbeiten!

 

Was (noch) nicht geht ist

 

read(textfile,n_zeichen), hier werden immer noch n_zeichen Bytes gelesen.

Aber du kannst die Funktion für UTF8 nachbauen:

 

PROCEDURE ReadNChars(t, max : INTEGER) : STRING

VAR res : STRING

WHILE NOT EOT(t) AND length(res)<max DO res:=res+read(t) END

RETURN res

ENDPROC

 

LENGTH liefert die Anzahl der kompletten (Multibyte-)Zeichen.
20.01.2016, tdb-dojo : Dokumentation
Ab sofort ist die Dokumentantion zu tdb Dojo auch auf unserer Webseite zu finden.
 height=229
19.01.2016, tdbengine : Hinweis auf veralterte Funktionen
> CGI_PREDIR

Interne Environment-Variable, die nur dann ausgwertet wird, wenn die tdbengine
als HTTP-Serverim CD-Modus läuft. Falls diese Variable vom Server-Prozess
gesetzt wird, verwendt die Funktion LoadTemplate dieses Verzeichnis als
Umleitung.

> CLIP2TEXT

Alte VDP-Engine-Funktion. Wir nicht mehr verwendet.

> CONVMEMO

Ersetzt bei einem Memo HTML-Entities durch die entsprechenden
Sonderzeichen/Umlaute und schreibt das Memo zurück. Funktioniert nur im OEM-
Zeichensatz.

> DELMEMO

Nicht fertig programmiert. Soll ein Memo sauber löschen.

> DOPICT

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> DOREAD

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> DOSOUND

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> EVL

kein Funktion.

> FREE

Veraltet: Liefert früher den freien RAM-Speicher und jetzt MaxInt32.

> GETCGI

Synonym für CGIGetParam

> INARRAYSTR

Gibt es nicht. Siehe unten unter SPLITSTRARRAY.

> ISTASK

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> NBITSDB

Gibt es nicht. Siehe unten unter SPLITSTRARRAY.

> NETUSERS

Wird nicht verwendet. Liefert in der Spezial-Version, die mit dem Locking-
Dämin arbeitet, die Anzahl der Nutzer, die auf eine Tabelle zugreifen.

> NOTMARKS

Wie AndMarks, nur hier logisch als AND NOT. Veraltet, wird aus
Kompatibilitätsgründen noch verwendet. /Abgelöst durch Bit-Operationen)

> ROLLBACK

Wird nicht verwendet.

> SETLINENO

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> SETUFUNC

Alte VDP-Engine-Funktion. Wird nicht verwendet.

> SPLITSTRARRAY

Gibt es nicht. (War mal eine Auftrags-Programmierung. Musst Du mehr wissen als
ich)

> STOP_SERVER

Intern verwendete Environment-Variable. Wird ausgewertet, wenn die tdbeingine
als Server läuft. Wenn dann diese Variable auf irgendeinen Wert gesetzt wird,
wird derServer beendet (Er läuft ja normalerweise in einer Endlosschleife).

> SYSTEM

Ist das Präfix fur alle eingeauten Funktionen. Damit kann immer auf die
orginale Funktion zugegriffen werden, egal wie oft sie überschrieben wurde.

> TRANSOFF

Alte TDB/VDP-Netzwerk-Funktion. Wird nicht verwendet.

> TRANSON

Alte TDB/VDP-Netzwerk-Funktion. Wird nicht verwendet.

> UNSPLITSTRARRAY

Gibt es nicht. (War mal eine Auftrags-Programmierung. Musst Du mehr wissen als
ich)

> USERNO

Wird nicht verwendet. Liefert in der Spezial-Version, die mit dem Locking-
Dämin arbeitet, die Nummer das aktuellen Anwenders.

> ZCOUNT

Alte TDB/VDP-Statistik-Funktion. Wird nicht verwendet.


> ZSUM

Alte TDB/VDP-Statistik-Funktion. Wird nicht verwendet.

15.01.2016, tdbengine : Ansi / UTF - worauf man achten muss
Am besten versteht man das, wenn man die Historie betrachtet.
Die DOS-TDB war eine reine ASCII-Datenbank.
Mit der ersten Windowsversion benötigte nan aber ANSI Zeichen für die Darstellung in Windows.
Aus diesem Grund konvertierte die damalige tdb-Version die Daten bei der Ausgabe in ANSI-Zeichensatz und beim Speichern wieder zurück in ASCII.
Davon merkte der Anwender gar nichts und innerhalb der TDB bleibt alles beim alten, sprich Speicherung in ASCII.

Mit der tdbengine  hat sich daran nichts geändert, erst mit der Version 7 kam das Thema UTF-8 auf.
Da die Funktionen getField und setfield eine automatische Konvertierung durchführten war es nicht möglich, UTF-8 Zeichen zu speichern.
Aus diesem Grund wurde ein neuer Schalter in der tdbengine.ini eingeführt, 
no_cgi_encoding=1
Ist dieser Schalter gesetzt , so werden die Daten nicht bei setField oder getField umgewandelt, sondern die Zeichen werden so ausgegeben/gespeichert, wie diese vorliegen.
Damit kann man jedes beliebige Zeichen speichern.
Werden die Felder indiziert, so ist es wichtig, dass auf den Index richtig zugegriffen wird.
Stehen die Daten im Index im UTF-8 Format und benutzt man  nicht den Schalter
no_cgi_encoding=1
dann kann der Index nicht richtig gelesen werden.
Genauso umgekehrt:
Index im ASCII.Format, jedoch
no_cgi_encoding=0
führt dazu, dass die Einträge nicht richtig gefunden werden.
15.01.2016, tdbengine globals Aufstellung aller Parameter
globals.buffer_idents
globals.cdmode
globals.cgibuf
globals.direct_scripting
globals.errorlog
globals.log    
globals.logcgi
globals.logcgi_sema                       | Wenn angeschaltet, werden im Logfile die verwendeten Semaphoren aufgelistet.
globals.index_pagesize
globals.interpreter
globals.libpath
globals.nobreak
globals.overrun
globals.location   
globals.sema
globals.semadir
globals.stopcgi
globals.umask
11.01.2016, tdbengine : rendb
RenDB gibt einer Tabelle einen neuen Dateinamen
Wichtig ist, dass man vorher in das Verzeichnis wechselt, in dem die Quelldatei steht.
Beispiel:
        ChDir("../database")
        RenDB("baseman.dat","",0,"old_baseman.dat")
 
Wenn man den Verzeichniswechsel nicht macht, sondern wie folgt versucht:
        RenDB("../database/baseman.dat","",0,"old_baseman.dat")
so erhält man den Fehlercode =35.
 
06.01.2016, tdbengine : SetAlias - clearCache
Erzeugt einen weiteren Handle für eine bereits geöffnete
Tabelle.
Die Tabelle kann unter dem Alias-Namen angesprochen
werden. Die Alias-Tabelle hat einen eigenen Satzpuffer, eine eigene
Markierungsliste und eine eigene Zugriffsverwaltung.
Wenn man innerhalb einer Datei auf einen Datensatz steht und
gleichzeitig in der gleichen Datei einen anderen Datensatz öffnen möchte, so
verstellt sich der Dateizeiger.
Aus diesem Grund kann man eine Tabelle mehrfach öffnen.
Hierzu gibt es den Befehl setAlias
Öffnen Sie zuerst wie gewohnt die gewünschte Tabelle z.B.
address.dat.
Anschließend bekommen Sie zum Tabellenhandle A2 die Tabelle
address.dat erneut geöffnet.
Beispiel:
VAR A : Integer = opendb("adressen.dat")
VAR A2 : Integer
A2 := setAlias(A,"a2.dat")
Die
Tabelle kann man jetzt über das Table handle A2 ansprechen, aber
innerhalb von dynamischen Reports auch mit dem Dateinamen a2.dat



clearCache(db)



bei setalias:
löscht den Cache und stellt sicher, dass Alias nicht aus dem Cache liest.

23.11.2015, tdbengine : Pfad zur Semaphore
Achtung: mit tdbengine 7.19 gilt folgende Regel:
sobald beim Aufruf von waitsema  der Dateiname der Semaphore mit einem / eingeben wird, also mit Pfadangabe, dann wird der Eintrag in der tdbengine.ini im Schlüssel semadir= nicht mehr berücksichtigt.
Das kann bei der Umstellung zu Problemen führen, wenn man bisher den Pfad zur Semaphore aus dem Schlüssel plus dem Parameter bei Waitsema zusammengesetzt hat.
23.11.2015, tdbengine : Pfad zur tdbengine.ini auslesen (TDB_L
über GetEnv('TDB_Local_Ini') und GetEnv('TDB_Global_Ini') kann man den vom Programm verwendeten Pfad zu lokalen und zur globalen tdbengine.ini auslesen.
Das liefert z.B. solche Angaben zurück:
TDB_Local_Ini=/var/www/develop/pedalo/appl/tdbengine.ini:/
TDB_Global_Ini=var/www/bin/tdbengine.ini


Interessant ist dies, wenn man in den beiden INI-Dateien unterschiedliche Einstellungen hat und rausfinden möchte, welche INI-Datei er denn jetzt benutzt.

PS:;
Diese Funktion war bisher falsch dokumentiert.
Hier stand TDB_LocalIni und TDB_GlobalIni, was natürlich zu keiner Ausgabe führtt
16.11.2015, tdb-dojo : gridTypeA
GridTypeA hat einen neuen Property.
mit preFilter kann man eine Spaltenselektion vorbelegen.
In dem Beispiel wird der Filter in der Spalte Land mit DE vorbelegt

 
var g= new GridTypeA({
    id : "grid4711",
    dataOfGridStore : "address.prg?act=getData",
    preFilter    : {"Land":"DE"},
    editRecord   : editAdresse,
    columnsStructure: [
        { label: "Lfd", field: "Lfd",hidden:true},
        { label: "Name", field: "Name"},
        { label: "Ort", field: "Ort"},
        { label: "Land", field: "Land"}
    ]
 });
04.11.2015, tdb-dojo : FormInBC Selectfeld mit Suche im String
Bei einem Auswahlfeld will man innerhalb der Auswahloption suchen und nicht nur von Zeilenbeginn an.
Hierzu wie folgt vorgehen:

bei FormInBC im BereichPostLoadTemplate definieren:
  frm.feld.set("queryExpr","*${0}*");
 
im Formular beim Selectfeld:
data-dojo-props="searchDelay:600"

Beispiel :
im html-Template:
<select style="width:450px" name="Feld" data-dojo-attach-point="Felddata-dojo-props="searchDelay:600" data-dojo-type="dijit/form/FilteringSelect"/></select>

im JavaScript:
        var formInBC = new FormInBC({
                style : {"height":"300px","width":"500px"},
                formParams: {
                    xhrGetFormValues    : "kostenst.prg?act=getRecord&id="+Lfd,
                    templateStr                : "href:../template/kostenstellen/edit.html",
                    postLoadTemplate    : function(frm) {
                        return xhr.get("kostenst.prg?act=getOptionList",
                            {handleAs:"json",preventCache    :true,timeout:10000}                                   
                        ).then(
                            function(response) {
                                frm.KV2.store.setData(response.KV2);
                                frm.KV2.set("queryExpr","*${0}*");
                            }
                        );
                    }
                }
            });
29.10.2015, tdb-dojo : startSortField im grid
mit startSortField kann man die Sortierung im Grid vorbelegen.

Beispiel:

            var g3 = new GridTypeC({
                id : "gridB3",
                style : {"width":"130px"},
                "class" : "buch",rowsPerPage: 100,
                startSortField : "Code",
                columnsStructure: [
                    { label: "Code", field: "Code"},
                    { label: "Extern", field: "Extern"},
                    { label: "Titel", field: "Titel"},
                    { label: "Kategorie", field: "Kategorie"}
                ]
            });
28.10.2015, tdb-dojo : filterInputWidgets
Sind in den Tabellenspalten Eingabefelder für die Suche in der Spalte definiert, so kann man diese jetzt wie folgt ansprechen:

var grid = new ( {
     |   ....
    
|   useHeaderFilter: { FeldMitZugriff: {regexOption: 2, fieldType:
"string"}, Feld2: {regexOption: 2, fieldType: "string"}, Feld3:
{regexOption: 2, fieldType: "string"} }
     | } );
     |  grid.filterInputWidgets["FeldMitZugriff"].set("value", "<suchbegriff>");
 

Beispiel:
In der Spalte MatNr soll per Script ein Suchbegriff eingetragen werden:
 
g = registry.byId("gridDlgGG");
g.filterInputWidgets["MatNr"].set("value",MatNr);

ACHTUNG:
existiert das Feld nicht, dann läuft das Script auf einen Fehler ohne Ausgabe in Firebug!
22.10.2015, tdbengine : isfile auf ramtext
isfile auf ramtext liefert jetzt ein Ergebnis
13.10.2015, tdbengine : procpath
Es gibt eine neue String-Funktion
procpath (ohne Argumente)

die alle Prozeduren bis zum Aufruf durch | getrennt auflistet (maximal 255
Zeichen)

Das funktioniert auch bei execmacro, wenn beim aufrufenden Programm
trace_mode=1 gesetzt ist.

Bei Prozeduren, die über execmacro aufgerufen werden, wird der Modulname
vorangestellt. Beispiel:

Main|ShowForm|dmk:List|test_pp:Main

Hier wird zunachst vom aktuellen Programm die Prozedur Main aufgerufen. Diese
ruft die (lokale) Prozedur ShowForm auf. In dieser erfolgst ein Aufruf
execmacro(dmk,List)
und darin widerum
execmacro(test_pp,Main)
usw.
14.04.2015, tdbengine : Tabelle konvertieren nach UTF-8
erfolgt in 2 Schritten.
Von OEM zu ANSI und dann erst von ANSI zu UTF8

Beispiel:
Procedure Main
CGIWriteLn('content-type: text/html; charset=UTF-8')
CGIWriteLn('')
Var A : Integer = OpenDB("../database/schaden.dat","",0,15)
Var ai : Integer[]
Var i : Integer
Var l : Integer
Var c : String
Var ansi : String = "ANSI"
Var oem : String = "OEM"
CGIWriteLn('')

i:=ConvEncoding(A,oem,ansi)
i:=ConvEncoding(A,ansi,"UTF8")

A := OpenDB("../database/anlage.dat","",0,15)
i:=ConvEncoding(A,oem,ansi)
i:=ConvEncoding(A,ansi,"UTF8")
11.12.2014, tdbengine : neue Passwortfunktionen
gen_pwx(s : STRING) : STRING
erzeugt aus den ersten 16 Zeichen von s eine Verschlüsselung
aufbauend auf dem encrypt-Code von Bernd Edlinger
das Ergebnis ist immer 27 Zeichen lang
gen_pwx liefert auch mit dem gleichen Input immer
eine neue Verschlüsselung!

get_pwx(c : STRING) : STRING

entschlüsselt das mit gen_pwx erzeugte Passwort

test_pwx(c,s : STRING) : INTEGER
prüft, ob das c eine gültige Verschlüsselung von s ist.


Testprogramm:
Procedure Main
Var c : String = "testpassword12#"
Var d : String =
gen_pwx(c)
Var i : Integer
CGIWriteLn('content-type: text/html;
charset=UTF-8')
CGIWriteLn('')CGIWriteLn('Passwort='+c+'')
CGIWriteLn('Passwort verschlüsselt='+d+'')
i := test_pwx(d,c)
CGIWriteLn('Passwort 2 test_pwx='+Str(i)+'')
CGIWriteLn('Passwort entschlüsselt='+get_pwx(d)+'')
EndProc
17.11.2014, tdbengine : neue Enviromentvariablen
GetEnv("TDB_Global_Ini")
GetEnv("TDB_Lokal_Ini")
GetEnv("TDB_version")
GetEnv("TDB_LibPath")
17.11.2014, tdbengine : Laufzeitschalter UO
über den Punktbefehl .UO = 0|1 kann man im Modul steuern, ob man mit UTF-8 oder OEM arbeitet.
Defaultwert: UO 1
Der Schalter ist sehr wichtig, wenn man noch einen Gemischtbetrieb hat.
Hat
man die Tabelle noch in OEM und arbeitet aber modulseitig mit UTF, dann
funktioniert nicht einmal ein readrec / Nextrec über einen Index
korrekt, da der Index so nicht gelesen werden kann.
Der Schalter kann in Procedure oder global gesetzt werden.
.UO 1 für OEM
bzw.,
.UO 0 für UTF
Syntax: TDB_LASTERROR

< k e i n e >
L i e f e r t d e n F e h l e r c o d e d e s l e t z e n F e h l e r s
0 k e i n F e h l e r < b r > 1 D a t e i k a n n n i c h t g e f f n e t w e r d e n < b r > 2 a l l g e m e i n e r L e s e f e h l e r < b r > 3 a l l g e m e i n e r S c h r e i b f e h l e r < b r > 4 F e h l e r b e i I n d e x e r s t e l l u n g < b r > 5 F e h l e r b e i I n d e x l s c h u n g < b r > 6 I n d e x n i c h t v o r h a n d e n < b r > 7 F e h l e r i n S e l e k t i o n < b r > 8 I m p o r t - F e h l e r ( n i c h t t d b e n g i n e ) < b r > 9 F e h l e r b e i m D a t e i e r z e u g e n ( I O - F e h l e r ) < b r > 1 0 F e h l e r b e i m D a t e i s c h l i e e n ( I O - F e h l e r ) < b r > 1 1 I n d e x s c h l s s e l z u g r o ( b e r 2 5 6 B y t e s ) < b r > 1 2 F e h l e r b e i m I n d e x l a d e n ( I O - F e h l e r ) < b r > 1 3 I n d e x p a t n i c h t z u r D a t e i ( u n g l e i c h e A n z a h l v o n R e c o r d s ) < b r > 1 4 K e i n D a t e n f e l d ( i l l e g a l e r F e l d b e z e i c h n e r ) < b r > 1 5 I l l e g a l e s U n t e r v e r z e i c h n i s ( n i c h t v o r h a n d e n o d e r k e i n Z u g r i f f s r e c h t ) < b r > 1 6 I l l e g a l e D a t e i v e r k n p f u n g ( F e h l e r i n R E L A T I O N ) < b r > 1 7 D a t e i i s t o f f e n ( o p e n d b a u f b e r e i t s g e f f n e t e T a b e l l e ) < b r > 1 8 K e i n e D a t e i i m a k t u e l l e n V e r z e i c h n i s < b r > 1 9 D a t e n s a t z n i c h t g e f u n d e n < b r > 2 0 M o d u l n i c h t g e f u n d e n ( b e i U S E S o d e r I N C L U D E ) < b r > 2 2 D a t e i e x i s t i e r t b e r e i t s < b r > 2 3 I n d e x b e r e i t s g e f f n e t < b r > 2 5 a l l g e m e i n e r S y n t a x - F e h l e r < b r > 2 6 I l l e g a l e r D a t e i n a m e < b r > 2 8 I n d e x b e s c h r e i b u n g z e r s t r t < b r > 2 9 F a l s c h e P r o g r a m m v e r s i o n < b r > 3 0 d o p p e l t e r E i n t r a g < b r > 3 1 M E M O - D a t e i n i c h t z u f f n e n < b r > 3 2 M E M O h i e r n i c h t e r l a u b t < b r > 3 3 F e h l e r b e i M e m o s c h r e i b e n < b r > 3 4 I l l e g a l e O p e r a t i o n < b r > 3 5 D a t e i b e r e i t s g e f f n e t < b r > 3 6 Z u g r i f f n i c h t e r l a u b t < b r > 3 7 D a t e i n i c h t g e f u n d e n o d e r Z u g r i f f v e r w e i g e r t ( b e i o p e n d b ) < b r > 3 8 F a l s c h e r C o d e ( P a s s w o r t o d e r V e r s c h l s s e l u n g s c o d e p a s s e n n i c h t ) < b r > 3 9 F e h l e r i n I N C L U D E - D a t e i < b r > 4 0 K e i n a n g e k o p p e l t e r D a t e n s a t z < b r > 4 1 A u s d r u c k n i c h t k o m p l e t t < b r > 4 2 I l l e g a l e r O p e r a t o r < b r > 4 4 T y p e n s t i m m e n n i c h t b e r e i n o d e r u n b e k a n n t e r T y p ( m e i s t b e i Z u w e i s u n g e n A : = B ) < b r > 4 5 U n b e k a n n t e s Z e i c h e n < b r > 4 6 I l l e g a l e Z a h l e n k o n s t a n t e < b r > 4 8 L o g i s c h e r O p e r a n d f e h l t < b r > 4 9 I l l e g a l e r O p e r a n d < b r > 5 0 U n b e k a n n t e r B e z e i c h n e r < b r > 5 1 F e l d v a r i a b l e e r w a r t e t < b r > 5 2 U n b e k a n n t e r F e h l e r < b r > 5 3 Z u v i e l e V a r i a b l e n < b r > 5 4 ' = ' f e h l t < b r > 5 5 Z a h l e r w a r t e t < b r > 5 6 ? e r w a r t e t < b r > 5 7 I l l e g a l e D a t e i s t r u k t u r < b r > 5 8 K e i n e T a b e l l e < b r > 5 9 Z u v i e l e F e l d e r ( m e h r a l s 1 0 0 0 D a t e n f e l d e r i n T a b e l l e ) < b r > 6 0 A u s d r u c k z u k o m p l e x ( b s p w . i n R e k u r s i o n ) < b r > 6 1 F e h l e r i n A u s d r u c k < b r > 6 6 Z e i c h e n k e t t e e r w a r t e t < b r > 6 7 Z u v i e l e I n d i z e s < b r > 7 1 B e z e i c h n e r d o p p e l t d e f i n i e r t < b r > 7 2 R E L - D a t e i e x i s t i e r t b e r e i t s ( b e i G E N R E L ) < b r > 7 3 Z u v i e l e L - o d e r R - F e l d e r ( b e i M A K E D B ) < b r > 7 4 S t r i n g z u l a n g ( m e h r a l s 2 5 5 Z e i c h e n ) < b r > 7 6 N u r e i n N - F e l d e r l a u b t ( e i n A U T O - F e l d p r o T a b e l l e ) < b r > 7 7 K e i n e R e l a t i o n s t a b e l l e ( b e i M A R K T A B L E ) < b r > 8 0 N u r e i n I D _ I n d e x e r l a u b t < b r > 8 1 B e r e i c h s b e r l a u f ( b e i A R R A Y - I n d i z e s ) < b r > 8 2 U n b e k a n n t e s K o m m a n d o < b r > 8 3 L a b e l f e h l t < b r > 8 4 K e i n I D - I n d e x f e s t g e l e g t < b r > 8 5 K e i n e D e f i n i t i o n ( T a b e l l e n s t r u k t u r o h n e F e l d e r ) < b r > 8 6 I l l e g a l e T e x t a u f t e i l u n g < b r > 8 7 I l l e g a l e r Z u g r i f f ( b e i A C C E S S ) < b r > 8 9 V a r i a b l e e r w a r t e t ( b e i R e f e r e n z p a r a m e t e r n ) < b r > 9 0 F e h l e r b e i m I n d e x s c h r e i b e n < b r > 9 1 F e h l e r b e i m I n d e x l e s e n < b r > 9 2 E n d e d e s U n t e r r e p o r t s n i c h t f e s t g e l e g t ( E N D S U B f e h l t ) < b r > 9 3 I l l e g a l e O p e r a t i o n < b r > 9 4 Z u v i e l e D a t e i e n ( m e h r a l s 3 1 g e f f n e t e T a b e l l e n ) < b r > 9 5 I n d e x d e f e k t < b r > 9 6 U N T I L e r w a r t e t < b r > 9 7 E N D e r w a r t e t < b r > 9 8 I l l e g a l e I n d e x d e f i n i t i o n ( a u c h b e i S O R T M A R K ) < b r > 1 0 1 V e r s c h a c h t e l u n g n i c h t e r l a u b t ( v o n P o r z e d u r e n ) < b r > 1 0 2 E N D P R O C f e h l t < b r > 1 0 3 W e i t e r e A n w e n d e r i m N e t z ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 4 N e t z o p e r a t i o n a b g e b r o c h e n ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 5 D a t e n s a t z w i r d b e r e i t s e d i t i e r t ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 6 F e h l e r b e i m E i n l o g g e n ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 7 I P X - n i c h t a k t i v ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 8 T i m e o u t - F e h l e r ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 0 9 U n b e k a n n t e r F e h l e r i m N e t z ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 1 0 L o c k i n g - F e h l e r ( n u r b e i S p e z i a l v e r s i o n ) < b r > 1 1 1 B L O B n i c h t z u f f n e n < b r > 1 1 2 M E M O d e f e k t < b r > 1 1 3 B L O B d e f e k t < b r > 1 1 4 O p e r a t i o n a b g e b r o c h e n < b r > 1 1 5 K e i n S c h r e i b r e c h t a u f D a t e i < b r > 1 1 6 I n d e x n o c h i n G e b r a u c h < b r > 1 1 7 I l l e g a l e D a t e i s t r u k t u r < b r > 1 2 0 L a u f z e i t f e h l e r ( f r D e b u g g e r )
T D B _ L A S T E R R O R w i r d b e i j e d e r v o n d e r t d b e n g i n e a u s g e f h r t e n O p e r a t i o n g e s e t z t . < b r > < b r > I n d e n m e i s t e n F l l e n e r f o l g e i n P r o g r a m m a b r u c h , w e n n e i n F e h l e r a u f t r i t t . M i t d e m S c h a l t e r < b r > < b r > . e c 1 < b r > < b r > k a n n b e i Z u w e i s u n g e n ( u n d n u r b e i d i e s e n ) d e r P r o g r a m m a b r u c h u n t e r b u n d e n w e r d e n . I n d i e s e m F a l l k a n n ( o d e r b e s s e r g e s a g t m u s s ) d a s P r o g r a m m a u f e v e n t u e l l a u f t r e t e n d e F e h l e r r e a g i e r e n . < b r > < b r > M i t T D B _ E R R O R S T R ( T D B _ L A S T E R R O R ) k a n n d i e F e h l e r m e l d u n g i m K l a r t e x t a b g e h o l t w e r d e n . < b r > < b r > B e i C o m p i l e r f e h l e r n g e b e n f o l g e n d e S y s t e m - V a r i a b l e n ( a l l e I N T E G E R ) z u s t z l i c h e A u s k u n f t b e r d i e F e h l e r p o s i t i o n : < b r > < b r > T D B _ E r r o r L i n e : Z e i l e n u m m e r i m P r o g r a m m < b r > T D B _ E r r o r O f s : S p a l t e i n n e r h a l b d i e s e r Z e i l e < b r > T D B _ E r r o r P o s : Z e i c h e n p o s i t i o n i m P r o g r a m m t e x t < b r > < b r > D e n F e h l e r a u s d r u c k s p e i c h e r d i e S y s t e m v a r i a b l e ( S T R I N G ) < b r > < b r > T D B _ E r r o r M s g < b r > < b r > H i n w e i s : T D B _ L A S T E R R O R e r s e t z t d i e S y s t e m - V a r i a b l e " F e h l e r " a u s a l t e n T D B / V D P - T a g e n .
Syntax: Expression AB Expression

< k e i n e >
s p r a c h l i c h e A l t e r n a t i v e f r > = ( v e r a l t e t ) < b r >
< b r / >
Syntax: ABS(NV : REAL) : REAL

N V : n u m e r i s c h e r A u s d r u c k
L i e f e r t d e n A b s o l u t b e t r a g e i n e s n u m e r i s c h e n W e r t e s
N V , f r N V > = 0 < b r > - N V , f r N V < 0
< b r / >
d b : T a b e l l e n - H a n d l e , w i e e r v o n O P E N D B g e l i e f e r t w i r d . < b r > < b r > M o d e : " N u m m e r " o d e r - 1 f r p h y s i k a l i s c h e R e i h e n f o l g e < b r > " M a r k i e r u n g " o d e r - 2 f r M a r k i e r u n g s l i s t e < b r > I n d e x n a m e o d e r I n d e x n u m m e r f r Z u g r i f f b e r I n d e x
L e g t d i e Z u g r i f f s r e i h e n f o l g e f r e i n e T a b e l l e f e s t
- 2 : Z u g r i f f s t e h t a u f " M a r k i e r u n g " < b r > - 1 : Z u g r i f f s t e h t a u f " N u m m e r " < b r > 0 . . 1 5 : Z u g r i f f s t e h t a u f e n t s p r e c h e n d e m I n d e x
W i r d k e i n M o d u s a n g e g e b e n , s o l i e f e r t A c c e s s ( ) d e n a k t u e l l e n Z u g r i f f . < b r / > < b r > < b r / > < b r > D i e Z u g r i f f s s t e u e r u n g w i r d b e r c k s i c h t i g t v o n < b r / > < b r > S U B . . . E N D S U B < b r > < b r / > < b r > f i r s t r e c ( ) < b r / > < b r > l a s t r e c ( ) < b r > < b r / > < b r > n e x t r e c ( ) u n d < b r / > < b r > p r e v r e c ( ) < b r / > < b r > < b r / > < b r > A c c e s s ( ) l i e f e r t k e i n e n F e h l e r . B e i e i n e m i l l e g a l e n A r g u m e n t w i r d e i n f a c h d e r Z u g r i f f n i c h t u m g e s e t z t . < b r / > < b r > A u s d i e s e m G r u n d s o l l t e m a n b e i I n d e x - Z u g r i f f e n i m m e r d a s F u n k t i o n s e r g e b n i s b e a c h t e n .
Syntax: String-Expression ÄHNLICH String-Expression

p h o n e t i s c h e r V e r g l e i c h ( v e r a l t e t )
D i e s e r O p e r a t o r w i r d i n t e r n e r s e t z t d u r c h < b r > < b r > S O U N D E X ( x ) = S O U N D E X ( y ) < b r > < b r > D e r p h o n e t i s c h e V e r g l e i c h l i e f e r t m e i s t u n b e f r i e d i g e n d e E r g e b n i s s e . B e s s e r i s t m e i s t d i e S u c h e m i t " L I K E " o d e r " S T R C O M P "
Syntax: obsolete

S y m b o l f r k o m p l e t t e n D a t e n s a t z
Syntax: logical_expression_1 AND logical_expression_2

l o g i s c h e s U N D
w a h r - w e n n b e i d e l o g i s c h e n A u s d r c k e w a h r < b r > f a l s c h - s o n s t
E A S Y w e r t e t l o g i s c h e A u s d r c k e i m m e r n u r s o l a n g e a u s , b i s d a s E r g e b n i s f e s t s t e h t ( v e r k r z t e A u s w e r t u n g )
Syntax: ANDMARKS(Tabelle: INTEGER; Markierungen: Array[]): Real

T a b e l l e : T a b e l l e n h a n d l e , w i e v o n O P E N D B g e l i e f e r t . < b r > M a r k i e r u n g e n : R E A L | I N T E G E R | T B I T - A r r a y m i t p h y s i k a l i s c h e n S a t z n u m m e r n v o n d e r T a b e l l e
B i l d e t d e n M e n g e n d u r c h s c h n i t t z w i s c h e n M a r k i e r u n g s l i s t e u n d A r r a y
G r e d e r M a r k i e r u n g s l i s t e n a c h d e r O p e r a t i o n
N a c h d i e s e r O p e r a t i o n s i n d n u r n o c h d i e j e n i g e n D a t e n s t z e d e r T a b e l l e m a r k i e r t , d i e v o r h e r m a r k i e r t w a r e n u n d d e r e n S a t z n u m m e r n i n d e m A r r a y e n t h a l t e n s i n d . < b r / > < b r > I h r e A n z a h l w i r d z u r c k g e g e b e n . < b r / >
Syntax: AnsiToOem(Zeichenkette: String): String

Z e i c h e n k e t t e : b e l i e b i g e r S T R I N G o d e r R A M T e x t
b e r s e t z t e i n e S t r i n g v o n A N S I n a c h A S C I I
V o n A N S I n a c h A S C I I g e w a n d e l t e Z e i c h e n k e t t e
W a n d e l t d i e Z e i c h e n k e t t e v o m A N S I - ( W i n d o w s - ) Z e i c h e n s a t z i n d e n O E M - ( D O S - ) Z e i c h e n s a t z u m u n d l i e f e r t d i e s a l s E r g e b n i s . D i e F u n k t i o n w i r d b e n t i g t , w e n n S i e T e x t a u s e i n e r W i n d o w s - D a t e i e i n l e s e n u n d m i t d e r t d b e n g i n e w e i t e r v e r a r b e i t e n w o l l e n . B e i s p i e l H i e r w i r e i n e Z e i c h e n k e t t e a u s e i n e r W i n d o w s - T e x t d a t e i e i n g e l e s e n u n d i n d a s F e l d N a m e d e r K u n d e n d a t e i g e s c h r i e b e n :
Syntax: Asc(Zeichenkette: String): INTEGER

Z e i c h e n k e t t e : S T R I N G
E r m i t t e l t d e n A S C I I - C o d e d e s e r s t e n Z e i c h e n s d e r Z e i c h e n k e t t e
K o d i e r u n g d e s e r s t e n Z e i c h e n s g e m e r w e i t e r t e r A S C I I - T a b e l l e f r P C
B e i s p i e l : < b r > < b r > A S C ( " A " ) = 6 5 < b r > A S C ( " B " ) = 6 6
Syntax: AUTOFIELD(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e , w i e i h n O P E N D B l i e f e r t
L i e f e r t d i e F e l d n u m m e r d e s F e l d e s , d a s d i e A u t o n u m m e r s p e i c h e r t
N u m m e r d e s F e l d e s , d a s a u t o m a t i s c h n u m m e r i e r t w i r d . < b r > < b r > 0 , w e n n k e i n s o l c h e s v o r h a n d e n i s t
B e i d e r z e n t r a l e n D a t e n e r f a s s u n g u n d - b e a r b e i t u n g i s t e s b e s s e r , a u f A u t o n u m m e r n B e z u g z u n e h m e n , a l s m i t p h y s i k a l i s c h e n S a t z n u m m e r n z u a r b e i t e n . < b r / > < b r > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > W i c h t i g : S i n d s c h r e i b e n d e Z u g r i f f e a u f e i n e < b r > T a b e l l e e r l a u b t , s o l l t e n a l l e P r o g r a m m e , d i e m i t d i e s e r T a b e l l e < b r > a r b e i t e n , e i n e n g e m e i n s a m e n ( b i n r e n ) S e m a p h o r e n e i n s e t z e n . D a d u r c h < b r > w i r d s i c h e r g e s t e l l t , d a i m m e r n u r e i n P r o z e s s a u f d i e T a b e l l e z u g r e i f t . < / s p a n > < b r > < b r / > < b r > < b r / > < b r > I s t d i e T a b e l l e a u t o m a t i s c h n u m e r i e r t , s o k n n e n n u n m i t A u t o F i e l d ( ) a u c h d a n n e i n d e u t i g e B e z g e z u d e n D a t e n s t z e n h e r g e s t e l l t w e r d e n , w e n n z w i s c h e n d e n Z u g r i f f e n d i e S p e r r e w i e d e r a u f g e h o b e n w i r d .
Syntax: AUTORECNO(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
L i e f e r t d i e A u t o n u m m e r d e s a k t u e l l e n D a t e n s a t z s
F a l l s d i e T a b e l l e a u t o m a t i s c h n u m m e r i e r t w i r d , l i e f e r t d i e F u n k t i o n d i e A u t o n u m m e r d e s a k t u e l l e n D a t e n s a t z e s , a n d e r n f a l l s d i e p h y s i k a l i s c h e S a t z n u m m e r .
E s g i l t < b r > < b r > < p r e > < b r > I F A U T O F I E L D ( d b ) > 0 T H E N < b r > R E T U R N G E T R F I E L D ( d b , A U T O F I E L D ( d b ) ) < b r > E L S E < b r > R E T U R N R E C N O ( D B ) < b r > E N D < b r > < / p r e > < b r > < b r > W e n n b e r L i n k s o d e r C G I - V a r i a b l e a u f D a t e n s t z e v e r w i e s e n w i r d , s o l l t e a n s t e l l e d e r p h y s i k a l i s c h e n S a t z n u m e r ( R E C O ( D B ) ) i m m e r d i e A U T O R E C O ( D B ) v e r w e n d e t w e r d e n . E n t h l t d i e z u g e h r i g e T a b e l l e e i n e A U T O - I N C R E M E N T - F e l d , s o w i r d d a n n d e r e n t s p r e c h e n d e W e r t d e s D a t e n s a t z e s g e l i e f e r t , w a s a u c h i m M u l t i u s e r - B e t r i e b e i n e s i c h e r e r D a t e n s a t z - R e f e r e n z e r m g l i c h t . < b r > < b r > D i e v o n A U T O R E C N O g e l i e f e r t e Z a h l w i r d d a n n v o n F I N D A U T O w i e d e r i n e i n e p h y s i k a l i s c h e S a t z n u m m e r b e r t r a g e n .
Syntax: TODAY

< k e i n e >
S y s t e m d a t u m
a k t u e l l e s S y s t e m d a t u m
T O D A Y l i e f e r t d i e A n z a h l d e r T a g e s e i t d e m ( f i k t i v e n ) 3 1 . 1 2 . - 1 < b r > < b r > M i t D A T E S T R ( T O D A Y ) e r h a l t e n S i e d a s S y s t e m d a t u m a l s Z e i c h e n k e t t e .
Syntax: Expression BIS Expression

s p r a c h l i c h e A l t e r n a t i v e f r < = ( v e r a l t e t ) o d e r T O
< b r / >
Syntax: BITAND(VAR M1 : TBITS; VAR M2 : TBITS) : INTEGER

M 1 : T B I T S [ ] < b r > M 2 : T B I T S [ ]
S c h n i t t m e n g e z w e i e r B i t f e l d e r
N B I T S ( M 1 ) n a c h O p e r a t i o n ( = C a r d i n a l i t t v o n M 1 )
M 1 u n d M 2 w e r d e n a l s c h a r a k t e r i s t i s c h e F u n k t i o n e n e n z w e i e r ( T e i l - ) M e n g e n a u f g e f a s s t . < b r / > < b r > N a c h d e r A u s f h r u n g d e r F u n k t i o n e n t h l t M 1 d i e c h a r a k t e r i s t i s c h e F u n k t i o n d e s S c h n i t t s b e i d e r M e n g e n . < b r > < b r / > < b r > < b r / > < b r > < d i v c l a s s = " b o l d " > W i c h t i g : B e i d e A r r a y s s o l l t e n g l e i c h d i m e n s i o n i e r t s e i n , d a a n d e r n f a l l s d a s E r g e b n i s n u r i m B e r e i c h d e s k l e i n e r e n F e l d e s g i l t . < / d i v >
Syntax: BITANDNOT(VAR M1 : TBITS; VAR M2 : TBITS) : INTEGER

M 1 : T B I T S [ ] < b r > M 2 : T B I T S [ ]
S c h n i t t e i n e s B i t f e l d e s m i t d e m K o m p l i m e n t e i n e s z w e i t e n
N B I T S ( M 1 ) n a c h O p e r a t i o n ( = C a r d i n a l i t t v o n M 1 )
M 1 u n d M 2 w e r d e n a l s c h a r a k t e r i s t i s c h e F u n k t i o n e n e n z w e i e r ( T e i l - ) M e n g e n a u f g e f a s s t . < b r / > < b r > N a c h d e r A u s f h r u n g d e r F u n k t i o n e n t h l t M 1 d i e c h a r a k t e r i s t i s c h e F u n k t i o n d e s S c h n i t t e s d e r e r s t e n m i t d e m K o m p l i m e n t d e r z w e i t e n M e n g e . < b r / > < b r > < b r / > < b r > < d i v c l a s s = " b o l d " > W i c h t i g : B e i d e A r r a y s s o l l t e n g l e i c h d i m e n s i o n i e r t s e i n , d a a n d e r n f a l l s d a s E r g e b n i s n u r i m B e r e i c h d e s k l e i n e r e n F e l d e s g i l t . < / d i v >
Syntax: TDB_ERRORSTR(code : INTEGER) : STRING

c o d e : F e h l e r c o d e z w i s c h e n 1 u n d 1 2 0
L i e f e r t d i e F e h l e r m e l d u n g z u e i n e m F e h l e r c o d e
( d e u t s c h e ) F e h l e r m e l d u n g
Syntax: BLOBSIZE(fielddesc) : INTEGER

f i e l d d e s c : < b r > < b r > F e l d b e z e i c h n e r e i n e s B L O B - F e l d e s ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d n u m m e r ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d b e z e i c h n e r
L i e f e r t d i e G r e e i n e s B L O B s
B e l e g t e r S p e i c h e r p l a t z d e s B L O B - F e l d e s
W e n n d a s B L O B - F e l d l e e r i s t , w i r d 0 z u r c k g e g e b e n . a n d e r n f a l l s d e r i n d e r B L B - D a t e i b e l e g t e P l a t z . < b r > < b r > D i e P r o z e d u r l i e f e r t d i e G r e d e s B L O B - F e l d e s S a m p l e , u n a b h n g i g d a v o n o b e s s i c h u m e i n v e r k n p f t e s o d e r e i n e i n g e b e t t e t e s B L O B h a n d e l t : < b r > < b r > P R O C E D U R E G e t B l o b S i z e : I N T E G E R ; < b r > V A R B l o b P a t h , s : S t r i n g ; < b r > B l o b P a t h : = G e t L i n k e d F i l e ( S a m p l e ) ; < b r > I F L e n g t h ( B l o b P a t h ) = 0 T H E N < b r > R E T U R N B l o b S i z e ( S a m p l e ) ; < b r > E L S E < b r > R E T U R U N G e t S i z e ( B l o b P a t h ) < b r > E N D < b r > E N D P R O C
Syntax: BLOBTYPE(fielddesc)

f i e l d d e s c : < b r > < b r > F e l d b e z e i c h n e r e i n e s B L O B - F e l d e s ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d n u m m e r ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d b e z e i c h n e r
L i e f e r t d e n T y p d e s I n h a l t s e i n e s B L O B - F e l d e s
T y p d e s B l o b - F e l d e s
L i e f e r t d e n T y p d e s I n h a l t d e s B L O B - F e l d e s , w i e e r b e i L I N K B L O B o d e r E M B E D B L O B f e s t g e l e g t w u r d e . < b r > < b r > V o r g a b e : < b r > < b r > 1 B i t m a p , d . h . B M P - o d e r D I B - D a t e i < b r > 2 P a i n t b r u s h - B i l d , d . h . P C X - D a t e i < b r > 3 K l a n g , d . h . W A V - D a t e i < b r > 4 M e t a d a t e i , d . h . D a t e i e n d u n g W M F < b r > 5 C o m p u S e r v e - F o r m a t , d . h . D a t e i e n d u n g G I F < b r > 6 J p e g - F o r m a t , d . h . D a t e i e n d u n g J P G
Syntax: BITOR(VAR M1 : TBITS; VAR M2 : TBITS) : INTEGER

M 1 : T B I T S [ ] < b r > M 2 : T B I T S [ ]
V e r e i n i g u n g s m e n g e z w e i e r B i t f e l d e r
N B I T S ( M 1 ) n a c h O p e r a t i o n ( = C a r d i n a l i t t v o n M 1 )
M 1 u n d M 2 w e r d e n a l s c h a r a k t e r i s t i s c h e F u n k t i o n e n e n z w e i e r ( T e i l - ) M e n g e n a u f g e f a s s t . N a c h d e r A u s f h r u n g d e r F u n k t i o n e n t h l t M 1 d i e c h a r a k t e r i s t i s c h e F u n k t i o n d e r V e r e i n i g u n g b e i d e r M e n g e n . < b r > < b r > W i c h t i g : B e i d e A r r a y s s o l l t e n g l e i c h d i m e n s i o n i e r t s e i n , d a a n d e r n f a l l s d a s E r g e b n i s n u r i m B e r e i c h d e s k l e i n e r e n F e l d e s g i l t .
Syntax: numerischer_Ausdruck_1 B_AND numerischer_Ausdruck_2

b i n r e s A N D
D i e b e i d e n O p e r a n d e n w e r d e n a l s 3 2 - B i t - I n t e g e r w e r t e i n t e r p r e t i e r t u n d e i n b i n r e s A N D d a r a u f a u n g e w e n d e t . < b r > < b r > A c h t u n g : B e i N a c h k o m m a s t e l l e n w e r d e n w i r d e r s t g e r u n d e t . < b r > < b r > B e i s p i e l : 1 B _ A N D 3 - > 1
Syntax: B_NOT numerischer_Ausdruck

b i n r e s N O T ( K o m p l e m e n t )
D e r n u m e r i s c h e _ A u s d r u c k w i r d a l s 3 2 - B i t - I n t e g e r i n t e r p r e t i e r t u n d b i n r n e g i e r t . < b r > < b r > B e i s p i e l : < b r > < b r > N O T 0 - > - 1 ( a l l e B i t s g e s e t z t )
Syntax: numerischer_Ausdruck_1 B_OR numerischer_Ausdruck_2

b i n r e s O R
D i e b e i d e n O p e r a n d e n w e r d e n a l s 3 2 - B i t - I n t e g e r w e r t e i n t e r p r e t i e r t u n d e i n b i n r e s O R d a r a u f a u n g e w e n d e t . < b r > < b r > A c h t u n g : B e i N a c h k o m m a s t e l l e n w e r d e n w i r d e r s t g e r u n d e t . < b r > < b r > B e i s p i e l : 1 B _ O R 2 - > 3
Syntax: RAMTEXT_SUBST(ramtext : STRING; target : STRING; substitution [; mode] : INTEGER) : INTEGER

r a m t e x t : R a m t e x t n a m e d e r F o r m " r a m t e x t : . . . " < b r > t a r g e t : b e l i e b i g e Z e i c h e n k e t t e < b r > s u b s t i t u t i o n : < b r > H i e r g i b t e s f o l g e n d e M g l i c h k e i t e n : < b r > S t r i n g - A u s d r u c k < b r > d a b e i g i b t e s w i e d e r u m f o l g e n d e n e S o n d e r f l l e : < b r > " e x t e r n : P f a d " t a r g e t w i r d d u r c h e x t e r n e D a t e i e r s e t z t < b r > " r a m t e x t : . . . " t a r g e t w i r d d u r c h e n t s p r e c h e n d e n R a m t e x t e r s e t z t < b r > a n s o n s t e n w i r d t a r g e t d u r c h d e n S t r i n g - A u s d r u c k e r s e t z t < b r > F e l d z u g r i f f , d i e s e r b e s t e h t w i e d e r u m a u s < b r > T a b e l l e n h a n d l e , F e l d n u m m e r o d e r < b r > T a b e l l e n h a n d l e , F e l d b e z e i c h n e r < b r > < b r > m o d e : 0 ( V o r g a b e ) e i n f a c h e E r s e t z u n g < b r > 1 H T M L - E r s e t z u n g ( n u r S o n d e r z e i c h e n ) < b r > 2 A N S I - E r s e t z u n g < b r > 4 Z e i l e n u m b r c h e w e r d e n m i t < b r > e r g n z t < b r > 8 E x t N o t e w i r d n a c h d e r e r s t e n V e r w e n d u n g g e l s c h t < b r > 1 6 E x t e r n e r T e x t i s t i m A S C I I - F o r m a t < b r > 3 2 N u r B o d y - T e i l w i r d g e l e s e n ( n u r i n V e r b i n d u n g m i t e x t e r n e n H T M L - T e x t e n )
E r s e t z t i n e i n e m R a m t e x t e i n e Z e i c h e n k e t t e d u r c h e i n e a n d e r e
0 T a r g e t w u r d e n i c h t g e f u n d e n < b r > 1 T a r g e t w u r d e g e f u n d e n
S U B S T e r s e t z t g r u n d s t z l i c h n u r d a s e r s t e V o r k o m m e n d e s t a r g e t s . A l l e t a r g e t s w e r d e n s o e r s e t z t : < b r > < b r > W H I L E S U B S T . . . E N D < b r > < b r >
Syntax: CGIBUFFER(mode : INTEGER) : INTEGER

m o d e : 0 ( = a u s ) | 1 ( = a n )
S c h a l t e t d i e C G I - A u s g a b e p u f f e r u n g a n o d e r a u s
A k t u e l l e r M o d u s n a c h A u s f h r u n g d e r F u n k t i o n
M i t d i e s e r F u n k t i o n k a n n d i e P u f f e r u n g f r C G I - A u s g a b e n a n - u n d a u s g e s c h a l t e t w e r d e n . < b r > < b r > B e i m A u s s c h a l t e r w i r d , i m G e g e n s a t z z u C G I C L O S E B U F F E R , d e r I n h a l t d e s P u f f e r s n i c h t a u s g e g e b e n . < b r > < b r > D i e F u n k t i o n w i r d v o r w i e g e n d d a n n v e r w e n d e t , w e n n n a c h e i n e m C G I C L O S E B U F F E R d i e P u f f e r u n g w i e d e r a k t i v i e r t w e r d e n s o l l .
Syntax: CGIEXEC(command : STRING [; timeout : INTEGER) : INTEGER

c o m m a n d : A u f r u f e i n e s e x t e r n e n P r o g r a m m s i n k l . O p t i o n e n u n d P a r a m e t e r < b r > < b r > t i m e o u t : m a x i m a l e A u s f h r u n g s z e i t i n s ( n u r u n t e r W i n 3 2 )
F h r t e x t e r n e s P r o g r a m m a u s
0 : P r o g r a m m w u r d e a u s g e f h r t < b r > s o n s t : P r o g r a m m k o n n t e n i c h t a u s g e f h r t w e r d e n
< p > D i e s e F u n k t i o n f h r t e i n e x t e r n e s P r o g r a m m a u s . D e r P a r a m e t e r s _ t i m e o u t w i r d ( v o r l u f i g ) n u r u n t e r W i n 9 x / W i n N T a u s g e w e r t e t . D a s a u f g e r u f e n e P r o g r a m m w i r d k o m p l e t t a u s g e f h r t u n d g i b t d a n n d i e K o n t r o l l e a n d a s C G I - P r o g r a m m z u r c k . D a s a u f g e r u f e n e P r o g r a m m e r h l t d i e E i n - u n d A u s g a b e s t r m e d e s C G I - P r o g r a m m s . D e s h a l b s o l l t e v o r d e r A u s f h r u n g d i e A u s g a b e - P u f f e r u n g b e e n d e t w e r d e n ( d a d a s e x t e r n e P r o g r a m m n i c h t i n d e n t d b e n g i n e - P u f f e r s c h r e i b e n k a n n ) . < / p > < b r > < p > B e s o n d e r h e i t e n W i n 9 x , W i n N T : < / p > < b r > < p > D a s P r o g r a m m w i r d d i r e k t g e s t a r t e t . M i t s _ t i m e o u t k a n n d i e m a x i m a l v e r f g b a r e Z e i t ( i n S e k u n d e n ) a n g e g e b e n w e r d e n . W i r d d a n n d a s P r o g r a m m v o r z e i t i g a b g e b r o c h e n , i s t d e r F u n k t i o n s w e r t - 1 . W i r d f r s _ t i m e o u t d e r W e r t - 1 a n g e g e b e n , s o w i r d d a s P r o g r a m m z w a r k o m p l e t t a u s g e f h r t , d i e A u s g a b e j e d o c h u n t e r d r c k t . D i e s e V o r g e g e n s w e i s e i s t d e r A u s g a b e u m l e i t u n g i n j e d e m F a l l v o r z u z i e h e n . D i e R e c h t e d e s a u s g e f h r t e n P r o g r a m m s w e r d e n a u s d e n R e c h t e n d e s I n t e r n e t - K l i e n t e n a b g e l e i t e t . < / p > < b r > < p > B e i s p i e l : < / p > < b r > < p > r i c h t i g : ( p k z i p 2 5 . e x e b e f i n d e t s i c h i n / h o m e / t d b e n g i n e / ) < / p > < b r > < p r e > C G I C l o s e B u f f e r . . P u f f e r l e e r e n < b r > C G I E x e c ( ' p k z i p 2 5 . e x e - a d d b a c k u p . z i p * ' ) . . z e i g t d i e g e s a m t e L i s t e < b r > . . u n d e r z e u g t b a c k u p . z i p i m C G I - V e r z e i c h n i s < b r > < b r > r i c h t i g : ( c m d . e x e b e f i n d e t s i c h i n / h o m e / t d b e n g i n e / ) < b r > < b r > . . . < b r > C G I E x e c ( ' c m d . e x e / c s e t ' ) . . z e i g t d a s g e s a m t e E n v i r o n m e n t < b r > < b r > < b r > f a l s c h : ( c m d . e x e u n d p k z i p 2 5 b e f i n d e n s i c h i n / h o m e / t d b e n g i n e / ) < b r > < b r > . . . < b r > C G I E x e c ( ' c m d . e x e / c p k z i p 2 5 . e x e - a d d b a c k u p . z i p * > n u l ' ) . . e r z e u g t b a c k u p . z i p o h n e < b r > A u s g a b e < b r > < b r > < b r > r i c h t i g : ( p k z i p 2 5 . e x e b e f i n d e t s i c h i n / h o m e / t d b e n g i n e / ) < b r > < b r > C G I E x e c ( ' p k z i p 2 5 . e x e - a d d b a c k u p . z i p * ' , - 1 ) . . e r z e u g t b a c k u p . z i p o h n e A u s g a b e < b r > < / p r e > < b r > < p > E i n s c h r n k u n g : C G I E x e c k a n n ( z u m i n d e s t p r o b l e m l o s ) n u r e c h t e 3 2 - B i t A n w e n d u n g e n a u s f h r e n . < / p > < b r > < p > L i n u x : < / p > < b r > < p > D i e c o m m a n d l i n e v o n C G I E x e c w i r d a n d i e S h e l l d e s I n t e r n e t - K l i e n t e n m i t d e s s e n R e c h t e n b e r g e b e n . H i n w e i s : H i e r i s t d i e A u s g a b e u m l e i t u n g d e r e m p f o h l e n e W e g , d i e A u s g a b e n d e s a u f g e r u f e n e n P r o g r a m m s z u u n t e r d r c k e n . B e i s p i e l : < / p > < b r > < p r e > C G I C l o s e B u f f e r . . P u f f e r l e e r e n < b r > C G I W r i t e ( ' < p r e > ' ) . . A u s g a b e e n t s p r e c h e n d B i l d s c h i r m < b r > C G I E x e c ( ' s e t ' ) . . z e i g t d a s g e s a m t e E n v i r o n m e n t < b r > C G I W r i t e L n ( ' < / p r e > ' ) . . C G I E x e c ( ' t a r - c z - f b a c k u p . t a r . g z * ' ) . . e r z e u g t d a s A r c h i v b a c k u p . t a r . g z m i t A u s g a b e . . . . C G I E x e c ( ' t a r - c z - f b a c k u p . t a r . g z * > / d e v / n u l l ' ) . . e r z e u g t d a s A r c h i v b a c k u p . t a r . g z o h n e A u s g a b e . . < / p r e > H i n w e i s : S i e s o l l t e n C G I E x e c i m m e r m i t b e s o n d e r e r V o r s i c h t e i n s e t z e n . U n t e r b i n d e n S i e d u r c h g e e i g n e t e S e m a p h o r e n g l e i c h z e i t i g e A u f r u f e ( v o r a l l e m b e i A r c h i v i e r u n g s p r o g r a m m e n ) . B e d e n k e n S i e , d a j e d e r C G I - P r o z e s s n u r e i n e b e s c h r n k t e Z e i t z u r V e r f g u n g h a t ( i m h t t p - S e r v e r e i n s t e l l b a r ) .
Syntax: CGIWRITE(S : STRING) : INTEGER

S : b e l i e b i g e Z e i c h e n k e t t e
G i b t e i n e Z e i c h e n k e t t e a n d i e S t a n d a r d a u s g a b e
0 , a l l e s i n O r d n u n g , s o n s t F e h l e r c o d e
G i b t d e n P a r a m e t e r u n v e r n d e r t a n d i e S t a n d a r d a u s g a b e w e i t e r . < b r > < b r > F a l l s d i e C G I - A u s g a b e p u f f e r u n g a k t i v i s t , e r f o l g t d i e A u s g a b e e r s t , w e n n d e r P u f f e r v o l l i s t o d e r d a s P r o g r a m m b e e n d e t w i r d .
Syntax: ramtext_part(ramtext : STRING; startpos,count : INTEGER) : STRING

r a m t e x t : R a m t e x t n a m e d e r F o r m " r a m t e x t : . . . " < b r > s t a r t p o s : P o s i t i o n d e s e r s t e n Z e i c h e n s d e r z u e x t r a h i e r e n d e n Z e i c h e n k e t t e < b r > c o u n t : L n g e d e r z u e x t r a h i e r e n d e n Z e i c h e n k e t t e
E x t r a h i e r t e i n e Z e i c h e n k e t t e a u s e i n e m R a m t e x t
E x t r a h i e r t e Z e i c h e n k e t t e
M i t d i e s e r F u n k t i o n k a n n m a n Z e i c h e n k e t t e n a u s e i n e m R a m t e x t e x t r a h i e r e n . E s w e r d e n c o u n t Z e i c h e n a b s t a r t p o s z u r c k g e l i e f e r t . < b r > < b r > I s t s t a r t p o s = 0 o d e r z e i g t s t a r t p o s b e r d a s D a t e i e n d e h i n a u s , s o w i r d e i n L e e r s t r i n g z u r c k g e l i e f e r t . F r c o u n t s i n d W e r t e v o n 0 b i s 2 5 5 z u l s s i g .
Syntax: ramtext_insert(ramtext : STRING; startpos : INTEGER; target : STRING) : INTEGER

r a m t e x t : R a m t e x t n a m e i n d e r F o r m " r a m t e x t : . . . " < b r > s t a r t p o s : P o s i t i o n d e s Z e i c h e n s , a n d e r d i e Z e i c h e n k e t t e e i n g e f g t w i r d < b r > t a r g e t : d i e e i n z u f g e n d e Z e i c h e n k e t t e
F g t e i n e Z e i c h e n k e t t e i n e i n e n R a m t e x t e i n
A n z a h l d e r d u r c h d i e E i n f g u n g v e r s c h o b e n e n Z e i c h e n
D i e s e F u n k t i o n f g t e i n e Z e i c h e n k e t t e a n d e r P o s i t i o n s t a r t p o s e i n . < b r > < b r > D e r R c k g a b e i s t e h e r v o n a k a d e m i s c h e m I n t e r e s s e , d e n n e s h a n d e l t s i c h d a b e i u m d i e A n z a h l d e r v e r s c h o b e n e n Z e i c h e n , a l s o D a t e i g r e - s t a r t p o s . < b r > D e r W e r t 0 w i r d z u r c k g e g e b e n , w e n n d e r S t r i n g n i c h t e i n g e f g t w e r d e n k o n n t e , w e i l < b r > < b r > * a l s s t a r t p o s d e r W e r t 0 b e r g e b e n w u r d e < b r > * s t a r t p o s g r e r a l s d i e a k t u e l l e D a t e i g r e + 1 w a r < b r > * d i e E i n f g u n g d i e m a x i m a l e G r e v o n d e r z e i t 6 4 K B y t e g e s p r e n g t h t t e . < b r > < b r > F r s t a r t p o s s i n d d e m n a c h n u r d i e W e r t e v o n 1 ( E i n f g e n g a n z a m A n f a n g ) b i s g e t s i z e ( r a m t e x t ) + 1 ( E i n f g e n g a n z a m E n d e ) g l t i g . < b r >
Syntax: ChDir(Verzeichnis: String): INTEGER

V e r z e i c h n i s : N a m e d e s V e r z e i c h n i s s e s . A u c h u n t e r W i n d o w s k n n e n a l s V e r z e i c h n i s t r e n n z e i c h e n n o r m a l e S l a s h ( / ) s t a t t d e r i n d i e s e m B e t r i e b s s y s t e m b l i c h e n B a c k s l a s h ( \ ) a n g e g e b e n w e r d e n . < b r > < b r >
V e r z e i c h n i s w e c h s e l
D e r R c k g a b e w e r t i s t 0 w e n n d e r W e c h s e l e r f o l g r e i c h w a r , a n d e r n f a l l s 2 .
C h D i r w e c h s e l t i n d a s a n g e g e b e n e V e r z e i c h n i s . < b r > < b r > B e i s p i e l < b r > < b r > < p r e > < b r > C h D i r ( ' / h o m e / t d b e n g i n e / d a t a b a s e / a d r e s s ' ) < b r > < / p r e >
Syntax: CHMOD(Pfad,Rechte : STRING) : INTEGER

P f a d : D a t e i , d e r e n R e c h t e g e n d e r t w e r d e n s o l l e n < b r > R e c h t e : S t r i n g d e r F o r m ' r w x r w x r w x '
D a t e i r e c h t e n d e r n
F e h l e r c o d e d e s B e t r i e b s s y s t e m s
D i e F u n k t i o n s e t z t u n t e r L i n u x d i e R e c h t e a n d e r D a t e i n e u , j e n a c h d e n R e c h t e n , m i t d e r d i e s e F u n k t i o n a u s g e f h r t w i r d ( a l s o n u r a l s r o o t b z w B e s i t z e r d e r D a t e i ) . D i e n e u e n R e c h t e w e r d e n a l s ' r w x r w x r w x ' a n g e g e b e n , w o b e i d a s e r s t e T r i p p e l f r d i e R e c h t e d e s B e n u t z e r s , d a s z w e i t e f r d i e R e c h t e d e r G r u p p e u n d d a s l e t z t e f r d i e R e c h t e d e s R e s t s d e r W e l t g i l t . D a s F u n k t i o n s e r g e b n i s l i e f e r t d e n L i n u x - F e h l e r s t a t u s . < b r >
Syntax: Choice(Zahl: INTEGER;Ausdruck1,Ausdruck2,..., AusdruckN): Real/String

E i n e n W e r t a u s e i n e r L i s t e a u s w h l e n
D i e F u n k t i o n l i e f e r t d e n Z a h l - t e n A u s d r u c k z u r c k . W e n n Z a h l n i c h t i m B e r e i c h v o n 1 . . N l i e g t , l i e f e r t d i e F u n k t i o n a l s E r g e b n i s i m m e r d e n l e t z t e n A u s d r u c k A u s d r u c k N . J e n a c h T y p d e s A u s d r u c k s l i e f e r t d i e F u n k t i o n e n t w e d e r e i n e n S t r i n g o d e r e i n e n Z a h l t y p z u r c k . < b r >
E r s t w i r d d e r n u m e r i s c h e A u s d r u c k Z a h l b e r e c h n e t ( e r g i b t n ) . I m A n s c h l u d a r a n w i r d d e r n - t e A u s d r u c k b e r e c h n e t u n d a l s E r g e b n i s d i e s e r F u n k t i o n z u r c k g e l i e f e r t . F a l l s k e i n n - t e r A u s d r u c k v o r h a n d e n i s t , w i r d d e r l e t z t e A u s d r u c k d e r R e i h e b e r e c h n e t . < b r > < b r > B e i s p i e l < b r > < b r > C h o i c e ( x , " e i n s " , " z w e i " , " d r e i " ) - > " e i n s " f r x = 1 < b r > - > " z w e i " f r x = 2 < b r > - > " d r e i " i n a l l e n a n d e r e n F l l e n < b r > C h o i c e ( 5 , " e i n s " , " z w e i " , " d r e i " ) - > " d r e i " < b r > < b r > S e h r p r a k t i s c h i s t d i e s e F u n k t i o n b e i s p i e l s w e i s e b e i d e r A u s w e r t u n g v o n A u s w a h l f e l d e m . I n t e r n h a b e n A u s w a h l f e l d e r d e n W e r t 0 , w e n n s i e g a n z l e e r s i n d , a n s o n s t e n e i n e 1 , w e n n d e r e r s t e W e r t g e w h l t i s t , e i n e 2 b e i m z w e i t e n W e r t u s w . I m f o l g e n d e n B e i s p i e l i s t " G e s c h l e c h t " e i n A u s w a h l f e l d m i t d e n K o n s t a n t e n " w e i b l i c h " , " m n n l i c h " u n d " u n b e k a n n t " . < b r > < b r > C h o i c e ( G e s c h l e c h t , " S e h r g e e h r t e F r a u " + $ N a m e , " S e h r g e e h r t e r H e r r " + $ N a m e , " S e h r g e e h r t e D a m e n u n d H e r r e n " )
Syntax: Chr(Zahl: BYTE) : STRING

Z e i c h e n a u s e i n e m A N S I - C o d e b e r e c h n e n
D i e F u n k t i o n l i e f e r t e i n e Z e i c h e n k e t t e m i t g e n a u e i n e m Z e i c h e n . D i e s e s Z e i c h e n h a t d e n b e r g e b e n e n A N S I - C o d e . < b r >
B e i s p i e l < b r > < b r > C h r ( 6 5 ) - > " A "
Syntax: ClearDat(Tabelle: INTEGER) : INTEGER

T a b e l l e : T a b e l l e n h a n d l e v o n O P E N D B
L s c h t a l l e D a t e n s t z e e i n e r D a t e i
F e h l e r c o d e < b r > < b r > 0 = T a b e l l e e r f o l g r e i c h g e l e e r t
L s c h t o h n e w e i t e r e R c k f r a g e s m t l i c h e D a t e n s t z e a u s d e r T a b e l l e . < b r > < b r > B e i s p i e l < b r > < b r > < p r e > < b r > V A R f c : I N T E G E R < b r > f c : = C l e a r D a t ( K F Z ) < b r > I F f c = 1 1 5 T H E N c g i w r i t e l n ( ' D i e T a b e l l e i s t n u r z u m L e s e n g e o e f f n e t ' ) < b r > E L S I F f c < > 0 T H E N < b r > c g i w r i t e l n ( T D B _ E R R O R S T R ( f c ) ) < b r > E L S E < b r > c g i w r i t e l n ( ' D i e T a b e l l e i s t j e t z t l e e r ' ) < b r > E N D < b r > < / p r e >
Syntax: ramtext_find(ramtext : STRING; target : STRING [,startpos[,mode] : INTEGER]) : INTEGER

r a m t e x t : R a m t e x t n a m e d e r F o r m " r a m t e x t : . . . " < b r > t a r g e t : S u c h s t r i n g ( o h n e J o k e r ! ) < b r > s t a r t p o s : P o s i t i o n , a b d e r g e s u c h t w i r d ( V o r g a b e = 1 ) < b r > m o d e : 0 ( V o r g a b e ) G r o - / K l e i n s c h r e i b u n g b e a c h t e n < b r > 1 G r o / - K l e i n s c h r e b i n g i g n o r i e r e n
S u c h t e i n e Z e i c h e n k e t t e i n e i n e m R a m t e x t
0 : t a r g e t w u r d e n i c h t g e f u n d e n < b r > a n s o n s t e n P o s i t i o n d e s e r s t e n Z e i c h e n d e r b e r e i n s t i m m u n g
D a m i t k a n n m a n e i n e Z e i c h e n k e t t e i n e i n e m R a m t e x t s u c h e n . D e r o p t i o n a l e P a r a m e t e r s t a r t p o s g i b t d e n O f f s e t i m R a m t e x t a n , a b d e m g e s u c h t w i r d . D e r R c k g a b e w e r t e n t s p r i c h t d e r P o s i t i o n d e s e r s t e n Z e i c h e n s d e r b e r e i n s t i m m u n g ( i m m e r v o m < b r > A n f a n g d e s R a m t e x t s a u s g e s e h e n ) b z w . 0 , w e n n d e r s t r i n g n i c h t g e f u n d e n w i r d . D i e F u n k t i o n e n t s p r i c h t i n e t w a d e r F u n k t i o n p o s b e i n o r m a l e n Z e i c h e n k e t t e n . 0 i s t a u c h d a s E r g e b n i s , w e n n d e r S t a r t w e r t h i n t e r d e r a k t u e l l e n D a t e i g r e d e s < b r > R a m t e x t l i e g t .
Syntax: CLOSE(texthandle : INTEGER) : INTEGER

t e x t h a n d l e : t e x t h a n d l e v o n R E S E T , R E W R I T E o d e r T A P P E N D
S c h l i e t e i n e T e x t d a t e i
F e h l e r c o d e < b r > < b r > 0 = e r f o l g r e i c h g e s c h l o s s e n
E x t e r n e T e x t d a t e i e n w e r d e n v o n d e r t d b e n g i n e u n d m e i s t a u c h v o m B e t r i e b s s y s t e m g e p u f f e r t . E r s t e i n C L O S E s o r g t d a f r , d a s s d i e D a t e n a u c h b e r t r a g e n u n d r e s e r v i e r t e S y s t e m r e s o u r c e n w i e d e r f r e i g e g e b e n w e r d e n . < b r > < b r > N a c h C L O S E i s t k e i n Z u g r i f f m e h r a u f d e n t e x t h a n d l e e r l a u b t . < b r > < b r > A u c h R a m t e x t e s o l l t e n n a c h G e b r a u c h w i e d e r g e s c h l o s s e n w e r d e n .
Syntax: CLOSEDB(tabellenhandle : INTEGER [;dir : STRING) : INTEGER

t a b e l l e n h a n d l e : v o n O P E N D B < b r > d i r : W e n n a n g e g e b e n u n d e s s i c h u m e i n e v i r t u e l l e T a b e l l e h a n d e l t , d a n n w e r d e n d i e z u r T a b e l l e g e h r e n d e n D a t e i e n ( T a b e l l e s e l b s t , I n d i z e s , M e m o s u n d B l o b s ) i n d i e s e s V e r z e i c h n i s k o p i e r t .
S c h l i e s s t e i n e T a b e l l e
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h g e s c h l o s s e n
A m P r o g r a m m e n d e w e r d e n a l l e T a b e l l e n a u t o m a t i s c h g e s c h l o s s e n . D e n n o c h b e l e g e n g e f f n e t e T a b e l l e n S y s t e m r e s s o u r c e n w i e S p e i c h e r u n d F i l e h a n d l e s u n d s o l t e n d e m n a c h b e i N i c h t g e b r a u c h w i e d e r g e s c h l o s s e n w e r d e n . < b r / > < b r / > < b r > H i n w e i s : A l l e s c h r e i b e n d e n O p e r a t i o n e n a u f e i n e T a b e l l e w e r d e n v o n t d b e n g i n e n i c h t g e p u f f e r t . D i e V e r n d e r u n g e n s t e h e n d a m i t u n m i t t e l b a r n a c h d e r O p e r a t i o n a l l e n N e t z w e r k t e i l n e h m e r n z u r V e r f g u n g
Syntax: CLRARRAY(VAR ArrayVar)

A r r a y V a r : b e l i e b i g e A r r a y - V a r i a b l e
I n i t i a l i s i e r t e i n e A r r a y - V a r i a b l e m i t l e e r e n E i n t r g e n
< k e i n e r >
E i n e s e h r s c h n e l l e F u n k t i o n , u m e i n b e r e i t s b e a r b e i t e t e s A r r a y w i e d e r i n d e n ( l e e r e n ) A u s g a n g s z u s t a n d z u v e r s e t z e n . < b r > < b r > D i e s e F u n k t i o n w i r d b e i a l l e n A r r a y s a u t o m a t i s c h v o r d e m e r s t e n Z u g r i f f a u s g e f h r t .
Syntax: GETDEF(db : INTEGER; textfile : STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B < b r > t e x t f i l e : P f a d z u e i n e r e x t e r n e n T e x t d a t e i o d e r e i n e m R a m t e x t
S c h r e i b t d i e S t r u k t u r e i n e r T a b e l l e i n e i n e T e x t d a t e i
F e h l e r c o d e < b r > 0 : e r f o l g r e i c h b e r t r a g e n
D i e S t r u k t u r e i n e r d e r T a b e l l e w i r d s o a b g e l e g t , d a s s M A K E D B d a r a u s w i e d e r e i n e T a b e l l e g e n e r i e r e n k a n n . < b r > < b r > N h e r e s s i e h e M A K E D B
Syntax: ramtext_delete(ramtext : STRING; startpos,count : INTEGER) : INTEGER

r a m t e x t : N a m e d e s R a m t e x t i n F o r m " r a m t e x t : . . . " < b r > s t a r t p o s : P o s i t i o n d e s e r s t e n z u l s c h e n d e n Z e i c h e n s < b r > c o u n t : A n z a h l d e r z u l s c h e n d e n Z e i c h e n
L s c h t e i n e n B e r e i c h a u s e i n e m R a m t e x t
A n z a h l d e r w i r k l i c h g e l s c h t e n Z e i c h e n
H i e r w e r d e n c o n t Z e i c h e n a b s t a r t p o s a u s d e m R a m t e x t g e l s c h t . W i e d e r u m i s t d e r R c k g a b e w e r t d i e A n z a h l d e r b e w e g t e n Z e i c h e n o d e r 0 , w e n n d i e K o m b i n a t i o n a u s s t a r t p o s u n d c o u n t n i c h t z u l s s i g w a r . F r s t a r t p o s s i n d W e r t e z w i s c h e n 1 u n d g e t s i z e ( r a m t e x t ) e r l a u b t . c o u n t m u s s z w i s c h e n 0 u n d g e t s i z e ( r a m t e x t ) - s t a r t p o s l i e g e n . < b r > < b r > D e r g e l s c h t e T e x t w i r d i n d e n S y s t e m r a m t e x t " r a m t e x t : ~ c l i p " b e r t r a g e n .
Syntax: GETQUERYSTRING(id : STRING) : STRING

i d : N a m e d e r C G I - V a r i a b l e n
H o l t e i n e n W e r t a u s d e r E n v i r o n m e n t - V a r i a b l e n " Q U E R Y _ S T R I N G "
W e r t d e r C G I - V a r i a b l e n , f a l l s v o r h a n d e n , < b r > s o n s t L e e r s t r i n g
D i e E n v i r o n m e n t - V a r i a b l e Q U E R Y _ S T R I N G w i r d s o b e r t r a g e n : < b r > < b r > V a r i a b l e 1 = W e r t 1 & V a r i a b l e 2 = W e r t 2 & . . . < b r > < b r > D i e g e s a m t e V a r i a b l e i s t U R L - c o d i e r t . < b r > < b r > B e i d e m Z u g r i f f b e r G E T Q U E R Y S T R I N G w i r d d i e s e V a r i a b l e a u t o m a t i s c h U R L - d e c o d i e r t , s o d a s s m a n d i r e k t m i t d e n W e r t e n a r b e i t e n k a n n . < b r > < b r > B e i s p i e l : < b r > < b r > A u s f o l g e n d e r U R L < b r > h t t p : / / m e i n h o s t . d e / c g i - t d b / t e s t . r g ? n a m e = M e i e r & v o r n a m e = H a n s < b r > < b r > l i e f e r t < b r > < b r > G E T Q U E R Y S T R I N G ( ' n a m e ' ) - > M e i e r < b r > G E T Q U E R Y S T R I N G ( ' v o r n a m e ' ) - > H a n s < b r > G E T Q U E R Y S T R I N G ( ' s o n s t i g e s ' ) - > ' '
Syntax: CGIWRITETEMPLATE

< k e i n e >
S c h r e i b t d e n S y s t e m - R a m t e x t i n d i e S t a n d a r d a u s g a b e
0 : A l l e s i n O r d n u n g < b r > s o n s t : F e h l e r c o d e
b e r t r g t d e n S y s t e m - R a m t e x t " r a m t e x t " i n d i e S t a n d a r d a u s g a b e . < b r > < b r > F a l l s d i e C G I - A u s g a b e p u f f e r u n g a k t i v i s t , e r f o l g t d i e A u s g a b e e r s t , w e n n d e r P u f f e r v o l l i s t o d e r d a s P r o g r a m m b e e n d e t w i r d . < b r > < b r > D i e b l i c h e V o r g e h e n s w e i s e b e i d e r A r b e i t m i t T e m p l a t e s : < b r > < p r e > < b r > L o a d T e m p l a t e ( " v o r l a g e n / e i n g a b e f o r m u l a r . h t m l " ) < b r > S u b s t ( ' # N a m e # ' , a d r e s s e n , ' N a m e ' ) < b r > S u b s t ( ' # V o r n a m e # ' , a d r e s s e n , ' V o r n a m e ' ) < b r > . . . < b r > C G I W r i t e T e m p l a t e < b r > < / p r e >
Syntax: CGIWRITEHTML(S : STRING) : INTEGER

S : b e l i e b i g e Z e i c h e n k e t t e
G i b t e i n e Z e i c h e n k e t t e i m H T M L - F o r m a t a n d i e S t a n d a r d a u s g a b e
0 : a l l e s i n O r d n u n g < b r > s o n s t : F e h l e r c o d e
G i b t e i n e Z e i c h e n k e t t e i m H T M L - F o r m a t a n d i e S t a n d a r d a u s g a b e . D a b e i w e r d e n a l l e S o n d e r z e i c h e n e n t s p r e c h e n d d e r H T M L - C o d i e r u n g s t a b e l l e g e w a n d e l t . < b r > < b r > B e i s p i e l : < b r > < b r > < M l l e r > - > < M & u u m l ; l l e r > < b r > < b r > D i e s e F u n k t i o n i s t b e i l n g e r e n S t r i n g d e r K o m b i n a t i o n C G I W R I T E ( T O H T M L ( S ) ) v o r z u z i e h e n , d a d a b e i T O H T M L z u r b e r s c h r e i t u n g d e r m a x i m a l e n L n g e v o n Z e i c h e n k e t t e n ( 2 5 5 Z e i c h e n ) f h r e n k a n n . < b r > < b r > F a l l s d i e C G I - A u s g a b e p u f f e r u n g a k t i v i s t , e r f o l g t d i e A u s g a b e e r s t , w e n n d e r P u f f e r v o l l i s t o d e r d a s P r o g r a m m b e e n d e t w i r d .
Syntax: CGIWRITELN(S : STRING) : INTEGER

S : b e l i e b i g e Z e i c h e n k e t t e
G i b t e i n e Z e i c h e n k e t t e + < Z e i l e n v o r s c h u b > a n d i e S t a n d a r d a u s g a b e
0 , a l l e s i n O r d n u n g , s o n s t F e h l e r c o d e
G i b t d e n P a r a m e t e r e r g n z t u m C R / L F a n d i e S t a n d a r d a u s g a b e w e i t e r . < b r / > < b r > F a l l s d i e C G I - A u s g a b e p u f f e r u n g a k t i v i s t , e r f o l g t d i e A u s g a b e e r s t , w e n n d e r P u f f e r v o l l i s t o d e r d a s P r o g r a m m b e e n d e t w i r d .
Syntax: LOADTEMPLATE(textfile : STRING) : INTEGER

t e x t f i l e : P f a d z u e x t e r n e n T e x t d a t e i
L d t e i n e e x t e r n e T e x t d a t e i i n d e n S y s t e m - R a m t e x t
F e h l e r c o d e < b r > < b r > 0 = e r f o l g r e i c h g e l a d e n
K o p i e r t e i n e e x t e r n e T e x t d a t e i i n d e m S y s t e m - R a m t e x t " r a m t e x t " . D i e F u n k t i o n e n t p r i c h t a l s o < b r > < b r > C O P F I L E ( t e x t f i l e , " r a m t e x t " ) < b r > < b r > Z u s t z l i c h z u n o r m a l e n T e x t d a t e i e n k n n e n h i e r a u c h U R L a n g e g e b e n w e r d e n , d i e b e r d a s h t t p - P r o t o k o l l e r r e i c h b a r s i n d . B e i s p i e l : < b r > < b r > L o a d T e m p l a t e ( ' h t t p : / / w w w . i r g e n d w o . d e / e i n e s e i t e . h t m l ' ) < b r > < b r > H i e r w e r d e n d a n n m i t S U B S T v e r s c h i e d e n e E r s e t z u n g e n d u r c h g e f h r t u n d s c h l i e l i c h m i t C G I W R I T E T E P L A T E z u m K l i e n t e n b e r t r a g e n . < b r > < b r > B e i s p i e l : < b r > < p r e > < b r > L o a d T e m p l a t e ( ' t e m p l a t e s / a d r e s s e n a u s g a b e . h t m l ' ) < b r > W H I L E i + + < = M a x L a b e l ( d b ) D O < b r > S U B S T ( ' # ' + L a b e l ( d b , i ) + ' # ' , d b , i , 1 + 4 ) / / H T M L u n d < B R > a m Z e i l e n e n d e < b r > E N D < b r > C G I W r i t e T e m p l a t e < b r > < / p r e > < b r > < b r > H i n w e i s : D i e s e k l e i n e P r o g r a m m f r a g m e n t e r s e t z t a l l e F e l d e r e i n e r T a b e l l e i n k l u s i v e M e m o s .
Syntax: CGITESTSESSION(SessionID : STRING) : INTEGER

S e s s i o n I D : E i n e v o n C G I G E T S E S S I O N g e l i e f e r t e S e s s i o n - I D , d i e j e d o c h b e l i e b i g e r w e i t e r t s e i n k a n n .
T e s t e t e i n e S e s s i o n - I D a u f G l t i g k e i t
0 : S e s s i o n n i c h t g l t i g w e g e n n i c h t b e r e i n s t i m m e n d e r I P - A d r e s s e < b r > < b r > s o n s t : 1 + A n z a h l d e r S e k u n d e n , d i e s e i t d e m E i n r i c h t e n d e r S e s s i o n - I D v e r s t r i c h e n s i n d
B e s o n d e r s b e i s e n s i b l e n D a t e n b e r t r a g u n g e n s o l l t e e i n e S e s s i o n - I D a u f G l t i g k e i t g e p r f t w e r d e n . < b r / > < b r > C G I T E S T S E S S I O N l i e f e r t z w a r k e i n e a b s o l u t e S i c h e r h e i t b e i b s a r t i g e n A n g r i f f e n , s c h l i e t a b e r d i e G r o z a h l d e r " v e r s e h e n t l i c h e n " Z u g r i f f e a u f s e s s i o n b e z o g e n e D a t e n w i r k u n s v o l l a u s . < b r / >
Syntax: COMPILE(mod : STRING [; prg : STRING]) : INTEGER

m o d : P f a d z u m E A S Y - Q u e l l t e x t < b r > p r g : P f a d z u r P R G - D a t e i
C o m p i l i e r t e i n e n E A S Y - Q u e l l t e x t i n d e n P R G - Z w i s c h e n c o d e
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h k o m p i l i e r t
W e n n b e i m K o m p i l i e r e n e i n F e h l e r a u f t r i t t ( R c k g a b e w e r t u n g l e i c h 0 ) , s o s i n d f o l g e n d e S y s t e m v a r i a b l e n g e s e t z t : < b r > < b r > T D B _ L a s t E r r o r - > F e h l e r c o d e < b r > T D B _ E r r o r L i n e - > Z e i l e n n u m m e r i m P r o g r a m m < b r > T D B _ E r r o r O f s - > S p a l t e i n d e r P r o g r a m m z e i l e < b r > T D B _ E r r o r P o s - > Z e i c h e n p o s i t i o n i m Q u e l l t e x t < b r > T D B _ E r r o r M s g - > F e h l e r h a f t e r A u s d r u c k
Syntax: COMPLETE

< k e i n e >
S y m b o l f r k o m p l e t t e n D a t e n s a t z
< k e i n e r >
C O M P L E T E w i r d i n z w e i S i t u a t i o n e n e i n g e s e t z t : < b r > < b r > I n S e l e k t i o n e n k a n n s t e h e n < b r > < b r > S u c h m u s t e r I N C O M P L E T E < b r > < b r > D a b e i w i r d i n a l l e n S T R I N G - u n d M E M O - F e l d e r n g e s u c h t < b r > < b r > D a s a n d e r e E i n s a t z g e b i e t i s t d i e V o l l t e x t i n d i z i e r u n g . H i e r s o r g t . . . F I E L D S ( C O M P L E T E . . . , d a s s d e r k o m p l e t t e D a t e n s a t z i n d i z i e r t w i r d .
Syntax: CONVLINE(Zeile : STRING) : STRING

Z e i l e : b e l i e b i g e Z e i c h e n k e t t e o d e r R A M T e x t
K o n v e r t i e r t H T M L - T e x t n a c h A S C I I
Z e i l e , n a c h d e m a l l e H T M L - S o n d e z e i c h e n i n d e n A S C I I - Z e i c h e n s a t z k o n v e r t i e r t w u r d e n . B e r e i c h e z w i s c h e n ' < ' u n d ' > ' w e r d e n e n t f e r n t .
B e i s p i e l : C O N V L I N E ( ' < b > M l l e r < / b > ' ) - > ' M l l e r ' < b r / >
Syntax: TESTSEL(selection : STRING) : INTEGER

s e l e c t i o n : l o g i s c h e r A u s d r u c k a l s S T R I N G
L i e f e r t d e n F e h l e r c o d e e i n e r S e l e k t i o n
F e h l e r c o d e d e s A u s d r u c k s
L i e f e r t 0 , w e n n e s s i c h b e i d e m A r g u m e n t u m e i n e g l t i g e S e l e k t i o n h a n d e l t , a n d e r n f a l l s d e r t d b e n g i n e - F e h l e r c o d e . < b r > < b r > D i e s e F u n k t i o n i s t p r a k t i s c h , w e n n d e m A n w e n d e r e i n e S e l e k t i o n s e i n g a b e g e s t a t t e t w i r d . B e i s p i e l : S i e h e d m k . m o d .
Syntax: COPYBLOB(blob : fielddesc; [file : STRING|VAR array : [BYTE|CHAR|INTEGER|TBITS|REAL|STRING]]) : INTEGER

b l o b : T a b e l l e n h a n d l e , F e l d n u m m e r ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d b e z e i c h n e r < b r > f i l e : P f a d z u r D a t e i , i n d e r d i e K o p i e g e s p e i c h e r t w i r d < b r > a r r a y : F e l d v a r i a b l e b e l i e b i g e n T y p s
K o p i e r t d e n ( e i n g e b e t t e t e n ) I n h a l t e i n e s B L O B - F e l d e s i n e i n e D a t e i o d e r e i n A r r a y
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h b e r t r a g e n
C O P Y B L O B k a n n n u r b e i e i n g e b e t t e t e n B L O B s v e r w e n d e t w e r d e n . < b r / > < b r > < b r / > < b r > W i r d b e i d e r Z i e l d a t e i ' c o n ' a n g e g e b e n , s o w i r d d a s B L O B a u f d i e S t a n d a r d a u s g a b e a u s g e g e b e n . < b r / > < b r > < b r / > < b r > B e i b e r g a b e e i n e r F e l d v a r i a b l e n w i r d d e r I n h a l t d e s B L O B s i n d i e s e b e r t r a g e n . D i e I n i t i a l i s i e r u n g d e s A r r a y s e r f o l g t a u t o m a t i s c h . B e a c h t e n S i e , d a s s b e i m S p e i c h e r n i n s B L O B u n d b e i m W i e d e r a u s l e s e n j e w e i l s e i n A r r a y v o m i d e n t i s c h e n T y p b e r g e b e n w e r d e n m u s s , d a s o n s t " D a t e n m l l " e n t s t e h t . < b r / >
Syntax: COPYFILE(from, to : STRING) : INTEGER

f r o m : P f a d z u r A u s g a n g s d a t e i < b r > t o : P f a d z u r Z i e l d a t e i
L e g t d i e K o p i e e i n e r D a t e i a n
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h k o p i e r t
A l s Q u e l l d a t e i e n k o m m e n i n F r a g e : < b r > e x t e r n e D a t e i e n < b r > R a m t e x t e ( " r a m t e x t : . . . " ) < b r > < b r > A l s Z i e l d a t e i e n k o m m e n i n F r a g e : < b r > e x t e r n e D a t e i e n < b r > R a m t e x t e ( " r a m t e x t : . . . " ) < b r > S t a n d a r d a u s g a b e ( " c o n " )
Syntax: COPYMEMO(memo : fielddesc; pfad : STRING [to_ascii : INTEGER]) : INTEGER

m e m o : T a b e l l e n h a n d l e , F e l d n u m m e r ( o d e r ) < b r > T a b e l l e n h a n d l e , F e l d b e z e i c h n e r < b r > p f a d : P f a d z u r e x t e r n e n D a t e i < b r > t o _ a s c i i : 1 - > d i e e x t e r n e D a t e i w i r d i m A S C I I - Z e i c h e n s a t z a n g e l e g t , s o n s t A N S I - Z e i c h e n s a t z < b r >
K o p i e r t e i n M e m o i n e i n e ( e x t e r n e ) T e x t d a t e i
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h k o p i e r t
D e r i n e i n e m M e m o e n h a l t e n e T e x t w i r d i n e i n e e x t e r n e T e x t d a t e i k o p i e r t . D e r Z e i c h s a t z k a n n b e r d e n t o _ a s c i i - S c h a l t e r a u s g e w h l t w e r d e n . < b r > < b r > F o l g e n d e Z i e l e s i n d e r l a u b t : < b r > < b r > e x t e r n e D a t e i < b r > R a m t e x t ( " r a m t e x t : . . . " ) < b r > S t a n d a r d a u s g a b e ( " c o n " )
Syntax: COS(x : REAL) : REAL

x : b e l i e b i g e Z a h l
K o s i n u s e i n e r Z a h l
K o s i n u s ( W i n k e l f u n k t i o n )
Syntax: COUNT(Expression) : INTEGER

E x p r e s s i o n i s t e i n a r i t h m e t i s c h e r A u s d r u c k , d e r m i n d e n s t e n s e i n e n T a b e l l e n - o d e r F e l d b e z e i c h n e r e n t h l t .
L i e f e r t d i e A n z a h l v o n D a t e n s t z e n e i n e r A u s w e r t u n g
A n z a h l d e r D a t e n s t z e a u s d e r T a b e l l e , d i e d u r c h d e n A u s d r u c k b e s t i m m t w u r d e .
B e i s p i e l : < b r > < b r > V A R x , y , d : I N T E G E R < b r > d : = O p e n D B ( ' d a t a b a s e / a d r e s s e n . d a t ' ) < b r > x : = F i n d A n d M a r k ( d , ' P L Z l i k e " 1 * " ' , ' y : = C O U N T ( a d r e s s e n ) ' )
Syntax: CGIGETSESSION

< k e i n e >
L i e f e r t e i n e S e s s i o n - I D a u s I P - A d r e s s e u n d S y s t e m z e i t
S t r i n g m i t 1 6 Z e i c h e n , < b r > < b r > 1 - 8 : I P - N u m m e r d e s K l i e n e t e n a l s H e x - Z a h l < b r > 9 - 1 6 : S e k u n d e n s e i t d e m 1 . 1 . 1 9 7 0 a l s H e x - Z a h l
E i n e S e s s i o n - I D a u s C G I G E T S E S S I O N h a t s i c h i n d e r P r a x i s a l s a u s r e i c h e n d h e r a u s g e s t e l l t . D e r F a l l , d a s s z w e i K l i e n t e n b e r d i e g l e i c h e I P - A d r e s s e z u r g l e i c h e n S e k u n d e e i n e n F u n k t i o n s a u f r u f b e w i r k e n , i s t u n w a h r s c h e i n l i c h . < b r > < b r > U m j e d o c h g a n z s i c h e r z u g e h e n , k a n n d i e v o n C G I G E T S E S S I O N g e l i e f e r t e S e s s i o n - I D e i n f a c h e r w e i t e r t w e r d e n , b e i s p i e l s w e i s e d u r c h e i n e Z u f a l l s z a h l ( a l s S T R I N G ) d e r e i n e - b e i j e d e m A u f r u f i n k r e m e n t i e r t e - N u m m e r ( a l s S T R I N G ) .
Syntax: DATESTR(date : INTEGER) : STRING

d a t e : D a t u m i m F o r m a t d e r t d b e n g i n e ( T a g e s e i t 1 . 1 . 0 )
D a t u m a l s Z e i c h e n k e t t e
Z e i c h e n k e t t e d e r F o r m t t . m m . j j j j
B e i s p i e l : < b r > < b r > D A T E S T R ( 2 1 . 5 . 1 9 5 2 ) - > " 2 1 . 0 5 . 1 9 5 2 " < b r > D A T E S T R ( T O D A Y ) - > a k t u e l l e s D a t u m a l s Z e i c h e n k e t t e < b r > D A T E S T R ( 0 ) - > " " ( S o n d e r f a l l )
Syntax: DAY(date : INTEGER) : INTEGER

d a t e : D a t u m i m F o r m a t d e r t d b e n g i n e ( T a g e s e i t 1 . 1 . 0 )
E x t r a h i e r t d i e T a g e s z a h l a u s e i n e m D a t u m
T a g e s z a h l a u s d e m D a t u m
B e i s p i e l : < b r > < b r > D A Y ( 1 5 . 2 . 2 0 0 0 ) - > 1 5
Syntax: DAYOFWEEK(date : INTEGER) : STRING

d a t e : D a t u m i m F o r m a t d e r t d b e n g i n e ( T a g e s e i t 1 . 1 . 0 )
W o c h e n t a g e i n e s D a t u m s
W o c h e n t a g d e s D a t u m s ( d e u t s c h ) < b r > " M o n t a g " , " D i e n s t a g " , " M i t t w o c h " , " D o n n e r s t a g " , " F r e i t a g " , " S a m s t a g " , " S o n n t a g "
< p > B e i s p i e l : < / p > < b r > < p > " H e u t e i s t " + D A Y O F W E E K ( T O D A Y ) + " , d e r " + D A T E S T R ( T O D A Y ) - > H e u t e i s t D i e n s t a g , d e r 1 3 . 0 6 . 2 0 0 0 < / p > < b r > < p > D e n O r d i n a l w e r t d e s W o c h e n t a g s e r h a l t e n S i e m i t d e r F o r m e l : 1 + ( d a t e + 4 ) M O D 7 < / p > < b r > < p > 1 = M o n t a g < b r / > < b r > 2 = D i e n s t a g < b r / > < b r > . . . < / p > < b r > < p > S o m i t k n n e n S i e a u c h e i n e e i g e n e F u n k t i o n D a y O f W e e k s c h r e i b e n : < / p >
Syntax: DBDIR(db : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O P E N D B
V e r z e i c h n i s t e i l d e s P f a d e s e i n e r T a b e l l e
V e r z e i c h n i s t e i l d e s P f a d e s e i n e r T a b e l l e , a l s o V e r z e i c h n i s e i n s c h l i e l i c h a b s c h l i e e n d e m S c h r g s t r i c h
D e r g e s a m t e P f a d e i n e r T a b e l l e k a n n s o e r m i t t e l t w e r d e n : < b r / > < b r > < b r / > < b r > D B D I R ( d b ) + D B N A M E ( d b )
Syntax: DBNAME(db : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O P E N D B
N a m e n s t e i l d e s P f a d e s e i n e r T a b e l l e
N a m e n s t e i l d e s P f a d e s
e s g i l t < b r > < b r > P f a d = D B D I R ( d b ) + D B N A M E ( d b )
Syntax: CGIGETPARAM(ident : STRING):STRING

i d e n t : N a m e d e r C G I - V a r i a b l e n
H o l t e i n e n P a r a m e t e r a u s d e r S t a n d a r d e i n g a b e
W e r t d e r C G I - V a r i a b l e n
D i e t d b e n g i n e b e r e i t e t b e i m S t a r t a l l e I n f o r m a t i o n e n d e s K l i e n t e n a u f : < b r > < b r > I n f o r m a t i o n e n a u s d e r E n v i r o n m e n t - V a r i a b l e n Q U E R Y _ S T R I N G w e r d e n b e r d i e F u n k t i o n Q E T Q U E R Y S T R I N G z u r V e r f g u n g g e s t e l l t . < b r > < b r > I n f o r m a t i o n e n a u s S t d I n w e r d e n b e r C G I G E T P A R A M a u f b e r e i t e t . < b r > < b r > A l l e E r g e b n i s s e l i e g e n a l s Z e i c h e n k e t t e i m Z e i c h e n s a t z d e r t d b e n g i n e v o r . < b r > < b r > D i e G r o s s - / K l e i n s c h r e i b u n g d e s P a r a m e t e r s s p i e l t k e i n e R o l l e . < b r > < b r > W e r d e n m e h r e r e C G I - V a r i a b l e n m i t g l e i c h e m N a m e n b e r m i t t e l t , s o e r f o l g t d e r Z u g r i f f f o l g e n d e r m a e n : < b r > < b r > 1 . V a r i a b l e x y z - > C G I G E T P A R A M ( " x y z " ) < b r > 2 . V a r i a b l e x y z - > C G I G E T P A R A M ( " x y z . 1 " ) < b r > 3 . V a r i a b l e x y z - > C G I G E T P A R A M ( " x y z . 2 " ) < b r > u s w . < b r > < b r > E i n b e s o n d e r e R o l l e s p i e l e n i n d i e s e m Z u s a m m e n h a n g d i e C o o k i e s . D i e s e k n n e n m i t < b r > < b r > C G I G E T P A R A M ( " c o o k i e . x y z " ) < b r > < b r > a b g e h o l t w e r d e n . Z u g l e i c h l i e g e n d i e C o o k i e s n a c h G E T E N V ( " H T T P _ C O O K I E " ) i m R a m t e x t " r a m t e x t : e n v i r o n m e n t " v o r . < b r > < b r > A u c h d e r H T M L - T y p T E X T A R E A w i r d b e r d i e S t a n d a r d e i n g a b e b e r t r a g e n . A u f d i e s e n s o l l t e a b e r n i c h t b e r C G I G E T P A R A M z u g e g r i f f e n w e r d e n , d e n n e r s t e n s w e r d e n d a b e i n u r m a x i m a l 2 5 5 Z e i c h e n z u r V e r f g u n g g e s t e l l t , u n d z w e i t e n s w i r d d a b e i d e r S y s t e m r a m t e x t " r a m t e x t " b e r s c h r i e b e n , w e n n d e r N a m e e i n e r s o l c h e n C G I - V a r i a b l e n m i t " t e x t " b e g i n n t . < b r > < b r > G r e r e T e x t e ( i n H T M L - F o r u m l a r e n ) w e r d e n f o l g e n d e r m a e n a n d a s P r o g r a m m b e r t r a g e n . < b r > < b r > 1 . D e r N a m e d e r C G I - V a r i a b l e n ( i m H T M L - F o r m u l a r ) m u s s m i t " t e x t : " b e g i n n e n , b e i s p i e l s w e i s e " t e x t : b e m e r k u n g " . < b r > < b r > 2 . B e i m S t a r t s t e l l t d a n n d i e t d b e n g i n e e i n e n R a m t e x t m i t d e m N a m e n " r a m t e x t : t e x t : . . . " z u r V e r f g u n g , d e r d e n g e s a m t e n b e r m i t t e l t e n T e x t e n t h l t , b e i s p i e l s w e i s e " r a m t e x t : t e x t : b e m e r k u n g e n " . < b r > < b r > D i e t d b e n g i n e u n t e r s t t z t a u c h d e n b e r t r a g u n g s t y p " m u l t i p a r t / f o r m d a t a " , u n d d a m i t a u c h d e n H T M L - T y p " F I L E " . B e i m S t a r t k o p i e r t d i e t d b e n g i n e d e n b e r t r a g e n e n I n h a l t d i e s e s F e l d e s ( e i n e D a t e i ) i n e i n t e m p o r r e s F i l e , d e s s e n P f a d v o n C G I G E T P A R A M g e l i e f e r t w i r d , b e i s p i e l s w e i s e " 6 3 4 4 3 1 2 3 4 / m e i n e d a t e i . g i f " . D i e s e D a t e i w i r d b e i m P r o g r a m m e n d e a u t o m a t i s c h w i e d e r g e l s c h t . W e n n a l s o d i e D a t e i v o m P r o g r a m m a k z e p t i e r t w i r d , m u s s s i e v o m P r o g r a m m k o p i e r t o d e r i n e i n B L O B - F e l d e i n g e l e s e n w e r d e n . < b r > < b r > D i e b e r t r a g u n g s k a p a z i t t f r D a t e i e n w i r d m e i s t v o m h t t p - S e r v e r l i m i t i e r t . b l i c h i s t m a x i m a l e G r e v o n e t w a 1 0 0 K B y t e . < b r > < b r > E i n f a c h e s B e i s p i e l f r C G I G E T P A R A M : < b r > < b r > I n e i n e m H T M L - F o r m u l a r s t e h e n f o l g e n d e E i n g a b e f e l d e r : < b r > < b r > F i r m a : < I N P U T T Y P E = " T E X T " N A M E = " F i r m a " > < B R > < b r > I n t e r n e t : < I N P U T T Y P E = " C H E C K B O X " N A M E = " I n t e r n e t " V A L U E = " 1 " > < B R > < b r > < b r > D i e s e F e l d e r w e r d e n v o m A n w e n d e r a u s g e f l l t : < b r > < b r > F i r m a : M e i n e F i r m a G m b H < b r > v e r h e i r a t e t : ( w i r d a n g e k r e u z t ) < b r > < b r > D a n n l i e f e r t < b r > < b r > C G I G E T P A R A M ( " F i r m a " ) - > " M e i n e F i r m a G m b H " < b r > C G I G E T P A R A M ( " v e r h e i r a t e t " ) - > " 1 "
Syntax: DELDB(db_path : STRING; password : STRING; code : INTEGER) : INTEGER

d b _ p a t h : P f a d d e r T a b e l l e < b r > p a s s w o r d : P a s s w o r t ( d e f a u l t = " " ) < b r > c o d e : V e r s c h l s s e l u n g s c o d e ( d e f a u l t = 0 )
L s c h t e i n e T a b e l l e i n k l u s i v e a l l e r d a z u g e h r e n d e n E l e m e n t e
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h g e l s c h t
E n f e r n t d i e T a b e l l e i n k l u s i v e a l l e r z u g e h r i g e n E l e m e n t e w i e M E M O , B L O B u n d I n d i z e s .
Syntax: DELFILE(path : STRING) : INTEGER

p a t h : z u l s c h e n d e D a t e i
L s c h t e i n e e x t e r n e D a t e i
F e h l e r c o d e < b r > 0 = e r f o l g r e i c h g e l s c h t
A c h t u n g : D i e F u n k t i o n l s c h t a u c h D a t e i e n , d i e m i t d e m R O - A t t r i b u t a u s g e s t a t t e t s i n d . < b r > < b r > D i e F u n k t i o n k a n n n i c h t a u f i n t e r n e D a t e i e n ( R a m t e x t e ) a n g e w e n d e t w e r d e n .
Syntax: DELMARK(db : INTEGER; recno : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B < b r > r e c n o : p h y s i k a l i s c h e S a t z n u m m e r
L s c h t e i n e S a t z n u m m e r a u s d e r M a r k i e r u n g s l i s t e e i n e r T a b e l l e
S a t z u m m e r d e s a u s d e r M a r k i e r u n g s l i s t e g e l s c h t e n D a t e n s a t z e s ( a l s o r e c n o )
D e r D a t e n s a t z m i t d e r p h y s i k a l i s c h e n S a t z n u m e r r e c n o w i r d a u s d e r M a r k i e r u n g s l i s t e d e r T a b e l l e e n t f e r n t . < b r > < b r > F a l l s d e r D a t e n s a t z n i c h t i n d e r M a r k i e r u n g s l i s t e i s t , w i r d k e i n F e h l e r e r z e u g t .
Syntax: DELMARKS(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
L s c h t d i e g e s a m t e M a r k i e r u n g s l i s t e e i n e r T a b e l l e
1
D i e g e s a m t e M a r k i e r u n g s l i s t e e i n e r T a b e l l e w i r d g e l s c h t . < b r > < b r > W i e b e i a l l e n T a b e l l e n f u n k t i o n e n w i r d b e i m Z u g r i f f a u f e i n e n i l e g a l e n T a b e l l e n h a n d l e e i n L a u f z e i t f e h l e r a u s g e l s t .
Syntax: TAPPEND(path : STRING [; mode : INTEGER]) : INTEGER

p a t h : P f a d z u r T e x t d a t e i < b r > m o d e : 0 - > A N S I , 1 - > A S C I I ( V o r g a b e )
f f n e t T e x t d a t e i z u m W e i t e r s c h r e i b e n
0 , w e n n f f n e n e r f o l g l o s , s o n s t H a n d l e f r T e x t d a t e i
T A P P E N D s e t z t e i n e b e s t e h e n d e T e x t d a t e i v o r a u s . D i e s e w i r d z u m S c h r e i b e n g e f f n e t , d a s S c h r e i b e n e r f o l g t i m m e r a m E n d e d e r T e x t d a t e i . D a m i t e i g n e t s i c h T A P P E N D b e i s p i e l s w e i s e b e s o n d e r s f r L O G - D a t e i e n . < b r > < b r > I m G e g e n s a t z z u R E W R I T E w i r d k e i n e n e u e D a t e i e r z e u g t . < b r > < b r > W i c h t i g : W e n n T A P P E N D f e h l s c h l g t , h e i s s t d a s n o c h l a n g e n i c h t , d a s s d i e e n t s p r e c h e n d e D a t e i n i c h t e x i s t i e r t , s i e k a n n a u c h b e r e i t s ( v o n e i n e m a n d e r e n P r o z e s s ) g e f f n e t s e i n . D e s h a l b s o l l t e i m F e h l e r f a l l i m m e r T D B _ L a s t E r r o r g e p r f t w e r d e n .
Syntax: DELREC(db : INTEGER; recno : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B < b r > r e c n o : p h y s i k a l i s c h e S a t z n u m m e r d e s z u l s c h e n d e n D a t e n s a t z e s
L s c h t e i n e n D a t e n s a t z p h y s i k a l i s c h a u s e i n e r T a b e l l e
P h y s i k a l i s c h e S a t z n u m m e r d e s D a t e n s a t z e s , d e r a n S t e l l e d e s g e l s c h t e n D a t e n s a t z e s g e r c k t i s t .
D i e t d b e n g i n e l s c h t e i n e n D a t e n s a t z a u s e i n e r T a b e l l e , i n d e m e s s i e d e n b i s l a n g l e t z t e n D a t e n s a t z a n d i e S t e l l e d e s z u l s c h e n d e n S a t z e s k o p i e r t u n d d i e T a b e l l e n g r e u m e i n e n E i n t r a g v e r i n g e r t ( b e i m l e t z t e n D a t e n s a t z m i t n u r d i e G r e v e r i n g e r t ) . < b r > < b r > D e r R c k g a b e w e r t d e r F u n k t i o n h n g t v o m a k t u e l l e n Z u g r i f f a b : < b r > < b r > Z u g r i f f b e r p h y s i k a l i s c h e S a t z n u m m e r - > r e c n o ( b z w . r e c n o - 1 , w e n n r e c n o = l e t z t e r S a t z i n T a b e l l e ) < b r > Z u g r i f f b e r M a r k i e r u n g s l i s t e - > N u m m e r d e s n c h s t e n S a t z e s i n d e r M a r k i e r u n g s l i s t e ( b z w . d e s v o r h e r i g e n , w e n n r e c n o d e r l e t z t e E i n t r a g i n d e r M a r k i e r u n g s l i s t w a r , b z w . 0 , w e n n r e c n o n i c h t i n M a r k i e r u n g s l i s t e w a r ) < b r > Z u g r i f f b e r I n d e x : N u m m e r d e s n c h s t e n D a t e n s a t z e s b z g l . d e r i m I n d e x d e f i n i e r t e n O r d n u n g ( b z w . d e s v o r h e r i g e n , w e n e s k e i n e n n c h s t e n m e h r g i b t )
Syntax: DIGITSTR(x : INTEGER) : STRING

x : N a t r l i c h e Z a h l ( i n k l . N u l l )
N a t r l i c h e Z a h l a l s Z i f f e r n f o l g e
Z e i c h e n k e t t e , i n d e r d i e e i n z e l n e n Z i f f e r n d e r Z a h l a u s g e s c h r i e b e n s i n d . < b r > < b r > D I G I T S T R ( 1 2 3 ) - > " e i n s * z w e i * d r e i "
D i e s e F u n k t i o n k a n n z u m A u s f l l e n v o n Z a h l u n g s v o r g n g e n ( b e r w e i s u n g e n e t c . ) v e r w e n d e t w e r d e n , w e n n d e r B e t r a g i n B u c h s t a b e n a n g e g e b e n w e r d e n s o l l ( o d e r m u s s ) . < b r > < b r > H e u t e e i g e n t l i c h n i c h t m e h r n t i g .
Syntax: CGICLOSEBUFFER

< k e i n e >
S c h r e i b t d e n A u s g a b e p u f f e r i n d i e S t a n d a r d a u s g a b e u n d B e e n d e t P u f f e r u n g
0
S c h r e i b t d e n A u s g a b e p u f f e r i n d i e S t a n d a r d a u s g a b e u n d b e e n d e t P u f f e r u n g . < b r > < b r > W e n n S i e a n d e r e I n f o r m a t i o n e n a l s T e x t v i a C G I b e r t r a g e n ( b e i s p i e l s w s e i s e b i n r e D a t e n ) , s o l l t e n S i e v o r d e r b e r t r a g u n g C G I C L O S E B U F F E R a u f r u f e n .
Syntax: DISKFREE(Laufwerk : INTEGER) : REAL

L a u f w e r k : < b r > < b r > U n t e r W i n 3 2 < b r > 0 = a k t u e l l e s L a u f w e r k < b r > 1 = A : 2 = B : 3 = C : u s w . < b r > < b r > U n t e r L i n u x : < b r > 0 = a k t u e l l e P a r t i t i o n ( k a n n m i t C H D I R a n g e w h l t w e r d e n ) < b r >
F r e i e n P l a t z a u f S p e i c h e r m e d i u m e r m i t t e l n
F r e i e r S p e i c h e r p l a t z i n B y t e s . < b r >
L i e f e r t u n t e r L i n u x i m A u g e n b l i c k b e i R e s t k a p a z i t t e n > 2 G B y t e " - 1 " z u r c k .
Syntax: x DIV y

x , y : G a n z e Z a h l e n ( K o m m a z h a l e n w e r d e n z u r B e r e c h n u n g g e r u n d e t )
G a n z z a h l i g e D i v i s i o n o h n e R e s t < b r >
x w i r d d u r c h y g e t e i l t . D I V l i e f e r t d a s R e s u l t a t d i e s e r T e i l u n g o h n e d e n R e s t .
E s g i l t : < b r > < b r > y * ( x D I V y ) + ( x M O D y ) = x
Syntax: CGICLEARBUFFER

< k e i n e >
L s c h t d e n I n h a l t d e s A u s g a b e p u f f e r s
0
L s c h t d e n I n h a l t d e s P u f f e r s , o h n e i h n a u s z u g e b e n . D i e P u f f e r u n g w i r d a b e r n i c h t b e e n d e t , d . h . a l l e f o l g e n d e n A u s g a b e n g e l a n g e n w i e d e r i n d e n P u f f e r . < b r > < b r > D i e s e F u n k t i o n k a n n v e r w e n d e t w e r d e n , w e n n b e i s p i e l s w e i s e e i n F e h l e r a u f t r i t t u n d s t a t t d e r b i s h e r i g e n A u s g a b e n e i n F e h l e r m e l d u n g e r f o l g e n s o l l . E b e n s o k a n n e i n a n d e r e r H e a d e r a u s g e g e b e n w e r d e n .
Syntax: SWAP(s : STRING) : STRING

s : b e l i e b i g e Z e i c h e n k e t t e
U m k e h r u n g e i n e s S t r i n g s b z g l . d e s S o r t i e r s t a r t s
s , w e n n s k e i n ' ^ ' - Z e i c h e n e n t h l t , < b r > a n d e r n f a l l s ' b ^ a ' , w e n n s d i e F o r m ' a ^ b ' h a t .
D i e D a t e n b a n k e n d e r T D B - F a m i l i e u n t e r s t t z e n d a s S o r t i e r s t a r t z e i c h e n ' ^ ' i n Z e i c h e n k e t t e n . D a s b e d e u t e t , d a s s e i n e Z e i c h e n k e t t e d e r F o r m ' a ^ b ' n i c h t u n t e r ' a . . . ' e i n s o r t i e r t w i r d , s o n d e r n u n t e r ' b . . . ' . B e i m E i n s o r t i e r e n v o n d e r a r t i g e n S t r i n g s w i r d v o r d e m S o r t i e r v o r g a n g i n t e r n e i n S W A P ( . . . ) a u s g e f h r t . < b r > < b r > B e i s p i e l : E i n t y p i s c h e r P r o b l e m f a l l l i e g t b e i A d e l s t i t e l n i n N a m e n f e l d e r n v o r . D e r N a m e ' v o n E i s e n s t e i n ' w r d e i m N o r m a l f a l l u n t e r ' v o n . . . ' e i n s o r t i e r t w e r d e n . E i n e I n d e x s u c h e n a c h ' E i s e n s t e i n ' w r e s o m i t e r f o l g l o s . W i r d d e r N a m e a b e r a l s ' v o n ^ E i s e n s t e i n ' e i n g e g e b e n , s o w i r d d e r N a m e b e i ' E i s e n s t e i n . . . ' e i n s o r t i e r t u n d a u c h g e f u n d e n .
Syntax: Aritmetischer_Ausdruck_1 TO Arithmetischer_Ausdruck_2

A r i t m e t i s c h e r _ A u s d r u c k _ 1 , < b r > A r i t m e t i s c h e r _ A u s d r u c k _ 2 : R E A L - o d e r S t r i n g - A u s d r c k e < b r > < b r > B e i d e A u s d r c k e m s s e n v o m g l e i c h e n T y p s e i n .
A l i a s f r < =
w a h r , w e n n A r i t m e t i s c h e r _ A u s d r u c k _ 1 < = A r i t m e t i s c h e r _ A u s d r u c k _ 2 , < b r > s o n s t f a l s c h
K a n n ( b e s o n d e r s b e i Z e i c h e n k e t t e n ) z u b e r s i c h t l i c h e r e n S e l e k t i o n e n f h r e n .
Syntax: TOHTML(s : STRING) : STRING

s : b l i e b i g e Z e i c h e n k e t t e
K o n v e r t i e r t e i n e Z e i c h e n k e t t e i n d e n H T M L - Z e i c h e n s a t z
s a l s H T M L - Z e i c h e n k e t t e
B e i s p i e l e : < b r > < b r > T O H T M L ( ' < ' ) = ' < ' < b r > T O H T M L ( ' ' ) = ' & A u m l ; ' < b r > T O H T M L ( ' ' ) = ' & a g r a v e ; ' < b r > < b r > D i e s e F u n k t i o n s o l l t e n u r f r k u r z e S t r i n g s v e r w e n d e t w e r d e n , d a d a s E r g e b n i s d i e 2 5 5 - Z e i c h e n - G r e n z e b e r s c h r e i t e n k a n n . < b r > B e i d e r C G I - A u s g a b e i s t i n v i e l e n F l l e n C G I W R T E H T M L v o r z u z i e h e n .
Syntax: SUM(numerischer_Ausdruck)

n u m e r i s c h e r _ A u s d r u c k : b e l i e b i g e r A u s d r u c k m i t d i r e k t e n F e l d z u g r i f f e n .
L i e f e r t d i e S u m m e e i n e s A u s d r u c k f r e i n e D a t e n b a n k a u s w e r t u n g
S u m m e d e r e i n z e l n e n B e r e c h n u n g e n d e s n u m e r i s c h e n A u s d r u c k s f r j e d e n D a t e n s a t z d e r A u s w e r t u n g .
B e i s p i e l : < b r > < b r > V A R s u m _ i n c o m e : R E A L < b r > < b r > . . . < b r > F I N D A N D M A R K ( d b , ' G e h h a l t < > 0 ' , ' s u m _ i n c o m e : = S U M ( G e h a l t ) ' ) < b r > < b r > N a c h A u s f h r u n g d e r F u n k t i o n s t e h t i n s u m _ i n c o m e d i e S u m m e a l l e r G e h a l t s a n g a b e n .
Syntax: SUBST(target : STRING; (replacement : STRING | db : INTEGER; field)[; mode : INTEGER]) : INTEGER

t a r g e t : b e l i e b i g e r S T R I N G < b r > r e p l a c e m e n t : b e l i e g i g e r S T R I N G < b r > d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g ) < b r > m o d e : I N T E G E R ( 0 = V o r g a b e )
e r s e t z t e i n e n S t r i n g i m S y s t e m - R a m t e x t
0 : t a r g e t w u r d e n i c h t g e f u n d e n < b r > # 0 : E r s e t z u n g w u r d e d u r c h g e f h r t
D i e F u n k t i o n S U B S T g e h r t z u r G a t t u n g d e r U n i v e r s a l f u n k t i o n e n . S i e i s t m e h r f a c h b e r l a d e n , d a s b e d e u t e t , s i e k a n n m i t r e c h t u n t e r s c h i e d l i c h e n P a r a m e t e r n a u f g e r u f e n w e r d e n . H i e r d i e e i n f a c h s t e F o r m : < b r > < b r > < p r e > < b r > S U B S T ( t a r g e t , a _ s t r i n g ) < / p r e > e r s e t z t d a s e r s t e V o r k o m m e n v o n t a r g e t d u r c h s t r i n g < b r > < b r > B e i s p i e l : W i r h a b e n e i n T e m p l a t e , i n d a s w i r d a s a k t u e l l e D a t u m u n d d i e a k t u e l l e U h r z e i t ( S e r v e r z e i t ) e i n f g e n w o l l e n . I m T e m p l a t e s t e h t d a z u f o l g e n d e r T e x t : < b r > < b r > < h t m l > < b r > < h e a d > < b r > < t i t l e > E i n T e m p l a t e f r d i e t d b e n g i n e < / t i t l e > < b r > < b o d y b g c o l o r = " w h i t e " > < b r > D a t u m : # d a t u m # Z e i t : # z e i t # < p > < b r > < h 3 > D a s i s t e i n e H T M L - S e i t e , d i e d u r c h d i e t d b e n g i n e b e a r b e i t e t w u r d e < / h 3 > < b r > < / b o d y > < b r > < / h t m l > < b r > < b r > ( d i e E i n f a s s u n g v o n T a r g e t s m i t d e m ' # ' - Z e i c h e n h a t s i c h a l s r e c h t v o r t e i l h a f t h e r a u s g e s t e l l t , w e i l h i e r b e i d i e V e r w e c h s l u n g s g e f a h r a m g e r i n g s t e n i s t ) < b r > < b r > D a s T e m p l a t e s e i u n t e r t e m p l a t e s / m e i n e _ s e i t e . h t m l g e s p e i c h e r t . D a s f o l g e n d e k l e i n e P r o g r a m m l s t d a n n u n s e r e A u f g a b e : < p r e > < b r > P R O C E D U R E M a i n < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > I F L o a d T e m p l a t e ( ' t e m p l a t e s / m e i n e _ s e i t e . h t m l ' ) = 0 T H E N < b r > s u b s t ( ' # d a t u m # ' , d a t e s t r ( t o d a y ) ) < b r > s u b s t ( ' # z e i t # ' , t i m e s t r ( n o w , 0 ) ) < b r > C G I W r i t e T e m p l a t e < b r > E L S E < b r > c g i w r i t e l n ( ' t e m p l a t e w u r d e n i c h t g e f u n d e n ' ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > < b r > W e n n d e r e i n z u f g e n d e S t r i n g m i t e x t e r n : b e g i n n t , w i r d n i c h t e t w a d i e s e r S t r i n g e i n g e f g t , s o n d e r n d e r R e s t d e s S t r i n g s w i r d a l s P f a d z u e i n e r T e x t d a t e i i n t e r p r e t i e r t u n d d i e s e e r s e t z t d a n n d a s T a r g e t . E n t s p r e c h e n d v e r w e i s t e i n S t r i n g , d e r m i t r a m t e x t : b e g i n n t , a u f e i n e i n t e r n e T e x t d a t e i . < b r > < b r > G e r a d e , w e n n d a s T a r g e t d u r c h g a n z e T e x t d a t e i e n e r s e t z t w e r d e n s o l l e n , w i r d d i e A r t d e r E r s e t z u n g w i c h t i g : W a s p a s s i e r t m i t Z e i l e n u m b r c h e n ? I n w e l c h e m Z e i c h e n s a t z s o l l d i e E r s e t z u n g d u r c h g e f h r t w e r d e n ? D a s k a n n m i t e i n e m w e i t e r e n P a r a m e t e r f e s t g e l e g t w e r d e n , d e m M o d u s . < b r > < b r > < p r e > < b r > S U B S T ( t a r g e t , a _ s t r i n g , m o d u s ) < b r > < / p r e > < b r > E r s e t z t d a s t a r g e t . . . < b r > < b r > M o d u s < b r > 0 ( V o r g a b e ) - > E r s e t z u n g o h n e w e i t e r e B e a r b e i t u n g < b r > 1 - > A l l e Z e i c h e n w e r d e n n a c h H T M L k o n v e r t i e r t < b r > 2 - > A l l e Z e i c h e n w e r d e n n a c h A N S I k o n v e r t i e r t < b r > 4 - > H a r t e Z e i l e n u m b r c h e w e r d e n d u r c h < b r > e r s e t z t < b r > 1 6 - > D e r e x t e r n e T e x t l i e g t i m A S C I I - F o r m a t v o r ( s t a t t A N S I ) < b r > 3 2 - > E s w i r d n u r d e r B O D Y - T e i l e i n e r e x t e r n e n H T M L - S e i t e g e l e s e n < b r > 1 2 8 - > I n d i e s e m F a l l w i r d d i e G r o - / K l e i n s c h r e i b u n g b e i m T a r g e t ( d e r z u e r s e t z e n d e n Z e i c h e n f o l g e ) i g n o r i e r t . M a n s o l l t e d i e s e n M o d u s j e d o c h n u r w h l e n , w e n n e r w i r k l i c h e r f o r d e r l i c h i s t , d a d i e z u s t z l i c h b e n t i g t e R e c h e n l e i s t u n g d o c h e n o r m i s t . < b r > < b r > D i e s e M o d i k n n e n a u c h n o c h a d d i e r t w e r d e n , u m d a s g e w n s c h t e Z i e l z u e r r e i c h e n . S o b e d e u t e t b e i s p i e w e i s e d e r M o d u s 5 ( = 1 + 4 ) , d a s s b e i d e r E r s e t z u n g e i n e K o n v e r t i e r u n g n a c h H T M L s t a t t f i n d e t u n d d i e h a r t e n Z e i l e n u m b r c h e d u r c h < b r > e r s e t z t w e r d e n . < b r > < b r > A n S t e l l e d e s E r s e t z u n g s s t r i n g s k a n n a u c h e i n K o m b i n a t i o n a u s T a b e l l e n h a n d l e u n d T a b e l l e n f e l d s t e h e n . D a n n w i r d d e r I n h a l t d e s a n g e g e b e n e n F e l d e s e i n g e f g t . < b r > < b r > B e i s p i e l : D e r f o l g e n d e C o d e e r s e t z t a l l e D a t e n b a n k f e l d e r i m T e m p l a t e . < b r > < b r > < p r e > < b r > V A R i , d b : I N T E G E R ; < b r > . . . < b r > d b : = O p e n D B ( . . . ) < b r > n l o o p ( i , m a x l a b e l ( d b ) - 1 , s u b s t ( ' # ' + l a b e l ( d b , i + 1 ) + ' # ' , d b , i + 1 , 5 ) ) < b r > < / p r e >
Syntax: EMBEDBLOB(table_field; [source : STRING; Typ : INTEGER|VAR array : [BYTE|CHAR|INTEGER|TBITS|REAL|STRING]]) : INTEGER

T a b e l l e n f e l d a l s < b r > T a b e l l e : I N T E G E R ; F e l d n u m m e r : I N T E G E R < b r > T a b e l l e : I N T E G E R ; L a b e l : S T R I N G < b r > < b r > P f a d : N a m e d e r e x t e r n e n D a t e i < b r > T y p : T y p k e n n z e i c h e n d e r D a t e i < b r > F o l g e n d e T y p e n s i n d r e s e r v i e r t : < b r > 1 : B M P ( W i n d o w s B i t m a p ) < b r > 2 : P C X ( P C X - B i t m a p ) < b r > 3 : W A V ( S o u n d d a t e i ) < b r > 4 : W M F ( W i n d o w s M e t a f i l e ) < b r > 5 : G I F ( I m a g e ) < b r > 6 : J P G ( I m a g e ) < b r > < b r > a r r a y : A r r a y b e l i e b i g e n T y p s
L i e s t e i n e e x t e r n e D a t e i o d e r e i n e F e l d v a r i a b l e i n e i n B L O B - F e l d
- 1 : O p e r a t i o n e r f o l g l o s ( i l l e g a l e r P f a d e t c . ) < b r > a n s o n s t e n : G r e d e s B l o b s i n B y t e s
S e i t V e r s i o n 6 . 2 . 9 k n n e n a u c h A r r a y s i n B L O B - F e l d e r n g e s p e i c h e r t w e r d e n . < b r / > < b r > E s e r g e b e n s i c h d a b e i s e h r i n t e r e s s a n t e M g l i c h k e i t e n i m Z u s a m m e n s p i e l m i t M a r k i e r u n g s l i s t e n . < b r > < b r / > < b r > < b r / > < b r > D e r P f a d d e r e i n g e l e s e n e n D a t e i w i r d n i c h t g e s p e i c h e r t , n u r d e r e n T y p .
Syntax: ENDCGI

< k e i n e r >
B e e n d e t C G I - F u n k t i o n a l i t t
< k e i n e r >
D e r C G I - P u f f e r w i r d a n d e n K l i e n t e n b e r t r a g e n u n d d e r S e m a p h o r f r e i g e g e b e n . < b r > Z u d e m v e r s u c h t d a s P r o g r a m m d e m h t t p - S e r v e r m i t z u t e i l e n , d a s s k e i n e w e i t e r e n A u s g a b e n m e h r e r f o l g e n ( e r a l s o d i e V e r b i n d u n g z u m K l i e n t e n b e e n d e n k a n n ) . D a s f u n k t i o n i e r t l e i d e r d e r z e i t m i t k e i n e m d e r b e k a n n t e n h t t p - S e r v e r .
Syntax: YEAR(Datum : INTEGER) : INTEGER

D a t u m : D a t u m s a n g a b e
e x t r a h i e r t d i e J a h r e s z a h l a u s e i n e m D a t u m
J a h r e s z a h l d e D a t u m s
Y E A R ( 1 . 1 . 2 0 0 0 ) - > 2 0 0 0
Syntax: ENDSEMA([sema : INTEGER])

s e m a : H a n d l e o d e r 0 f r a l l e ( s o n s t S y s t e m - S e m a p h o r e )
S e m a p h o r e b e e n d e n
Syntax: string1 ENTHÄLT string2

S t r i n g 1 , S t r i n g 2 : b e l i e b i g e Z e i c h e n k e t t e n
P r f t , o b e i n e Z e i c h e n k e t t e i n e i n e r a n d e r e n e n t h a l t e n i s t ( v e r a l t e t )
w a h r , w e n n S t r i n g 2 i n S t r i n g 1 e n t h a l t e n i s t
S t r i n g 2 m u s s e x a k t e n t h a l t e n s e i n , J o k e r s i n d n i c h t e r l a u b t . < b r > < b r > B e i s p i e l : < b r > < b r > ' H a n s ' E N T H L T ' a n s ' - > w a h r < b r > ' H a n s ' E N T H L T ' H A N S ' - > f a l s c h < b r > < b r > E N T H L T i s t g l e i c h b e d e u t e n d m i t H A T u n d H A S
Syntax: EOT(text_handle : INTEGER) : INTEGER

t e x t h a n d l e v o n R E S E T
Z e i g t d a s E n d e e i n e r T e x t d a t e i a n
0 : T e x t e n d e n o c h n i c h t e r r e i c h t < b r > 1 : T e x t e n d e i s t e r r e i c h t
N a c h d e m E O T d e n W e r t 1 a n g e n o m e n h a t , d a r f a u s d e r T e x t d a t e i n i c h t m e h r g e l e s e n w e r d e n .
Syntax: ESGIBT(Selektion)

S e l e k t i o n : l o g i s c h e r A u s d r u c k
E x i s t e n z o p e r a t o r , v e r a l t e t f r E X I S T S
0 : t r i f t n i c h t z u < b r > 1 : t r i f f t z u
D i e F u n k t i o n a r b e i t e t d e r z e i t n u r m i t d i r e k t e n F e l d z u g r i f f e n ( z . B . b e i F I N D A N D M A R K ) . D i e p r f t , o b e i n e A u s s a g e ( S e l e k t i o n ) f r d e n a k t u e l l e n D a t e n s a t z d e r P r i m r t a b e l l e e r f l l b a r i s t . < b r > < b r > B e i s p i e l : < b r > < b r > E s g i b t z w e i T a b e l l e n , R E C H N U N G u n d P O S T E N , w o b e i d i e P O S T E N m i t d e n R E C H N U N G E N b e r e i n S c h l s s e l p a a r v e r k n p f t s i n d . < b r > < b r > F i n d A n d M a r k ( r e c h n u n g , ' e s g i b t ( $ p o s t e n . G e s a m t > 1 0 0 0 ) ' ) f i n d e t n u n a l l e D a t e n s t z e i n R E C H N U N G , f r d i e e s w e n i g s t e n s e i n e n v e r k n p f t e n D a t e n s a t z i n P O S T E N g i b t , b e i d e m d a s F e l d " G e s a m t " e i n e n h h e r e n W e r t a l s 1 0 0 0 a u f w e i s t .
Syntax: XWERT(n : INTEGER; Ausdruck_1; Ausdruck_2; Ausdruck_3; ...) : REAL/STRING

n : N a t r l i c h e Z a h l < b r > A u s d r u c k _ 1 . . . : b e l i e b i g e r a r i t h m e t i s c h e r A u s d r u c k
B e r e c h n e t d e n n - t e n A u s d r u c k i n e i n e r L i s t e ( v e r a l t e t )
A u s d r u c k _ n < b r > < b r > Z u n c h s t w i r n b e r e c h n e t , d a n n d e n n - t e A u s d r u c k i n d e r L i s t e . < b r > < b r > F a l l s n < = 0 o d e r n > m a x ( m i t A u s d r u c k _ m a x a l s l e t z t e m d e r L i s t e ) w i r d d e r l e t z t e A u s d r u c k d e r L i t e b e r e c h n e t . < b r > < b r >
D i e s e F u n k t i o n e r s e t z t i n v i e l e n F l l e n d i e S W I T C H - A n w e i s u n g a u s n d e r e n P r o g r a m m i e r s p r a c h e n . < b r > < b r > B e i s p i e l : < b r > < b r > X W E R T ( n , ' M o n t a g ' , ' D i e n s t a g ' , M i t t w o c h ' , . . . ) < b r > < b r > l i e f e r t f r n = 1 ' M o n t a g ' , f r n = 2 ' D i e n s t a g ' u s w .
Syntax: EXCHANGE(String1,String2,String3 : STRING) : STRING

S t r i n g 1 , S t r i n g 2 , S t r i n g 3 : b e l i e b i g e Z e i c h e n k e t t e n
E r s e t z t i n e i n e m S t r i n g T e i l s t r i n g s
S t r i n g 1 , n a c h d e m a l l e V o r k o m m e n v o n S t r i n g 2 d u r c h S t r i n g 3 e r s e t z t w u r d e n .
D i e s e F u n k t i o n a r b e i t e t m i t e i n e r R e k u r s i o n s s p e r r e . E X C H A N G E ( x , x , x ) f h r t a l s o n i c h t z u e i n e r E n d l o s s c h l e i f e . < b r > < b r > B e i s p i e l : < b r > < b r > E X C H A N G E ( ' D r e C h e n e s e m e t d e m K e n t r e b e s s ' , ' e ' , ' o ' ) - > ' D r o C h o n o s o m o t d o m K o n t r o b o s s '
Syntax: EXECMACRO(Pfad,Funktion)

P f a d : P f a d z u m e x t e r n e n M o d u l ( o h n e . p r g ) < b r > F u n k t i o n : N a m e d e r F u n k t i o n i m e x t e r n e n M o d u l
F h r t e i n e F u n k t i o n i n e i n e m e x t e r n e n M o d u l a u s
F u n k t i o n s e r g e b n i s e x t e r n e n F u n k t i o n
S o w o h l P f a d a l s a u c h F u n k t i o n w e r d e n n i c h t a l s S t r i n g a n g e g e b e n . < b r > < b r > A l s o n i c h t E X E C M A C R O ( ' / m o d u l e s / l i b _ 0 1 ' , ' b e r e c h n e w a s ' ) , < b r > s o n d e r n E X E C M A C R O ( / m o d u l e s , b e r e c h n e w a s ) < b r > < b r > D i e S y n t a x w i r d b e r e i t s v o m C o m p i l e r g e p r f t . D e s h a l b m u s s d a s e x t e r n e M o d u l z u r C o m p i l i e r z e i t v o r l i e g e n . < b r > < b r > E s k n n e n k e i n e P a r a m e t e r a n g e g e b e n w e r d e n , d i e a u f B e z e i c h n e r d e s a u f r u f e n d e n M o d u l s z u g r e i f e n .
Syntax: STRSORT(StrArray : STRING[]; MaxIndex : INTEGER [;FirstIndex : INTEGER [; SortStr : STRING]]) : INTEGER

S t r A r r a y : e i n o d e r z w e i d i m e n s i o n a l e s S T R I N G - A r r a y < b r > M a x I n d e x : d a s A r r a y w i r d s o r t i e r t v o n F i r s t I n d e x . . M a x I n d e x < b r > F i r s t I n d e x : I n d e x , a b d e m d a s F e l d s o r t i e r t w i r d ( 0 = V o r g a b e ) < b r > S o r t S t r : S o r t i e r r e i h e n f o l g e
S o r t i e r t e i n - u n d z w e i d i m e n s i o n a l e S T R I N G - A r r a y s
0 o d e r F e h l e r c o d e ( w e n n e s s i c h u m k e i n S t r i n g - A r r a y h a n d e l t )
D i e F e l d e r w e r d e n i m m e r Z e i l e n w e i s e s o r t i e r t . < b r / > < b r > M i t d e m S t r S o r t ( ) w i r d f e s t g e l e g t , w i e d a s F e l d s o r t i e r t w i r d . < b r / > < b r > E s b e s t e h t a u s S p a l t e n n u m m e r n , d e n e n e i n M i n u s z e i c h e n v o r a n g e s t e l l t w e r d e n k a n n , w e n n e i n e a b s t e i g e n d e S o r t i e r u n g e r w n s c h t i s t . < b r / > < b r > Z u s t z l i c h k a n n e i n e r S p a l t e d a s ' % ' - Z e i c h e n v o a n g e s t e l l t w e r d e n , w e n n e s s i c h u m e i n e r e i n n u m e r i s c h e S p a l t e h a n d e l t , d i e d a n n e n t s p r e c h e n d s o r t i e r t w i r d .
Syntax: EXISTS(Selection) : INTEGER

S e l e c t i o n : l o g i s c h e r A u s d r u c k
P r f t d i e E r f l l b a r k e i t e i n e r B e d i n g u n g
1 : S e l e c t i o n i s t e r f l l b a r < b r > 0 : S e l e c t i o n i s t n i c h t e r f l l b a r
D i e F u n k t i o n e r w a r t e t a l s P a r a m e t e r e i n e g l t i g e S e l e k t i o n m i t d i r e k t e n T a b e l l e n z u g r i f f e n . A u s d i e s e m G r u n d i s t s i e i n d e r t d b e n g i n e n u r d y n a m i s c h e i n s e t z b a r : < b r > < b r > P r i m T a b l e ( f i r m e n ) < b r > E x p : = ' r e s u l t : = e x i s t s ( $ a n s p r e c h p a r t n e r . N a m e = " M e i e r " ) ' < b r > D O _ E x p < b r > < b r > D a b e i g e h t d i e F u n k t i o n d a v o n a u s , d a s s d i e T a b e l l e n f i r m e n u n d a n s p r e c h p a r t n e r r e l a t i o n a l v e r k n p f t s i n d ( a n d e r n f a l l s w i r d d e r a k t u e l l e D a t e n s a t z a u s f i r m e n m i t d e r k o m p l e t t e n T a b e l l e a n s p r e c h p a r t n e r v e r k n p f t ) . D a s E r g e b n i s i s t 1 , w e n n m i t d e m a k t u e l l e n D a t e n s a t z v o n f i r m e n ( w e n i g s t e n s ) e i n D a t e n s a t z v e r k n p f t i s t , d e r d i e B e d i n g u n g e r f l l t .
Syntax: EXP(x : REAL) : REAL

x : b e l i e b i g e Z a h l
E x p o n e n t i a l - F u n k t i o n
e h o c h x
Syntax: EXTNOTE[(Str : STRING)] : STRING

S t r : b e l i e b i g e Z e i c h e n k e t t e
Z w i s c h e n s p e i c h e r z u m I n f o r m a t i o n s a u s t a u s c h m i t a n d e r e n E A S Y - P r o g r a m m e n
I n h a l t d e s z w e i t e n S t r i n g - S p e i c h e r s
S i e h e N O T E . E x t N o t e w i r d i n t e r n b e i S U B S T v e r w e n d e t , w e n n h i e r d e r M o d u s 1 + 4 ( H T M L - E r s e t z u n g m i t E O L - E r s e t z u n g ) g e w h l t w i r d . I s t h i e r b e i m A u f r u f v o n S U B S T E x t N o t e g e s e t z t , s o w i r d d e s s e n I n h a l t s t a t t d e m b r - T a g a n j e d e m Z e i l e n e n d e e i n e s e t z t .
Syntax: FIELDS(Feld-Definition : STRING):STRING

F e l d - D e f i n i t i o n : < b r > " c o m p l e t e " | < b r > " c o m p l e t e : n " ( n Z a h l e n k o n s t a n t e ) | < b r > " F e l d d e f { , F e l d d e f } " m i t < b r > F e l d d e f = D a t e n f e l d [ : n ] ( n Z a h l e n k o n s t a n t e ) < b r > F e l d d e f = $ F e l d n u m m e r | [ $ ] F e l d b e z e i c h n e r
F e l d - D e f i n i t i o n f r V o l l t e x t i n d i z i e r u n g
u n d e f i n i e r t
F I E L D S w i r d n u r i m Z u s a m m e n h a n g m i t d e r V o l l t e x t i n d i z i e r u n g e i n g e s e t z t . D i e F u n k t i o n k o m m t a u s s c h l i e l i c h a l s P a r a m e t e r v o n S C A N R E C S , S C A N R E C u n d U N S C A N R E C z u m E i n s a t z . < b r > < b r > D e r P a r a m e t e r v o n F I E L D S g i b t d i e F e l d e r a n , b e r d i e d e r V o l l t e x t i n d e x g e b i l d e t w i r d .
Syntax: FILEMODE(db : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B
L i e f e r t d i e Z u g r i f f s r e c h t e a n e i n e r T a b e l l e ( v e r a l t e t )
S t r i n g a u s f o l g e n d e n Z e i c h e n : < b r > < b r > N : A n h n g e n v e r b o t e n ( N e w ) < b r > E : b e r s c h r e i b e n v e r b o t e n ( E d i t ) < b r > L : L s c h e n v e r b o t e n ( d e L e t e ) < b r > I : I n d e x f u n k t i o n e n v e r b o t e n ( I n d e x )
D i e s e F u n k t i o n w u r d e d u r c h D B R I G H T S e r s e t z t , d i e d e n n u m e r i s c h e n Z u g r i f f s m o d u s l i e f e r t .
Syntax: FILENO : INTEGER

< k e i n e >
L i e f e r t H a n d l e d e r a k t u e l l e n P r i m r t a b e l l e
H a n d l e a u f d i e a k t u e l l e P r i m r t a b e l l e
W e n n m e h r e r e ( r e l a t i o n a l v e r k n p f t e ) T a b e l l e n g e f f n e t s i n d , k a n n i m m e r n u r e i n e d i e F u n k t i o n d e r P r i m r t a b e l l e e r f l l e n . I m N o r m a l f a l l i s t d i e s d i e z e i t l i c h z u l e t z t g e f f n e t e T a b e l l e . M i t d e r F u n k t i o n P R I M T A B L E k a n n j e d e g e f f n e t e T a b e l l e z u r P r i m r t a b e l l e g e m a c h t w e r d e n .
Syntax: STRCOMP(s1, s2 : STRING) : REAL

s 1 , s 2 : b e l i e b i g e S t r i n g s
v e r g l e i c h t z w e i S t r i n g s
0 : s 1 u n d s 2 s i n d v l l i g v e r s c h i e d e n < b r > 1 : s 1 u n d s 2 s i n d g l e i c h ( o h n e B e r c k s i c h t i g u n g d e r G r o s s - / K l e i n s c h r e i b u n g ) < b r > a n d e r f a l l s d e r " h n l i c h k e i t s w e r t " z w i s c h e n b e i d e n S t r i n g s
L i e f e r t e i n e n r e l a t i v e n V e r g l e i c h z w e i e r Z e i c h e n k e t t e n . D a s E r g e b n i s i s t 0 , w e n n d i e b e i d e n Z e i c h e n k e t t e n i n n i c h t e i n m a l e i n e m Z e i c h e n b e r e i n s t i m m e n , u n d 1 , w e n n s i e a b s o l u t i d e n t i s c h s i n d . I n a l l e n a n d e r e n F l l e n e r g i b t s i c h e i n W e r t d a z w i s c h e n , d e r u m s o h h e r i s t , j e m e h r F r a g m e n t e d e r e i n e n Z e i c h e n k e t t e i n d e r a n d e r e n z u f i n d e n s i n d . D i e g e n a u e F o r m e l l a u t e t : < b r > < b r > S t r C o m p ( S 1 , S 2 ) = 2 * n / ( L e n g t h ( S 1 ) + L e n g t h ( S 2 ) ) < b r > w o b e i n d i e A n z a h l d e r g l e i c h e Z e i c h e n ( g e r i c h t e t v o n l i n k s n a c h r e c h t s ) i s t . < b r > < p r e > < b r > S t r i n g 1 S t r i n g 2 g l e i c h e Z e i c h e n S t r C o m p < b r > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < b r > H i n t e r h u b e r E i n m e i e r 5 0 . 5 3 < b r > ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < b r > S i n d e l f i n g e n S i n d l e f i n g e n 1 1 0 . 9 2 < b r > ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < b r > H u b e r s t r a e A l b e r t u s s t r 6 0 . 5 5 < b r > ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ < / p r e > < b r > D i e F u n k t i o n e i g n e t s i c h h e r v o r r a g e n d d a z u , d e n z u e i n e r Z e i c h e n k e t t e h n l i c h s t e n a u s e i n e r T a b e l l e z u s u c h e n . < b r >
Syntax: FILESIZE(Tabellenhandle[,Modus] : INTEGER) : INTEGER

T a b e l l e n h a n d l e ( v o n O P E N D B ) < b r > M o d u s = 0 ( V o r g a b e ) S t a n d a r d - > A n z a h l d e r D a t e n s t z e i n d e r z u g e h r i g e n . d a t ( b z w . - 1 b e i V o l l t e x t - S t i c h w o r t - L i s t e n ) . < b r > M o d u s = 1 E r w e i t e r t - > < b r > A n z a h l d e r I D - E i n t r g e i m I D - I n d e x b e i S t i c h w o r t l i s t e n , d i e m i t t e l s S c a n R e c s u n d M o d u s = 4 e r z e u g t w u r d e n < b r > A n z a h l d e r E i n t r g e i m I N 2 - I n d e x b e i R E L - D a t e i e n , d i e m i t t e l s S c a n R e c s i m M o d u s = 4 e r z e u g t w u r d e n .
A n z a h l d e r D a t e n s t z e e i n e r T a b e l l e
A k t u e l l e A n z a h l d e r D a t e n s t z e i n d e r T a b e l l e .
F I L E S I Z E l i e f e r t n i c h t d i e p h y s i k a l i s c h e D a t e i g r e d e r T a b e l l e , s o n d e r n d i e a k t u e l l e A n z a h l d e r D a t e n s t z e ( Z e i l e n ) . < b r > < b r > Z u r B e s t i m m u n g d e r p y s i k a l i s c h e n D a t e i g r e g i b t e s d i e F u n k t i o n G E T S I Z E , d i e a l l e r d i n g s e i n e n P f a d a l s P a r a m e t e r b e n t i g t . < b r > < b r > W e n n T a b e l l e n m i t G E N L I S T u n d G E N R E L a n g e l e g t w u r d e n u n d i n e i n e V o l l t e x t i n d i z i e r u n g ( i m M i n i m a l m o d u s ) e i n g e z o g e n w u r d e n , l i e f e r t F I L E S I Z E f r d i e s e T a b e l l e n k e i n E r g e b n i s .
Syntax: FILLSTR(S : STRING; C : STRING; n : INTEGER) : STRING

S : b e l i e b i g e r S T R I N G < b r > C : b e l i e b i g e r S T R I N G < b r > n : 1 . . 2 5 5
F l l t e i n e S t r i n g a u f
S + C + C + C . . . , w o b e i C s o o f t a n g e f g t w i r d , b i s d i e G e s a m t l n g e > = n i s t .
Syntax: FINDAUTO(DB, a_no : INTEGER) : INTEGER

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > a _ n o : A u t o - N u m m e r
L i e f e r t d i e p h y s i k a l i s c h e S a t z n u m m e r z u e i n e r A U T O - N u m m e r
D i e p h y s i k a l i s c h e S a t z u m m e r d e s j e n i g e n D a t e n s a t z e s , d e r i n s e i n e n A U T O - I N C R E M E N T - F e l d d e n W e r t a _ n o e n t h l t . < b r > < b r > W e n n D B n i c h t a u t o m a t i s c h n u m m e r i e r t w i r d , l i e f e r t F I N D A U T O d e n P a r a m a t e r a _ n o z u r c k .
E s g i l t : < b r / > < b r / > < b r / > < b r > < d i v c l a s s = " c o d e " > I F A u t o F i e l d ( D B ) > 0 T H E N < b r / > < b r > R E T U R N F i n d R e c ( D B , s t r ( a _ n o ) , I n d N a m e ( D B , 0 ) , 1 ) < b r / > < b r > E L S E < b r / > < b r > R E T U R N a _ n o < b r / > < b r > E N D < / d i v >
Syntax: FindRec(db : INTEGER; SearchStr : STRING [;Index[;Mode : INTEGER]]) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > S e a r c h S t r : g e s u c h t e I n f o r m a t i o n < b r > i n d e x : I n d e x n a m e o d e r I n d e x n u m m e r ( > = 0 ) < b r > M o d e : 0 ( V o r g a b e ) - > S u c h e n a c h E i n t r a g > = S e a r c h S t r ; 1 - > S u c h e n a c h E i n t r a g = S e a r c h S t r < b r >
S u c h t e i n e n D a t e n s a t z b e r e i n e n I n d e x
0 - > k e i n D a t e n s a t z g e f u n d e n , a n s o n s t e n r e c n o ( d b ) < b r >
D e r S e a r c h S t r m u s s a d q u a t z u r I n d e x - B e s c h r e i b u n g a u f g e b a u t s e i n . E n t h l t e i n e K o m p o n e n t e e i n K o m m a , s o m u s s d i e s e g e k l a m m e r t w e r d e n . < b r > < b r > B e i s p i e l e : < b r > < b r > I n d e x - B e s c h r e i b u n g = " N a m e , V o r n a m e , O r t " < b r > S e a r c h S t r = " S c h w a l m , T i l l , M n c h e n " , " L i c h t e n b e r g , F r a n z , ( M n c h e n , M o o s a c h ) " < b r > < b r > W e r d e n d i e I n f o r m a t i o n e n v o m A n w e n d e r g e h o l t , i s t e i n e K l a m m e r u n g f r a l l e K o m p o n e n t e n s i n n v o l l : < b r > < b r > S e a r c h S t r : = ' ( ' + s _ N a m e + ' ) , ( ' + s _ V o r n a m e + ' ) , ( ' + s _ O r t + ' ) ' < b r > < b r > W i r d k e i n I n d e x a n g e g e b e n , s o w i r d i m a k t u e l l e n ( m i t t e l s a c c e s s e i n g e s t e l l t e n ) I n d e x g e s u c h t . S t e h t d e r Z u g r i f f n i c h t a u f e i n e m I n d e x ( s o n d e r n a u f N u m m e r o d e r M a r k i e r u n g ) , s o e r f o l g t d i e F e h l e r m e l d u n g " I l l e g a l e r Z u g r i f f " ) . < b r > < b r > M i t d e m M o d u s 0 w i r d d e r ( b z g l . d e r I n d e x - O r d n u n g ) k l e i n s t e E i n t r a g g e s u c h t , d e r g l e i c h o d e r g r e r d e m g e s u c h t e n i s t . I s t h i e r k e i n E i n t r a g v o r h a n d e n , s o w i r d d e r g r t e E i n t r a g g e s u c h t , d e r g l e i c h o d e r k l e i n e r d e m g e s u c h t e n i s t . I n d i e s e m M o d u s w i r d a l s o n u r d a n n 0 z u r c k g e l i e f e r t , w e n n d i e T a b e l l e k o m p l e t t l e e r i s t . < b r > < b r > I m M o d u s 1 w i r d h i n g e g e n n u r d a n n e i n W e r t u n g l e i c h 0 g e l i e f e r t , w e n n e i n E i n t r a g g e f u n d e n w i r d , d e r i n a l l e n K o m p o n e n t e n m i t d e r S u c h e b e r e i n s t i m m t . < b r >
Syntax: FIRSTDIR(Pattern, Attribute : STRING) : STRING

P a t t e r n : S u c h m u s t e r < b r > A t t r i b u t e : ( N u r u n t e r W i n 3 2 )
L i e f e r t d e n e r s t e n V e r z e i c h n i s e i n t r a g z u e i n e m S u c h m u s t e r
V e r z e i c h n i s - I n f o , w e n n g e f u n d e n < b r > L e e r s t r i n g s o n s t
E i n V e r z e i c h n i s - I f o i s t e i n S t r i n g m i t f o l g e n d e m A u f b a u : < b r > < b r > < p r e > < b r > Z e i c h e n I n h a l t < b r > 1 b i s 6 3 D a t e i n a m e < b r > 6 4 b i s 7 0 A t t r i b u t e ( d = D i r e c t o r y . . . ) < b r > 7 1 b i s 8 2 D a t e i g r s s e < b r > 8 4 b i s 9 4 D a t u m d e r l e t z t e n n d e r u n g < b r > 9 6 b i s 1 0 8 Z e i t d e r l e t z t e n n d e r u n g < b r > 1 1 0 b i s 1 2 7 Z u g r i f f s r e c h t e ( d e r e i t n u r u n t e r L i n u x ) < b r > 1 2 8 b i s 2 5 5 V e r z e i c h n i s a b s o l u t < b r > < / p r e > < b r > < b r > D i e D a t e i a t t r i b u t e w e r d e n n u r u n t e r W i n 3 2 a u s g e w e r t e t . H i e r w e r d e n z u s t z l i c h z u n o r m a l e n D a t e i e n g e s u c h t : < b r > < b r > ' D ' : V e r z e i c h n i s s e < b r > ' H ' : v e r s t e c k t e D a t e i e n < b r > ' S ' : S y s t e m d a t e i e n < b r > < b r > F I R S T D I R - N E X T D I R - S e q u e n z e n k n n e n n i c h t g e s c h a c h t e l t w e r d e n ( a l s o k e i n r e k u r s i v e s D u r c h s u c h e n e i n e s V e r z e i c h n i s b a u m s ) . D i e S y s t e m r e s s o u r c e n w e r d e n v o n d e r t d b e n g i n e v e r w a l t e t , e s m u s s k e i n e e x p l i z i t e F r e i g a b e e r f o l g e n . < b r > < b r > I n n e r h a l b e i n e r F I R S T D I R - N E X T D I R - S e q u e n z k a n n j e d o c h d i r F u n k t i o n D I R I N F O e i n g e s e t z t w e r d e n .
Syntax: FIRSTMARK(Tabellenhandle : INTEGER) : INTEGER

T a b e l l e n h a n d l e v o n O P E N D B
L i e f e r t d i e p h y s i k a l i s c h e S a t z n u m m e r d e s A n f a n g s d e r M a r k i e r u n g s l i s t e e i n e r T a b e l l e
P h y s i k a l i s c h e S a t z n u m m e r d e s K o p f e s d e r M a r k i e r u n g s l i s t e . < b r > < b r > 0 , w e n n M a r k i e r u n g s l i s t e l e e r
Syntax: FIRSTREC(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
L i e f e r t d i e N u m m e r d e s e r s t e n D a t e n s a t z e s b z g l . a k t u e l l e m Z u g r i f f
p h y s i k a l i s c h e S a t z n u m m e r d e s e r s t e n D a t e n s a t z e s
J e n a c h d e m , w i e d e r Z u g r i f f m i t A C C E S S f r d i e T a b e l l e g e s e t z t w u r d e , l i e f e r t F I R S T R E C u n t e r s c h i e d l i c h e E r g e b n i s s e : < b r > < b r > M a r k i e r u n g ( - 2 ) : e r s t e r D a t e n s a t z i n M a r k i e r u n g l i s t e < b r > N u m m e r ( - 1 ) : 1 ( w e n n T a b e l l e n i c h t l e e r ) < b r > I n d e x ( 0 . . 1 5 ) : D a t e n s a t z m i t d e r k l e i n s t e n I n d e x i n f o r m a t i o n < b r > < b r > B e i s p i e l : V o l l s t n d i g e s g e o r d n e t e s D u r c h l a u f e n e i n e s T a b e l l e b e r e i n e n I n d e x < b r > < p r e > < b r > d b : = O p e n D B ( . . . ) ; < b r > a c c e s s ( d b , 1 ) ; / / Z u g r i f f a u f I n d e x s e t z e n < b r > x : = f i r s t r e c ( d b ) ; < b r > W H I L E x D O < b r > r e a d r e c ( d b , x ) ; < b r > . . . h i e r s t e h t d e r S a t z z u r V e r f g u n g < b r > x : = n e x t r e c ( d b ) < b r > E N D ; < b r > < / p r e > < b r > < b r > < b r > < b r >
Syntax: FLUSH

< k e i n e >
b e r t r a g u n g s m t l i c h e r g e p u f f e r t e r D a t e n
0
D e r A u f r u f v o n F L U S H b e w i r k t , d a s s s m t l i c h e F i l e - H a n d l e s ( v o r b e r g e h e n d ) g e s c h l o s s e n w e r d e n , n a c h d m e v e n t u e l l g e s p e i c h e r t e D a t e n a u f d e n D a t e n t r g e r b e r t r a g e n w e r d e n . < b r > < b r > Z u d e m w i r d d e r C a c h e - S p e i c h e r f r d i e B T r e e s d e r I n d i z e s f r e i g e g e b e n . < b r > < b r > D u r c h F l u s h w i r d s i c h e r g e s t e l l t , d a s s d a s B e t r i e b s s y s t e m d e n a k t u e l l e n T a b e l l e n z u s t a n d e r h l t u n d d a m i t a n a n d e r e A n w e n d u n g e n b e r m i t t e l n k a n n .
Syntax: FLUSHDB(Tabellenhandle : INTEGER) : INTEGER

T a b e l l e n h a n d l e v o n O P E N D B
L e e r t d e n S c h r e i b p u f f e r
0 ( k e i n R c k g a b e w e r t )
W i r d m i t W R I T E R E C ( d b , x , 0 ) g e p u f f e r t i n e i n e T a b e l l e g e s c h r i e b e n , m u s s a m E n d e d e r S c h r e i b o p e r a t i o n e n F L U S H D B a u f g e r u f e n w e r d e n , d a m i t d i e n d e r u n g e n s i c h e r b e r t r a g e n w e r d e n . V o r a l l e m , w e n n n e u e D a t e n s t z e a n g e f g t w e r d e n , s i n d o h n e F L U S H D B d i e S t z e n i c h t g e s p e i c h e r t . G e p u f f e r t e s S c h r e i b e n i s t n o r m a l e r w e i s e n i c h t n o t w e n d i g , k a n n a b e r b e i s e h r v i e l e n S c h r e i b o p e r a t i o n e n ( I m p o r t g r o s s e r D a t e n b e s t n d e ) d i e P e r f o r m a n c e l e i c h t e r h h e n .
Syntax: FRAC(x : REAL) : REAL

x : R E A L
G e b r o c h e n d e r A n t e i l e i n e r Z a h l
G e b r o c h e n e r A n t e i l e i n e r Z a h l .
E s g i l t : < b r > < b r > x = I N T ( x ) + F R A C ( x )
Syntax: SQRT(x : REAL) : REAL

x : R E A L > = 0
Q u a d r a t w u r z e l
Q u a d r a t w u r z e l v o n x
I s t x < 0 , s o w i r d e i n L a u f z e i t f e h l e r a u s g e l s t .
Syntax: Exp FROM Exp_x TO Exp_y

E x p , E x p _ 1 , E x p _ 2 : S T R I N G o d e r R E A L ( a b e r a l l e v o m g l e i c h e n T y p )
A n f a n g e i n e s B e r e i c h e s f e s t l e g e n
T R U E , w e n n E x p _ 1 < = E x p < = E x p _ 2 < b r > F A L S E , s o n s t
F R O M . . . T O k a n n s o w o h l a u f S T R I N G a l s a u c h a u f n u m e r i s c h e A u s d r c k e a n g e w a n d t w e r d e n . < b r > < b r > B e i s p i e l : < b r > < b r > Y E A R ( x ) F R O M 1 9 5 2 T O 1 9 9 2 < b r > $ N A M E F R O M " K E " T O " L Z "
Syntax: FSUM(DB : INTEGER; Feld; n : INTEGER) : REAL

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > F e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g ) < b r > n : A n z a h l d e r z u s u m m i e r e n d e n F e l d e r
A d d i e r t d i e F e l d i n h a l t e a u f e i n a n d e r f o l g e n d e r D a t e n f e l d e r
S u m m e b e r d i e a n g e g e b e n F e l d e r .
W e n n i n e i n e r T a b e l l e n s t r u k t u r m e h r e r e n u m m e r i s c h e F e l d e r d i r e k t a u f e i n a n d e r f o l g e n , k a n n m i t F S U M e i n e S u m m e b e r d i e s e F e l d e r g e b i l d e t w e r d e n . < b r / > < b r > < b r / > < b r > B e i s p i e l : < b r / > < b r > < b r / > < b r > [ S T R U C T U R E ] < b r > < b r / > < b r > . . . < b r / > < b r > f i e l d _ 2 0 = U m s a t z _ 0 1 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 1 = U m s a t z _ 0 2 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 2 = U m s a t z _ 0 3 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 3 = U m s a t z _ 0 4 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 4 = U m s a t z _ 0 5 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 5 = U m s a t z _ 0 6 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 6 = U m s a t z _ 0 7 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 7 = U m s a t z _ 0 8 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 2 8 = U m s a t z _ 0 9 : N U M B E R , 8 , 2 < b r > < b r / > < b r > f i e l d _ 2 9 = U m s a t z _ 1 0 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 3 0 = U m s a t z _ 1 1 : N U M B E R , 8 , 2 < b r / > < b r > f i e l d _ 3 1 = U m s a t z _ 1 2 : N U M B E R , 8 , 2 < b r / > < b r > . . . < b r / > < b r > < b r / > < b r > F S U M ( D B , ' U m s a t z _ 0 1 ' , m o n t h ( t o d a y ) ) l i e f e r t z . B . & n b s p ; & n b s p ; & n b s p ; & n b s p ; i m M a i < s p a n s t y l e = " f o n t - s t y l e : i t a l i c ; " > U m s a t z _ 0 1 + U m s a t z _ 0 2 + U m s a t z _ 0 3 + U m s a t z _ 0 4 + U m s a t z _ 0 5 < / s p a n >
Syntax: GenIndex(db : INTEGER; IndDef : STRING; IndName : STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > I n d D e f : I n d e x b e s c h r e i b u n g a l s S t r i n g < b r > I n d N a m e : D a t e i n a m e d e s I n d e x ( o h n e P f a d , m i t . i n d ' a l s E x t e n s i o n )
E r z e u g t e i n e n n e u e n I n d e x < b r >
0 : F u n k t i o n k o n n t e n i c h t a u s g e f h r t w e r d e n ( F e h l e r c o d e m i t T D B _ L a s t E r r o r ) < b r > 1 . . 1 5 : N u m m e r d e s n e u e r z e u g t e n I n d e x < b r >
H u f i g s t e r F e h l e r : " I n d e x e x i s t i e r t b e r e i t s " . D i e t d b e n g i n e e r z e u g t k e i n e n I n d e x , w e n n e i n e ( I n d e x - ) D a t e i g l e i c h e n N a m e n s i m V e r z e i c h n i s d e r z u i n d i z i e r e n d e n < b r > T a b e l l e i s t . < b r > < b r > W i c h t i g : D e r I n d e x w i r d i m m e r i m g l e i c h e n V e r z e i c h n i s w i e d i e z u g e h r i g e T a b e l l e a b g e l e g t . D e r N a m e d e r I n d e x d a t e i s o l l t e i m m e r d i e E x t e n s i o n . i n d h a b e n . D i e D a t e i n a m e n s o l l t e n d e r 8 . 3 - K o n v e n t i o n e n t s p r e c h e n , a l s o x x x x x x x x . i n d . A u c h V e r z e i c h n i s a n g a b e n s i n d n i c h t z u l s s i g !
Syntax: GenList(Dateinname : STRING [Zeichenzahl : BYTE [; Modus : INTEGER]]) : INTEGER)

D a t e i n a m e : P f a d z u r S t i c h w o r t t a b e l l e < b r > Z e i c h e n z a h l : m a x i m a l e L n g e e i n e s S t i c h w o r t s < b r > M o d u s 0 : ( V o r g a b e ) k e i n e H u f i g k e i t s z h l u n g < b r > M o d u s 1 : m i t H u f i g k e i t s z h l u n g
e r z e u g t e i n e S t i c h w o r t t a b e l l e
0 : S t i c h w o r t t a b e l l e e r f o l g r e i c h e r z e u g t < b r > s o n s t F e h l e r c o d e
D a m i t w i r d e i n e n e u e , l e e r e T a b e l l e u n t e r d e m D a t e i n a m e n a n g e l e g t . D i e S t r u k t u r d i e s e r T a b e l l e i s t , w e n n k e i n M o d u s o d e r M o d u s = 0 a n g e g e b e n < b r > w u r d e : < b r > < b r > [ S T R U C T U R E ] < b r > f i e l d _ 1 = W o r t , S T R I N G , Z e i c h e n z a h l < b r > f i e l d _ 2 = L a u f e n d e _ N u m m e r , A U T O , 1 < b r > [ I N D E X ] < b r > i d = W o r t , L a u f e n d e _ N u m m e r < b r > < b r > F r d e n M o d u s = 1 e r g i b t s i c h e i n k l e i n e r U n t e r s c h i e d : < b r > < b r > [ S T R U C T U R E ] < b r > f i e l d _ 1 = W o r t , S T R I N G . Z e i c h e n z a h l < b r > f i e l d _ 2 = W i e O f t , N U M B E R , 2 < b r > f i e l d _ 3 = L a u f e n d e _ N u m m e r , A U T O , 1 < b r > [ I N D E X ] < b r > i d = W o r t , L a u f e n d e _ N u m m e r , W i e O f t < b r >
Syntax: GenRel(Tabelle1,Tabelle2,Dateiname : STRING) : INTEGER

T a b e l l e 1 : N a m e d e r z u i n d i z i e r e n d e n T a b e l l e ( o h n e V e r z e i c h n i s ) < b r > T a b e l l e 2 : N a m e d e r S t i c h w o r t t a b e l l e ( o h n e V e r z e i c h n i s ) < b r > D a t e i n a m e : P f a d z u r R e l a t i o n s t a b e l l e
e r z e u g t d i e R e l a t i o n s t a b e l l e f r e i n e n V o l l t e x t i n d e x
0 : R e l a t i o n s t a b e l l e e r f o l g r e i c h e r z e u g t < b r > s o n s t F e h l e r c o d e
l e g t e i n e l e e r e R e l a t i o n s t a b e l l e m i t f o l g e n d e r S t r u k t u r a n < b r > < b r > [ S T R U C T U R E ] < b r > f i e l d _ 1 = R - T a b e l l e 1 , L I N K , T a b e l l e 1 < b r > f i e l d _ 2 = R - T a b e l l e 2 , L I N K , T a b e l l e 2 < b r >
Syntax: SORTMARK(db : INTEGER; IndDef : STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > I n d D e f : I n d e x - D e f i n i t i o n
s o r t i e r t d i e M a r k i e r u n g s l i s t e
1 : e r f o l g r e i c h s o r t i e r t < b r > 0 : e s i s t e i n F e h l e r a u f g e t r e t e n
E i n e I n d e x - D e f i n i t i o n h a t f o l g e n d e S t r u k t u r : < b r > < b r > H i e r a r c h i s c h e r I n d e x : : = F e l d - D e f { " , " F e l d - D e f } . < b r > F e l d - D e f : : = [ " $ " ] F e l d [ " : " Z a h l ] < b r > F e l d : : = F e l d b e z e i c h n e r | F e l d n u m m e r < b r > < b r > B e r e c h n e t e r I n d e x : : = " ( " A u s d r u c k " ) " [ " : " Z a h l ] < b r > < b r > B e i s p i e l e : < b r > < b r > H i e r a r c h i s c h e r I n d e x : N a m e , V o r n a m e : 1 , P L Z < b r > B e r e c h n e t e r I n d e x : ( N a m e + ' / ' + V o r n a m e ) : 4 0 < b r > < b r > D i e o p t i o n a l e A n g a b e : Z a h l n a c h e i n e m F e l d ( b z w . n a c h e i n e m A u s d r u c k ) w i r d n u r b e i S t r i n g - F e l d e r n ( b z w . b e i S t r i n g - A u s d r c k e n ) a u s g e w e r t e t < b r > u n d g i b t a n , w i e v i e l e Z e i c h e n d e s S t r i n g s ( m a x i m a l ) i n d i e I n d e x i n f o r m a t i o n b e r n o m m e n w e r d e n . < b r > < b r > F o l g e n d e E i n s c h r n k u n g e n f r I n d e x b e s c h r e i b u n g e n g e l t e n d e r z e i t ( V e r s i o n 6 . 2 . 6 ) : < b r > < b r > D e r A u s d r u c k e i n e s b e r e c h n e t e n I n d e x d a r f d e r z e i t 4 0 Z e i c h e n n i c h t b e r s c h r e i t e n . < b r > D i e I n d e x i n f o r m a t i o n ( S u m m e a l l e r H i e r a r c h i e s t u f e n ) d a r f m a x i m a l 2 5 6 B y t e s u m f a s s e n . < b r >
Syntax: WRITEREC(DB : INTEGER; recno : INTEGER [; mode : INTEGER]) : INTEGER

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > r e c n o : p h y s i k a l i s c h e S a t z n u m m e r ( P o s i t i o n ) < b r > m o d e : 0 = G e p u f f e r t e s S c h r e i b e n , F l u s h D B e r f o r d e r l i c h ; 1 = U n g e p u f f e r t ( V o r g a b e )
S c h r e i b t e i n e n D a t e n s a t z < b r >
r e c n o ( S a t z p o s i t i o n n a c h A u s f h r u n g d e r O p e r a t i o n )
G l t i g e W e r t e f r r e c n o s i n d 1 b i s F i l e S i z e ( D B ) + 1 . I s t r e c n o k l e i n e r o d e r g l e i c h F i l e S i z e ( D B ) , s o w i r d d e r a n d i e s e r P o s i t i o n s t e h e n d e D a t e n s a t z b e r s c h r i e b e n . I s t r e c n o = F i l e S i z e ( D B ) + 1 , s o w i r d e i n n e u e r D a t e n s a t z a n d i e T a b e l l e a n g e h n g t .
Syntax: GETCODE(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
V e r s c h l s s e l u n g s c o d e e i n e r T a b e l l e
V e r s c h l s s e l u n g s c o d e d e r T a b e l l e . < b r > 0 , w e n n d b n i c h t v e r s c h l s s e l t
D i e F u n k t i o n w r i d b e i s p i e l s w e i s e e i n g e s e t z t , w e n n e i n e T a b e l l e e x p o r t i e r t w e r d e n s o l l , w o b e i P a s s w o r t u n d V e r s c h l s e l u n g s c o d e d e r U r s p r u n g s t a b e l l e e r h a l t e n w e r d e n .
Syntax: GETSTRUCTURE(db : INTEGER; field : INTEGER|STRING) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S T R I N G )
S t r u k t u r e i n e s T a b e l l e n - F e l d e s e r m i t t e l n
F e l d s t r u k t u r g e m T a b e l l e n s t r u k t u r . N h e r e s s i e h e M A K E D B < b r > < b r >
< b r / > < b r > < b r / >
Syntax: GETDIR(drive : INTEGER) : STRING

d r i v e : L a u f w e r k < b r > 0 : a k t u e l l e s L a u f w e r k < b r > 1 : A : < b r > 2 : B : < b r > . . . < b r > < b r > U n t e r L i n u x / F r e e B S D i m m e r 0
e r m i t t e l t d a s a k t u e l l e V e r z e i c h n i s
A k t u e l l e s V e r z e i c h n i s i n U n i x - S c h r e i b w e i s e
Syntax: SOUNDEX(s : STRING) : STRING

s : b e l i e b i g e r S t r i n g
l i e f e r t e i n e n p h o n e t i s c h e n S t r i n g
A u f " P h o n e m e " r e d u z i e r t e r W e r t v o n s
x h n l i c h y < b r > < b r > w i r d i n t e r n a u s g e w e r t e t a l s < b r > S O U N D E X ( x ) = S O U N D E X ( y ) < b r > < b r > D i e F u n k t i o n S O U N D E X w i e d e r u m l i e f e r t e i n e s e h r s i m p l e s p h o n e t i s c h e s B i l d e i n e r Z e i c h e n k e t t e . H i e r k u r z d i e R e g e l n : < b r > < b r > D e r e r s t e B u c h s t a b e w i r d u n v e r n d e r t b e r n o m m e n . < b r > D i e f o l g e n d e n Z e i c h e n w e r d e n v o n l i n k s n a c h r e c h t s s o c o d i e r t : < b r > < b r > ' B ' , ' F ' , ' P ' , ' V ' - > ' 1 ' < b r > ' C ' , ' G ' , ' K ' , ' Q ' , ' S ' , ' X ' , ' Z ' , ' ' - > ' 2 ' < b r > ' D ' , ' T ' - > ' 3 ' < b r > ' L ' - > ' 4 ' < b r > ' M ' , ' N ' - > ' 5 ' < b r > ' R ' - > ' 6 ' < b r > < b r > A l l e a n d e r e n Z e i c h e n w e r d e n b e r s p r u n g e n . E i n Z e i c h e n w i r d a u c h b e r s p r u n g e n , w e n n e s d e n g l e i c h e n C o d e w i e d a s l e t z t e Z e i c h e n l i e f e r t . < b r > < b r > V o n d e m r e s u l t i e r e n d e n S t r i n g w e r d e n n u r d i e e r s t e n 4 Z e i c h e n v e r w e n d e t . < b r > < b r > D e r H a u p t n a c h t e i l b e s t e h t d a r i n , d a s s v i e l z u v i e l e u n t e r s c h i e d l i c h e W r t e r p a s s e n , e i n e S u c h e a l s o m e i s t e i n e z u g r o e T r e f f e r z a h l l i e f e r t . < b r > < b r > A l l e r d i n g s h a t S O U N D E X n i c h t s m i t d e m O p e r a t o r " H A S " z u t u n , d e r w i e d e r u m a u f d e m E i n s a t z d e r F u n k t i o n P O S b e r u h t . < b r > < b r > W e n n d e r g e s u c h t e B e g r i f f n i c h t a m A n f a n g d e s S t r i n g s s t e h t , w i r d m a n m i t " h n l i c h " k e i n G l c k h a b e n . < b r > < b r > B e s s e r a l s " h n l i c h " o d e r " e n t h l t " i s t i n j e d e m F a l l d e r E i n s a t z v o n " w i e " u n d " i n " o d e r a u c h v o n S T R C O M P ( f r S p e z i a l a n w e n d u n g e n ) .
Syntax: GETENV(name : STRING) : STRING

n a m e : b e l i e b i g e r S T R I N G
E n v i r o n m e n t - V a r i a b l e e r m i t t e l n
E n v i r o n m e n t - V a r i a b l e m i t d e m a n g e g e b e n N a m e n .
< p > E s w e r d e n m a x i m a l 2 5 5 Z e i c h e n z u r c k g e l i e f e r t . U m d i e s e r B e s c h r n k u n g z u e n t g e h e n , w i r d n a c h j e d e m G E T E N V e i n R a m t e x t " r a m t e x t : e n v i r o n m e n t " e i n g e r i c h t e t , d e r d e n k o m p l e t t e n W e r t d e r g e s u c h t e n V a r i a b l e n e n t h l t . < / p > < b r > < p > M i t e i n e r S p e z i a l f o r m d e r F u n k t i o n G e t E n v k a n n m a n a u c h V a r i a b l e n f r d a s i n t e r n e E n v i r o n m e n t d e r t d b e n g i n e s e t z e n : < b r / > < b r / > < b r > < s p a n c l a s s = " c o d e " > < b r > < s p a n c l a s s = " f u n c " > G e t E n v < / s p a n > ( ' s e t : V a r i b a l e = W e r t ' ) < / s p a n > < b r / > < b r / > < b r > B e i s p i e l : < s p a n c l a s s = " c o d e " > < b r > < s p a n c l a s s = " f u n c " > G e t E n v < / s p a n > ( ' s e t : M E I N _ N A M E = H a n s M u s t e r m a n n ' ) < / s p a n > < b r / > < b r / > < b r > I n d e r F o l g e l i e f e r t < s p a n c l a s s = " c o d e w o r d " > G e t E n v ( ' M E I N _ N A M E ' ) < / s p a n > d e n S t r i n g ' H a n s M u s t e r m a n n ' . D i e s e V a r i a b l e d a n n s o l a n g e g l t i g , b i s s i e e n t w e d e r u m d e f i n i e r t o d e r a b e r d i e t d b e n g i n e b e e n d e t w i r d . < / p > < b r > < p > V o r b e l e g u n g e n : < / p > < b r > < p > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > T D B _ V E R S I O N < / s p a n > < b r / > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > T D B _ O S < / s p a n > < b r / > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > s e t : H T T P _ P R O X Y < / s p a n > < b r / > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > s e t : T D B _ S U B S T < / s p a n > < / p > < b r > < p > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > T D B _ L I B P A T H < / s p a n > < / p > < b r > < p > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > T D B _ S E M A < / s p a n > < / p > < b r > < p > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d " > T D B _ S E M A D I R < / s p a n > < / p >
Syntax: GETFIELD(db : INTEGER; field : INTEGER|STRING[; VAR buffer : BYTE[]]) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d b e z e i c h n e r o d e r F e l d n u m m e r < b r > b u f f e r : P u f f e r
l i e f e r t d e n I n h a l t e i n e s e i n e s F e l d e s a u s d e m S a t z p u f f e r
F e l d i n d h a l t a l s S T R I N G
< p > G E T F I E L D k a n n m i t a l l e n F e l d t y p e n v e r w e n d e t w e r d e n , a u s s e r m i t M e m o s u n d B l o b s . < / p > < b r > < p > W e n n n u m e r i s c h e W e r t e i m P r o g r a m m w e i t e r v e r a r b e i t e t w e r d e n s o l l e n , i s t G E T R F I E L D v o r z u z i e h e n . < / p >
Syntax: GETIDENT(ini, ident : STRING) : STRING

i n i : P f a d z u r K o n f i g u r a t i o n s d a t e i < b r > i d e n t : N a m e d e s g e s u c h t e n W e r t e s
H o l t e i n e n E i n t r a g a u s e i n e r K o n f i g u r a t i o n s d a t e i
D e r g e s u c h t e W e r t a u s d e r K o n f i g u r a t i o n s d a t e i
Z u d e n s p e z i e l l e n T e x t d a t e i e n w o l l e n w i r K o n f i g u r a t i o n s d a t e i e n u n d T e m p l a t e s z h l e n . D i e t d b e n g i n e u n t e r s t t z t K o n f i g u r a t i o n s d a t e i e n i m f o l g e n d e n S t i l : < b r / > < b r / > < b r > [ G r u p p e 1 ] < b r / > < b r > E i n t r a g 1 = . . . < b r / > < b r > E i n t r a g 2 = . . . < b r / > < b r > . . . < b r / > < b r > [ G r u p p e 2 ] < b r / > < b r > E i n t r a g 1 = . . . < b r / > < b r > E i n t r a g 2 = . . . < b r / > < b r > . . . < b r / > < b r > J e d e r E i n t r a g k a n n a u s b i s z u 2 5 5 Z e i c h e n b e s t e h e n . Z u r B e a r b e i t u n g v o n d e r a r t i g e n D a t e i e n s t e l l t E A S Y z w e i F u n k t i o n e n z u r V e r f g u n g : S E T I D E N T u n d G E T I D E N T : < b r / > < b r > S E T I D E N T ( K o n f i g u r a t i o n s d a t e i , E i n t r a g , W e r t ) s c h r e i b t E i n t r a g = W e r t i n K o n f i g u r a t i o n s d a t e i < b r / > < b r > G E T I D E N T ( K o n f i g u r a t i o n s d a t e i , E i n t r a g ) l i e f e r t d e n z u m E i n t r a g g e h r e n d e n W e r t E i n t r g e w e r d e n d a b e i i n F o r m G r u p p e . E i n t r a g a n g e g e b e n . < b r / > < b r > B e i s p i e l : < p r e > P R O C E D U R E M a i n < b r > V A R i n i : S T R I N G < b r > i n i : = ' t e s t . i n i ' < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > S E T I D E N T ( i n i , ' A d m i n i s t r a t o r . N a m e ' , ' H a n s H u b e r ' ) < b r > S E T I D E N T ( i n i , ' A d m i n i s t r a t o r . P a s s w o r t ' , ' g e h e i m ' ) < b r > S E T I D E N T ( i n i , ' D a t e n b a n k . A d r e s s e n ' , ' d a t a b a s e / a d r e s s e n . d a t ' ) < b r > c g i c l o s e b u f f e r < b r > c o p y f i l e ( i n i , ' c o n ' ) < b r > E N D P R O C < b r > < / p r e > D i e s e s k l e i n e P r o g r a m m l e g t d i e D a t e i t e s t . i n i m i t f o l g e n d e m I n h a l t a n : < b r / > < b r / > < b r > [ A d m i n i s t r a t o r ] < b r / > < b r > N a m e = H a n s H u b e r < b r / > < b r > P a s s w o r t = g e h e i m < b r / > < b r > [ D a t e n b a n k ] < b r / > < b r > A d r e s s e n = d a t a b a s e / a d r e s s e n . d a t < b r / > < b r / > < b r > A n m e r k u n g : D i e e r z e u g t e D a t e i w i r d d a n n a u c h n o c h a u f d e m B i l d s c h i r m a u s g e g e b e n . W i c h t i g i s t h i e r d e r E i n s a t z v o n C G I C L O S E B U F F E R , d a m i t d e r i n t e r n e P u f f e r v o r d e m K o p i e r v o r g a n g a u s g e g e b e n w i r d . M i t G E T I D E N T k n n e n d i e e i n z e l n e n E i n t r g e a u s g e l e s e n w e r d e n . < b r / > < b r > B e i s p i e l e : < b r / > < b r > G E T I D E N T ( ' t e s t . i n i ' , ' A d m i n i s t r a t o r . N a m e ) - > ' H a n s H u b e r ' < b r / > < b r > G E T I D E N T ( ' t e s t . i n i ' , D a t e n b a n k . A d r e s s e n ) - > ' d a t a b a s e / a d r e s s e n . d a t ' < b r / > < b r > H i n w e i s : B e i m e r s t e n Z u g r i f f a u f e i n e K o n f i g u r a t i o n s d a t e i w i r d d i e s e k o m p l e t t i n d e n A r b e i t s s p e i c h e r d e s C o m p u t e r s g e l e s e n u n d b e r e i n e B a u m s t r u k t u r d e m P r o g r a m m z u r V e r f g u n g g e s t e l l t . D e s h a l b i s t d e r Z u g r i f f e x t r e m s c h n e l l . K o n f i g u r a t i o n s d a t e i e n e r s e t z e n i n v i e l e n F l l e n D a t e n b a n k e n ! H I N W E I S : W e n n S i e G e t I d e n t ( " " , " " ) a u s f h r e n , s o w e r d e n a l l e i m S p e i c h e r b e f i n d l i c h e n I n f o r m a t i o n e n g e l s c h t . D e r n c h s t e Z u g r i f f a u f e i n e K o n f i g u r a t i o n s d a t e i l i e s t d i e s e n e u e i n . D i e s i s t u . a . i m Z u s a m m e n h a n g m i t C h i l d - P r o z e s s e n d e r S E R V E R ( ) - F u n k t i o n v o n B e d e u t u n g . < b r / > < b r / >
Syntax: GETMARKS(db : INTEGER; VAR marks) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > m a r k s : M A R K S | I N T E G E R [ ] | R E A L [ ] | T B I T S [ ] < b r >
s p e i c h e r t e i n e M a r k i e r u n g s l i s t e
0 : O p e r a t i o n e r f o l g r e i c h < b r > s o n s t : F e h l e r c o d e ( 4 4 f a l s c h e r T y p )
I n m a n c h e n F l l e n k o m m t e s v o r , d a s s m a n d i e M a r k i e r u n g s l i s t e z w i s c h e n p e i c h e r n m u s s , w e i l z . B . k u r z f r i s t i g e i n e w e i t e r e S e l e k t i o n a u f d i e T a b e l l e v o r g e n o m m e n w e r d e n m u s s . Z u d i e s e m Z w e c k b i e t e t E A S Y d i e F u n k t i o n e n g e t m a r k s u n d p u t m a r k s . D i e s e F u n k t i o n e n k n n e n m i t u n t e r s c h i e d l i c h e n A r g u m e n t e n a u f g e r u f e n w e r d e n : < p r e > V A R m a r k s : M A R K S < b r > g e t m a r k s ( d b , m a r k s ) / / s i c h e r t d i e M a r k i e r u n g s l i s t e v o n d b i n m a r k s < b r > p u t m a r k s ( d b , m a r k s ) / / s p e i c h e r t d i e g e s i c h e r t e M a r k i e r u n g s l i s t e z u r c k < b r > < / p r e > H i n w e i s : p u t m a r k s b e r s c h r e i b t d i e a k t u e l l e M a r k i e r u n g s l i s t e v o n d b . D e r D a t e n t y p M A R K S k a n n n u r m i t d i e s e n b e i d e n F u n k t i o n e n v e r w e n d e t w e r d e n . D e r g r o e V o r t e i l , e i n e V a r i a b l e v o m T y p M A R K S e i n z u s e t z e n , b e s t e h t d a r i n , d a s s * n u r d e r w i r k l i c h b e n t i g t e S p e i c h e r p l a t z v e r w e n d e t w i r d * d i e S o r t i e r u n g i n n e r h a l b d e r M a r k i e r u n g s l i s t e r h a l t e n b l e i b t D i e M a r k i e r u n g s l i s t e k a n n a b e r a u c h a u f i n e i n e m I N T E G E R o d e r R E A L - A r r a y g e s p e i c h e r t w e r d e n . H i e r m u s s d e r P r o g r a m m i e r e r d a f r s o r g e n , d a s s d a s R E A L - A r r a y g e n g e n d E l e m e n t e e n t h l t , u m d i e g e s a m t e L i s t e s p e i c h e r n z u k n n e n : < p r e > V A R m a r k s : I N T E G E R [ ] < b r > . . . < b r > i n i t a r r a y ( m a r k s [ n m a r k s ( d b ) ] ) < b r > g e t m a r k s ( d b , m a r k s ) < b r > p u t m a r k s ( d b , m a r k s ) < b r > < / p r e > N a c h g e t m a r k s ( d b , m a r k s ) l i e g e n i n m a r k s d i e p h y s i k a l i s c h e n S a t z n u m m e r n d e r M a r k i e r u n g s l i s t e v o r . H i e r e i n e P r o z e d u r , i n d e r d i e M a r k i e r u n g s i s t e i n e i n e r e x t e r n e n T e x t d a t e i g e s p e i c h e r t w i r d : < p r e > P R O C E D U R E S a v e M a r k s ( d b : I N T E G E R ) ; < b r > V A R t e x t , i : I N T E G E R ; < b r > V A R m a r k s : I N T E G E R [ ] ; < b r > i n i t a r r a y ( m a r k s [ n m a r k s ( d b ) ] ) ; < b r > g e t m a r k s ( d b , m a r k s ) ; < b r > I F t e x t : = r e w r i t e ( ' m a r k s _ s a v e ' ) T H E N < b r > n l o o p ( i , h i g h ( 1 , m a r k s ) - 1 , w r i t e l n ( t e x t , m a r k s [ i ] ) ) ; < b r > c l o s e ( t e x t ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > A u c h d e r E i n s a t z v o n g e t m a r k s u n d p u t m a r k s m i t e i n e m R E A L - A r r a y i s t o r d n u n g s e r h a l t e n d . D e r V o r t e i l l i e g t d a r i n , d a s s d i e S a t z n u m m e r n u n m i t t e l b a r g r e i f - u n d m a n i p u l i e r b a r v o r l i e g e n . S c h l i e l i c h g i b t e s n o c h d i e M g l i c h k e i t , e i n e V a r i a b l e v o m T y p e T B I T S z u v e r w e n d e n . U m r i c h t i g z u a r b e i t e n , m u s s d i e s e s F e l d s o d i m e n s i o n i e r t w e r d e n , d a s s e s d i e g e s a m t e T a b e l l e a b b i l d e n k a n n : < p r e > V A R m a r k s : T B I T S [ ] < b r > . . . < b r > i n i t a r r a y ( m a r k s [ f i l e s i z e ( d b ) ] ) < b r > g e t m a r k s ( d b , m a r k s ) < b r > p u t m a r k s ( d b , m a r k s ) < b r > < / p r e > H i e r g i l t n a c h g e t m a r k s ( d b , m a r k s ) , d a s s * m a r k s [ x ] = 1 w e n n d e r D a t e n s a t z m i t d e r S a t z n u m m e r x i n d e r M a r k i e r u n g s i s t e i s t * m a r k s [ x ] = 0 a n d e r n f a l l s m a r k s i s t s o m i t e i n A b b i l d d e r T e i l m e n g e d e r T a b e l l e , d i e d u r c h d i e M a r k i e r u n g s l i s t e f e s t g e l e g t i s t . U n d w i e b e i j e d e r M e n g e , g e h t h i e r d i e O r d n u n g v e r l o r e n ! D e r V o r t e i l d e r V e r w e n d u n g v o n T B I T S l i e g t v o r a l l e m d a r i n , d a s s m i t d e n F u n k t i o n e n * b i t a n d ( b _ f e l d 1 , b _ f e l d 2 ) * b i t o r ( b _ f e l d 1 , b _ f e l d 2 ) * b i t a n d n o t ( b _ f e l d 1 , b _ f e l d 2 ) d i e w i c h t i g s t e n M e n g e n o p e r a t i o n e n s e h r e f f i z i e n t d u r c h g e f h r t w e r d e n k n n e n . A l l e d r e i F u n k t i o n e n l i e f e r n l i e f e r n d i e C a r d i n a l i t t ( A n z a h l d e r E i n s e n ) v o n b _ f e l d _ 1 n a c h d e r j e w e i l i g e n O p e r a t i o n . b i t a n d : b _ f e l d 1 : = b _ f e l d 1 g e s c h n i t t e n m i t b _ f e l d 2 b i t o r : b _ f e l d 1 : = b _ f e l d 1 v e r e i n i g t m i t b _ f e l d 2 b i t a n d n o t : b _ f e l d 1 : = b _ f e l d 1 g e s c h n i t t e n m i t d e m K o m l i m e n t v o n b _ f e l d 2 ( M e n g e n d i f f e r e n z ) D i e A r b e i t m i t d e m D a t e n t y p T B I T S i s t s o e f f i z i e n t , d a s s b e i s p i e l s w e i s e d i e V o l l t e x t s u c h e g r u n d s t z l i c h d a r a u f z u r c k g r e i f t ( m a r k b i t s ) . M a n w i r d s i e i m m e r d a n n e i n s e t z e n , w e n n m e h r e r e - l o g i s c h v e r k n p f t e - S e l e k t i o n e n a u f e i n e T a b e l l e a u s g e f h r t w e r d e n .
Syntax: GETMODE(db : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B
T a b e l l e n r e c h t e e r m i t t e l n ( v e r a l t e t )
S t r i n g a u s d e n Z e i c h e n < b r > ' N ' : n e u e D a t e n s t z e v e r b o t e n < b r > ' E ' : D a t e n s t z e b e r s c h r e i b e n v e r b o t e n < b r > ' L ' : D a t e n s t z e l s c h e n v e r b o t e n < b r > ' I ' : I n d i z i e r u n g v e r b o t e n
W i r d d u c h D B R I G H T S e r s e t z t .
Syntax: GETPARA(para : STRING) : INTEGER

p a r a : L a u f z e i t s c h a l t e r a l s S t r i n g < b r > < b r > ' e c ' - > F e h l e r b e h a n d l u n g < b r > ' n v ' - > A u s w e r t u n g m i t V A L < b r > ' n b ' - > A b b r u c h t e s t < b r > ' e m ' - > V o l l t e x t - M o d u s
W e r t e i n e s L a u f z e i t s c h a l t e r s e r m i t t e l n < b r >
a k t u e l l g e s e t z t e r W e r t d e s j e w e i l i g e n S c h a l t e r s
b e r L a u f z e i t s c h a l t e r w i r d d a s V e r h a l t e n d e r t d b e n g i n e g e s t e u e r t . M i t A u s n a h m e v o n A K w e r d e n a l l e S c h a l t e r e r s t z u r L a u f z e i t a k t i v i e r t u n d g e l t e n g r u n d s t z l i c h g l o b a l . < b r > < b r > S e t z e n u n d A u s l e s e n < b r > < b r > Z u m S e t z e n e i n e s S c h a l t e r s b e s t e h e n z w e i M g l i c h k e i t e n : < b r > < b r > * P u n k t b e f e h l ( v e r a l t e t ) < b r > * F u n k t i o n S e t P a r a < b r > < b r > E i n P u n k t b e f e h l i s t e i n e P r o g r a m m z e i l e , d i e m i t e i n e m P u n k t b e g i n n t ( w o b e i f h r e n d e L e e r z e i c h e n i g n o r i e r t w e r d e n ) . N a c h d i e s e m P u n k t w e r d e n d i e e i n z e l n e n S c h a l t e r m i t d e m j e w e i l i g e n W e r t h i n t e r e i n a n d e r - u n d j e w e i l s d u r c h K o m m a g e t r e n n t - g e s c h r i e b e n : < b r > < b r > . e c 1 , n b 0 < b r > < b r > D a i n d e r n c h s t e n H a u p t v e r s i o n ( 6 . 3 . x ) d i e Z e i l e n s t r u k t u r i n E A S Y - P r o g r a m m e n a u f g e h o b e n w i r d , s o l l t e v o n d i e s e r A r t d e r S c h a l t e r s e t z u n g n i c h t m e h r G e b r a u c h g e m a c h t w e r d e n . < b r > < b r > A n d e s s e n S t e l l e t r i t t d i e F u n k t i o n S e t P a r a : < b r > < b r > S e t P a r a ( S c h a l t e r : S T R I N G ) : I N T E G E R < b r > < b r > H i e r w e r d e n d i e S c h a l t e r a l s S t r i n g b e r g e b e n ( o h n e f h r e n d e n P u n k t ) - e b e n f a l l s d u r c h K o m m a g e t r e n n t : < b r > < b r > S e t P a r a ( ' e c 1 , n b 0 ' ) < b r > < b r > D e r R c k g a b e w e r t d e r F u n k t i o n i s t i m m e r 0 , b e i e i n e m i l l e g a l e n B e f e h l w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . < b r > < b r > D e r W e r t e i n e s S c h a l t e r s k a n n m i t d e r F u n k t i o n G e t P a r a m a b g e f r a g t w e r d e n . < b r > < b r > G e t P a r a ( S c h a l t e r : S T R I N G ) : I N T E G E R < b r > < b r > B e i s p i e l : < b r > < b r > G e t P a r a ( ' e c ' ) - > 0 | 1 ( j e n a c h d e m )
Syntax: GETPW(db : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B
P a s s w o r t e i n e r T a b e l l e e r m i t t e l n
P a s s w o r t d e r T a b e l l e
Syntax: DELINDEX(db : INTEGER; Index : INTEGER|STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > I n d e x : I n d e x n a m e ( o h n e P f a d , a b e r m i t E x t e n s i o n ) o d e r I n d e x n u m m e r
L s c h t e i n e n b e s t e h e n e n I n d e x u n d e n t f e r n t i h n a u s d e r T a b e l l e
0 = F u n k t i o n e r f o l g r e i c h a u s g e f h r t , s o n s t F e h l e r c o d e < b r >
H u f i g s t e r F e h l e r : " I n d e x i s t n o c h i n G e b r a u c h " . S o l a n g e d e r I n d e x d e r a k t i v e Z u g r i f f e i n e r g e f f n e t e n T a b e l l e i s t , k a n n e r n i c h t e n t f e r n t w e r d e n . < b r > < b r > A c h t u n g : D e r b e t r e f f e n d e I n d e x w i r d d e f i n i t i v g e l s c h t u n d a u s d e r T a b e l l e e n t f e r n t . D i e F u n k t i o n s o l l t e m i t g r t e r V o r s i c h t e i n g e s e t z t w e r d e n : D a T a b e l l e n z u m e h r e r e n P r o j e k t e n g e h r e n k n n e n , w e i s s e i n P r o j e k t o f t n i c h t s v o n d e r N o t w e n d i g k e i t e i n e s I n d e x i n e i n e m a n d e r e n P r o j e k t . N a c h D e l I n d e x w e r d e n a l l e h h e r e n I n d e x n u m m e r u m 1 d e k r e m e n t i e r t .
Syntax: GETRFIELD(db : INTEGER; field : INTEGER|STRING) : REAL

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d b e z e i c h n e r o d e r F e l d n u m m e r
l i e f e r t d e n I n h a l t e i n e s e i n e s F e l d e s a u s d e m S a t z p u f f e r
F e l d i n d h a l t a l s Z a h l
G E T R F I E L D k a n n m i t a l l e n n u m e r i s c h e n F e l d t y p e n v e r w e n d e t w e r d e n : < b r > < b r > N U M B E R 1 , 2 , 4 , 6 , 8 < b r > A U T O < b r > L I N K < b r > D A T E < b r > T I M E < b r > U T I M E < b r > S E L E C T < b r > < b r > G E T R F I E L D l e i f e r t i m m e r d i e v o l l e i m F e l d g e s p e i c h e r t e G e n a u i g k e i t
Syntax: GETSIZE(path : STRING) : INTEGER

p a t h : P f a d z u e i n e r D a t e i ( a u c h R a m t e x t )
L i e f e r t d i e G r e e i n e r D a t e i
G r e d e r D a t e i i n B y t e s .
G E T S I Z E k a n n n u r a u f D a t e i e n a n g e w a n d t w e r d e n , n i c h t a u f S o c k e t s .
Syntax: GETTYPE(db : INTEGER; field : INTEGER | STRING[; length : INTEGER]) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g ) < b r > l e n g t h : L n g e d e r A u s g a b e
F e l d t y p e r m i t t e l n ( v e r a l t e t )
T y p d e s F e l d e s a l s S t r i n g : < b r > < b r > S : S T R I N G < b r > C : C H A R < b r > B : B Y T E ( = N U M B E R , 1 ) < b r > I : I N T E G E R ( = N U M B E R , 2 ) < b r > F : F L O A T ( = N U M B E R , 8 ) < b r > D : D A T E < b r > J : B O O L < b r > M : M E M O < b r > A : E N U M < b r > N : A U T O I N C R E M E N T < b r > L : ( A D L - ) L I N K < b r > P : B L O B < b r > R : ( A D L - ) R E L A T I O N < b r > Z : T I M E < b r >
W u r d e d u r c h G E T S T R U C T U R E e r s e t z t .
Syntax: RECNO(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
N u m m e r d e s a k t u e l l e n D a t e n s a t z e s e i n e r T a b e l l e
p h y s i k a l i s c h e N u m m e r d e s a k t u e l l e n D a t e n s a t z e s
D i e p h y s i k a l i s c h e S a t z n u m m e r w i r d b e i s p i e l s w e i s e d u r c h R E A D R E C ( d b , x ) a u f d e n W e r t x g e s e t z t . < b r > < b r > M a r k i e r u n g e n u n d I n d i z e s l i e f e r n l e t z t l i c h i m m e r p h y s i k a l i s c h e S a t z n u m m e r n .
Syntax: GROß(S : STRING) : STRING

S : S T R I N G
b e r s e t z t e i n e n S t r i n g i n G r o b u c h s t a b e n ( v e r a l t e t )
S i n G r o b u c h s t a b e n
W u r d e d u r c h U P P E R e r s e t z t
Syntax: Exp_1 GRÖßER Exp_2

E x p _ 1 , E x p _ 2 : A u s r c k e ( S T R I N G o d e r R E A L ) v o m g l e i c h e n T y p
V e r g l e i c h s - O p e r a t o r > ( v e r a l t e t ) < b r >
T R U E , w e n n E x p _ 1 > E x p _ 2 < b r > F A L S E , w e n n E x p _ 1 < = E x p _ 2
W i r d d u c h " > " e r s e t z t .
Syntax: HALT

< k e i n e >
P r o g r a m m b e n d e n
< k e i n e r >
H A L T h l t d i e A u s f h r u n g d e s P r o g r a m m s a n . D i e t d b e n g i n e b e r g i b t d i e K o n t r o l l e w i e d e r a n d a s a u f r u f e n d e P r o g r a m m .
Syntax: Exp_1 HAS Exp_2

E x p _ 1 , E x p _ 2 : S T R I N G
a u f T e i l s t r i n g p r f e n
T R U E , w e n n E x p _ 2 T e i l s t r i n g v o n E x p _ 1 < b r > F A L S E , a n d e r n f a l l s
A c h t u n g : h i e r w i r d G r o - / K l e i n s c h r e i b u n g u n t e r s c h i e d e n . < b r > < b r > " V e r g l e i c h " H A S " g l e i c h " - > T R U E < b r > " V E R G L E I C H " H A S " g l e i c h " - > F A L S E < b r > < b r > W e n n G r o - / K l e i n s c h r e i b u n g n i c h t b e a c h t e t w e r d e n s o l l , i s t " L I K E " v o r z u z i e h e n .
Syntax: Exp_1 HAT Exp_2

E x p _ 1 , E x p _ 2 : S T R I N G
a u f T e i l s t r i n g p r f e n ( v e r a l t e t )
T R U E , w e n n E x p _ 2 T e i l s t r i n g v o n E x p _ 1 < b r > F A L S E , a n d e r n f a l l s
W i r d d u r c h H A S e r s e t z t < b r > < b r > A c h t u n g : h i e r w i r d G r o - / K l e i n s c h r e i b u n g u n t e r s c h i e d e n . < b r > < b r > " V e r g l e i c h " H A T " g l e i c h " - > T R U E < b r > " V E R G L E I C H " H A T " g l e i c h " - > F A L S E < b r > < b r > W e n n G r o - / K l e i n s c h r e i b u n g n i c h t b e a c h t e t w e r d e n s o l l , i s t " L I K E " v o r z u z i e h e n .
Syntax: DELMARKEDRECORDS(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
L s c h t a l l e D a t e n s t z e a u s d e r M a r k i e r u n g s l i s t e
A n z a h l d e r e r f o l g r e i c h g e l s c h t e n D a t e n s t z e
T r i t t w h r e n d d e s L s c h e n s e i n F e h l e r a u f , s o w i r d e i n L a u f z e i t f e h l e r a u s g e l s t u n d d a s P r o g r a m m a b g e b r o c h e n . < b r > < b r > D e r L a u f z e i t f e h l e r k a n n m i t S e t P a r a ( ' e c 1 ' ) a b g e f a n g e n w e r d e n . < b r >
Syntax: HIGH(dim : INTEGER; VAR Array) : INTEGER

d i m : D i m e n s i o n s n u n m m e r < b r > A r r a y : b e l i e b i g e A r r a y - V a r i a b l e
F e l d d i m e n s i o n e r m i t t e l n
G r t m g l i c h e r F e l d i n d e x f r d i e a n g e g e b e n e D i m e n s i o n .
D i e t d b e n g i n e e r l a u b t e s A r r a y s m i t m a x i m a l 1 0 D i m e n s i o n e n z u d e f i n i e r e n . < b r / > < b r > D e r n i e d r i g s t e F e l d i n d e x i s t i m m e r 0 , d e r h c h s t e k a n n m i t H I G H e r m i t t e l t w e r d e n . < b r / > < b r > F e l d e r w e r d e n i m m e r a l s R e f e r e n z p a r a m e t e r a n e i g e n e P r o z e d u r e n b e r g e b e n , u n d e b e n s o i m m e r a l s s o g . o f f e n e F e l d e r . < b r / >
Syntax: WRITE(t : INTEGER; s : STRING) : STRING

t : T e x t h a n d l e v o n R E W R I T E o d e r T A P P E N D < b r > s : S T R I N G
S c h r e i b t S t r i n g ( p l u s C R / L F ) i n T e x t d a t e i
s ( w i r d u n v e r n d e r t z u r c k g e l i e f e r t )
I s t t = 0 , s o w i r d i n S t d O u t g e s c h r i e b e n . < b r > < b r > N a c h d e m S t r i n g s w i r d e i n Z e i l e n e n d e i n d i e T e x t d a t e i g e s c h r i e b e n : < b r > < b r > L F ( L i n u x , F r e e B S D ) < b r > C R L F ( W i n 3 2 ) < b r > < b r > A c h t u n g : D i e t d b e n g i n e a r b e i t e t i n t e r n i m A S C I I - F o r m a t . W e n n e i n e D a t e i i m A N S I - F o r m a t g e s c h r i e b e n w e r d e n s o l l , m u s s d e r z u s c h r e i b e n d e S t r i n g e n t s p r e c h e n d t r a n s f o r m i e r t w e r d e n : < b r > < b r > W R I T E L N ( t , O E M T O A N S I ( s ) ) < b r > < b r > D i e b e s s e r e M g l i c h k e i t b e s t e h t d a r i n , d i e D a t e i g l e i c h i m A N S I - M o d u s z u f f n e n : < b r > < b r > t : = r e w r i t e ( T e x t d a t e i , 0 ) < b r > w r i t e l n ( t , s )
Syntax: Exp IN [Exp_1, Exp_2, ...]

E x p , E x p _ 1 , E x p _ 2 , . . . : A u s d r c k e v o m g l e i c h e n T y p e ( S T R I N G o d e r R E A L )
M e n g e n o p e r a t o r
N u m e r i s c h e A u s d r c k e : < b r > < b r > T R U E , w e n n E x p = E x p 1 O R E x p = E x p 2 . . . < b r > F A L S E , s o n s t < b r > < b r > S t r i n g s : < b r > < b r > T R U E , w e n n E x p L I K E E x p _ 1 O R E x p L I K E E x p _ 2 . . . < b r > F A L S E , s o n s t
E A S Y k e n n t d e r z e i t n u r k o n s t a n t e M e n g e n , B e r e i c h e w i e [ 1 . . 1 0 ] s i n d n i c h t e r l a u b t .
Syntax: INARRAY(n : INTEGER; VAR v : INTEGER[]) : 0|1

n : b e l i e g i g e I N T E G E R - Z a h l < > 0 < b r > v : I N T E G E R - F e l d
p r f t , o b Z a h l i n Z a h l e n f e l d
1 : n i s t i n v < b r > 0 : n i s t n i c h t i n v
S t o p p t d i e S u c h e b e i F e l d i n h a l t 0 . < b r / > < b r > K a n n e i n g e s e t z t w e r d e n , w e n n m i t P U T M A R K S d i e M a r k i e r u n g l i s t e i n e i n e m I N T E G E R - F e l d g e s p e i c h e r t w i r d . & n b s p ; & n b s p ; W e s e n t l i c h i s t f r e i l i c h e i n e A b f r a g e b e r e i n T B I T S - F e l d : & n b s p ; & n b s p ; V A R t e m p : T B I T S [ ] ; < b r > . . . < b r > I n i t A r r a y ( t e m p [ f i l e s i z e ( d b ) ] ) ; < b r > G e t M a r k s ( d b , t e m p ) ; < b r > I F t e m p [ x ] T H E N . . .
Syntax: INCRFIELD(db : INTEGER; field : INTEGER|STRING [; offset : REAL]) : REAL

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r < b r > o f f s e t : ( V o r g a b e 1 ) W e r t , d e r z u m a k t u e l l e n F e l d w e r t a d d i e r t w i r d
I n c r e m e n t i e r t d e n W e r t e i n e s D a t e n f e l d e s
F e l d w e r t n a c h A u s f h r u n g d e r F u n k t i o n
D i e s e F u n k t i o n a r b e i t e t m i t d e n F e l d w e r t e n d e s S a t z p u f f e r s . D e r O f f s e t d a r f a u c h n e g a t i v s e i n . < b r > < b r > D i e F u n k t i o n i s t a u s P e r f o r m a c e g r n d e n d e r K o n s t r u k t i o n < b r > < b r > S E T R F I E L D ( d b , f i e l d , G E T R F I E L D ( d b , f i e l d ) + o f f s e t ) < b r > < b r > v o r z u z i e h e n .
Syntax: INDDEF(db : INTEGER; index : INTEGER|STRING [; mode : INTEGER]) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > i n d e x : I n d e x n u m m e r o d e r I n d e x n a m e ( a l s S T R I N G ) < b r > m o d e : 0 | 1
I n d e x b e s c h r e i b u n g e r m i t t e l n
I n d e x b e s c h r e i b u n g d e s a n g e g e b e n e n I n d e x < b r > < b r > m o d e 0 ( V o r g a b e ) : M i t L n g e n a n g a b e < b r > m o d e 1 : O h n e L n g e n a n g a b e
B e i s p i e l : < b r > < b r > i : = G e n I n d e x ( d b , ' N a m e , V o r n a m e : 2 0 ' , ' a d r e s s e n . i n d ' ) < b r > < b r > I n d D e f ( d b , i ) < b r > < b r > - > " N a m e : 4 0 , V o r n a m e : 2 0 " < b r > < b r > I n d D e f ( d b , i , 1 ) < b r > < b r > - > " N a m e , V o r n a m e "
Syntax: INDNAME(db : INTEGER; n : INTEGER) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > n : I n d e x n u m m e r
L i e f e r t d e n N a m e n e i n e s I n d e x
N a m e d e s I n d e x m i t d e r N u m m e r n
Syntax: INDNO(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
N u m m e r d e s a k t i v e n I n d e x e r m i t t e l n ( v e r a l t e t )
N u m m e r d e s a k t u e l l e n I n d e x
W i r d d u r c h A C C E S S e r s e t z t
Syntax: WRITE(t : INTEGER; s : STRING) : STRING

t : T e x t h a n d l e v o n R E W R I T E o d e r T A P P E N D < b r > s : S T R I N G
S c h r e i b t S t r i n g i n T e x t d a t e i
s ( w i r d u n v e r n d e r t z u r c k g e l i e f e r t )
I s t t = 0 , s o w i r d i n S t d O u t g e s c h r i e b e n . < b r > < b r > A c h t u n g : D i e t d b e n g i n e a r b e i t e t i n t e r n i m A S C I I - F o r m a t . W e n n e i n e D a t e i i m A N S I - F o r m a t g e s c h r i e b e n w e r d e n s o l l , m u s s d e r z u s c h r e i b e n d e S t r i n g e n t s p r e c h e n d t r a n s f o r m i e r t w e r d e n : < b r > < b r > W R I T E ( t , O E M T O A N S I ( s ) ) < b r > < b r > S e i t V e r s i o n 6 . 2 . 7 g i b t e s a b e r a u c h d i e M g l i c h k e i t , d i e T e x t d a t e i g l e i c h i m A N S I - M o d u s z u f f n e n : < b r > < b r > t : = r e w r i t e ( f n , 0 ) < b r > w r i t e l n ( t , s )
Syntax: INITARRAY(newdim) : INTEGER

n e w d i m h a t d i e F o r m : < b r > < b r > a r r a y _ v a r [ d _ 1 , d _ 2 , . . . ]
d y n a m i s c h e F e l d d i m e n s i o n i e r u n g
< k e i n e r >
M i t d i e s e r F u n k t i o n k n n e n z u r L a u f z e i t F e l d e r r e - d i m e n s i o n i e r t w e r d e n . < b r / > < b r > D a m i t s i n d d y n a m i s c h d i m e n s i o n i e r t e F e l d e r i n E A S Y < b r > m g l i c h . < b r / >
Syntax: LASTREC(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
N u m m e r d e s l e t z t e n D a t e n s a t z e s b z g l a k t u e l l e m Z u g r i f f
p h y s i k a l i s c h e S a t z n u m m e r d e s l e t z t e n D a t e n s a t z e s
J e n a c h d e m , w i e d e r Z u g r i f f m i t A C C E S S f r d i e T a b e l l e g e s e t z t w u r d e , l i e f e r t F I R S T R E C u n t e r s c h i e d l i c h e E r g e b n i s s e : < b r > < b r > M a r k i e r u n g ( - 2 ) : l e t z t e r D a t e n s a t z i n M a r k i e r u n g l i s t e < b r > N u m m e r ( - 1 ) : f i l e s i z e ( d b ) < b r > I n d e x ( 0 . . 1 5 ) : D a t e n s a t z m i t d e r g r t e n I n d e x i n f o r m a t i o n < b r > < b r > B e i s p i e l : V o l l s t n d i g e s a b s t e i g e n d e s D u r c h l a u f e n e i n e s T a b e l l e b e r e i n e n I n d e x < b r > < p r e > < b r > d b : = O p e n D B ( . . . ) ; < b r > a c c e s s ( d b , 1 ) ; / / Z u g r i f f a u f I n d e x s e t z e n < b r > x : = l a s t r e c ( d b ) ; < b r > W H I L E x D O < b r > r e a d r e c ( d b , x ) ; < b r > . . . h i e r s t e h t d e r S a t z z u r V e r f g u n g < b r > x : = p r e v r e c ( d b ) < b r > E N D < b r > < / p r e > < b r > < b r > < b r > < b r >
Syntax: Exp WIE Pattern

E x p : S t r i n g < b r > P a t t e r n : S t r i n g m i t " ? " u n d " * " a l s J o k e r n
S t r i n g v e r g l e i c h m i t W i l d c a r d s ( v e r a l t e t )
T R U E , w e n n E x p a u f d a s S u c h m u s t e r P a t t e r n p a s s t < b r > F A L S E , a n d e r n f a l l s
I m S u c h m u s t e r s t e h t " ? " f r g e n a u e i n b e l i e b i g e s Z e i c h e n , " * " f r e i n e b e l i e g e A n z a h l ( a u c h 0 ) . < b r > < b r > " M l l e r " w i e " * e r " - > T R U E < b r > " M l l e r " w i e " M ? l l * " - > T R U E < b r > " M l l e r " w i e " M ? l l e r ? " - > F A L S E
Syntax: DBRIGHTS(db : INTEGER ) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
R e c h t e a n g e f f n e t e r T a b e l l e
R e c h t e , d i e m i t O p e n D B o d e r R e O p e n D B g e s e t z t w u r d e n
M i t D B R i g h t s ( ) k n n e n d i e a k t u e l l e n R e c h t e a n d e r T a b e l l e d b b e r p r f t w e r d e n . < b r / > < b r > < b r / > < b r > H i n w e i s : D i e s e F u n k t i o n l s t F I L E M O D E ( ) a b .
Syntax: INT(x : REAL) : REAL

x : R E A L
G a n z z a h l i g e r A n t e i l e i n e r Z a h l
g a n z z a h l i g e r A n t e i l v o n x
I N T ( 1 5 . 5 ) - > 1 5 < b r > I N T ( - 1 5 . 5 ) - > - 1 5 < b r > < b r > E s g i l t : x = I N T ( x ) + F R A C ( x )
Syntax: ISFILE(path : STRING) : INTEGER

p a t h : P f a d z u D a t e i / V e r z e i c h n i s
p r f t E x i s t e n z e i n e r D a t e i o d e r e i n e s V e r z e i c h n i s s e s
0 : D a t e i e x i s t i e r t n i c h t < b r > 1 : D a t e i e x i s i e r t
D e r F u n k t i o n s w e r t w i r d d u r c h e i n e V e r z e i c h n i s a n f r a g e e r m i t t e l t . A u s d i e s e m G r u n d s a g t e s n i c h t d a r b e r a u s , o b d i e D a t e i g e l e s e n o d e r g e s c h r i e b e n w e r d e n d a r f .
Syntax: ISMARK(db, RecNo : INTEGER) : 0|1

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > R e c N o : p h y s i k a l i s c h e S a t z n u m m e r
D a t e n s a t z i n M a r k i e r u n g s l i s t e p r f e n
1 : W e n n R e c N o i n M a r k i e r u n g s l i s t e v o n d b < b r > 0 : a n d e r n f a l l s
I S M A R K p r f t j e d e s m a l d i e M a r k i e r u n g s l i s t e v o n d b . W e n n s e h r v i e l e D a t e n s t z e g e p r f t w e r d e n m s s e n , e m p f i e l t e s s i c h , d i e M a r k i e r u n g s l i s t e a u f e i n T B I T S - A r r a y a b z u b i l d e n u n d d o r t d i e P r f u n g v o r z u n e h m e n , d a d i e s e V o r g e h e n s w e i s e w e s e n t l i c h s c h n e l l e r i s t : < b r > < p r e > < b r > V A R m a r k s : T B I T S [ ] < b r > . . . < b r > I n i t A r r a y ( m a r k s [ f i l e s i z e ( d b ) ] ) ; < b r > G e t M a r k s ( d b , m a r k s ) < b r > I F m a r k s [ R e c N o ] T H E N . . . < / p r e >
Syntax: Exp_1 IST Exp_2

E x p _ 1 , E x p _ 2 : A u s d r c k e v o m g l e i c h e n T y p e ( S T R I N G o d e r R E A L )
G l e i c h h e i t ( v e r a l t e t )
T R U E , w e n n e x a k t e b e r e i n s t i m m u n g < b r > F A L S E , s o n s t
W i r d d u r c h " = " e r s e t z t . < b r > < b r > B e a c h t e n S i e b i t t e d a s s d i e P r f u n g a u f G l e i c h h e i t v o n K o m m a z a h l e n w e g e n d e r n o t w e n d i g e n R u n d u n g e n i n v i e l e n F l l e n f e h l s c h l a g e n .
Syntax: SETRFIELD(db : INTEGER; field : INTEGER|STRING; cont : REAL) : REAL

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o r d e r F e l d b e z e i c h n e r < b r > c o n t : R E A L
b e r t r a g u n g v o n n u m e r i s c h e n I n f o r m a t i o n e n i n d e n S a t z p u f f e r
c o n t
D e r I n h a l t v o n c o n t w i r d i n d e s a n g e g e b e n e F e l d d e s S a t z p u f f e r s b e r t r a g e n . D a b e i f i n d e t e i n e T y p k o n v e r t i e r u n g i n d e n E r g e b n i s t y p ( F e l d t y p ) s t a t t . < b r > < b r > S E T R F I E L D k a n n n i c h t v e r w e n d e t w e r d e n f r < b r > < b r > M E M O S ( s t a t t d e s s e n R E A D M E M O ) < b r > B L O B S ( s t a t t d e s s e n L I N K B L O B o d e r E M B E D B L O B )
Syntax: WEEK(Date : INTEGER) : INTEGER

D a t e : D a t u m d e r F o r m d d . m m . y y y y
K a l e n d e r w o c h e
K a l e n d e r w o c h e ( n a c h D I N )
B e r e c h n e t a u s e i n e m D a t u m d i e K a l e n d e r w o c h e
Syntax: KLEIN(s : STRING) : STRING

s : b e l i e b i g e r S t r i n g
b e r s e t z t e i n e n S t r i n g i n K l e i n b u c h s t a b e n ( v e r a l t e t )
s i n K l e i n b u c h s t a b e n
w i r d d u r c h L O W E R e r s e t z t
Syntax: Exp_1 KLEINER Exp_2

E x p _ 1 , E x p _ 2 : b e l i e b i g e A u s d r c k e v o m g l e i c h e n T y p ( S T R I N G o d e r R E A L )
s t e h t f r < ( v e r a l t e t )
T R U E , w e n n E x p _ 1 < E x p _ 2 < b r > F A L S E , w e n n E x p _ 1 > = E x p _ 2
Syntax: LABEL(db : INTEGER; field : INTEGER|STRING [;mode : INTEGER]) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r < b r > m o d e : F o r m a t b e i L i n k f e l d e r n : 0 = N u r F e l d n a m e , 1 = N a m e ( Z i e l t a b e l l e ) ( V o r g a b e )
F e l d b e z e i c h n e r e r m i t t e l n
F e l d b e z e i c h n e r
W i e a l l e n F u n k t i o n e n , d i e a u f e i n e T a b e l l e n - / F e l d k o m b i n a t i o n z u g r e i f e n , w i r d b e i i l l e g a l e n P a r a m e t e r n e i n L a u f z e i t f e h l e r a u s g e l s t . B e i s p i e l : I n e i n e m T e m p l a t e a l l e F e l d e r e r s e t z e n < p r e > n l o o p ( i , M a x L a b e l ( d b ) - 1 , s u b s t ( ' # ' + L A B E L ( d b , i + 1 ) + ' # ' , d b , i + 1 , 5 ) ) < / p r e >
Syntax: LABELNO(db : INTEGER; field : INTEGER|STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r
F e l d n u m m e r e r m i t t e l n
F e l d n u m m e r
A c h t u n g : I l l e g a l e d b / f i e l d - K o m b i n a t i o n e n f h r e n z u e i n e m L a u f z e i t f e h l e r .
Syntax: PRIMTABLE(tabelle : INTEGER) : INTEGER

t a b e l l e : H a n d l e v o n O P E N D B
S e t z t d i e P r i m r t a b e l l e
t a b e l l e , w e n n a l l e s o k a y , s o n s t 0
P R I M T A B L E i n i t i a l i s e r t d e n R e l a t i o n s b a u m e i n e r D a t e n b a n k
Syntax: LÄNGE(s : STRING) : INTEGER

s : b e l i e b i g e r S t r i n g
A n z a h l d e r Z e i c h e n i n e i n e m S t r i n g ( v e r a l t e t )
A n z a h l d e r Z e i c h e n i m S t r i n g
W i r d d u r c h L E N G T H e r s e t z t < b r > < b r > E s w e r d e n a l l e Z e i c h e n g e z h l t , a u c h d i e u n s i c h t b a r e n w i e ^ I ( = T A B ) < b r > < b r > L N G E ( ' H a n s ' ) - > 4 < b r > L N G E ( ' H a n s ' + ^ I ) - > 5
Syntax: FINDANDMARK(db : INTEGER; Selektion : STRING [;Multiexpression : STRING]) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > S e l e k t i o n : S e l e k t i o n i n S T R I N G - F o r m < b r > M u l t i e x p r e s s i o n : S t r i n g , d e r b e l i e b i g e A u s d r c k e e n t h a l t e n k a n n ( d u r c h " ; " g e t r e n n t )
m a r k i e r t e i n e A u s w a h l ( S e l e k t i o n )
< 0 F e h l e r < b r > > = 0 A n z a h l d e r m a r k i e r t e n D a t e n s t z e
I n d i e M a r k i e r u n g s l i s t e d e s T a b e l l e n h a n d l e s w e r d e n a l l e S a t z n u m m e r n a u f g e n o m m e n , d i e d i e S e l e k t i o n e r f l l e n . < b r > M u l t i e x p r e s s i o n i s t e i n S t r i n g d e r F o r m " A u s d r u c k ; A u s d r u c k ; . . . " . D i e e i n z e l n e n A u s d r c k e w e r d e n f r j e d e n g e f u n d e n e n D a t e n s a t z < b r > b e r e c h n e t . S o w o h l i n d e r S e l e k t i o n a l s a u c h i n M u l t i e x p r e s s i o n k a n n d i e F e l d n o t a t i o n [ T a b e l l e n n a m e . ] F e l d v e r w e n d e t w e r d e n . < b r > < b r > B e i s p i e l : < b r > < b r > V A R x : R E A L < b r > F I N D A N D M A R K ( d b , ' G e h a l t > 2 5 0 0 0 0 ' , ' x : = M E A N ( G e h a l t ) ' ) < b r > < b r > D a m i t w i r d d i e T a b e l l e ( m i t d e m H a n d l e d b ) n a c h a l l e n D a t e n s t z e n d u r c h s u c h t , b e i d e n e n d a s F e l d ' G e h a l t ' e i n e n h h e r e n W e r t a l s < b r > 2 5 0 0 0 0 a u f w e i s t . N a c h d e r A u s f h r u n g d e r F u n k t i o n s i n d d i e g e s u c h t e n D a t e n s t z e i n d e r M a r k i e r u n g s l i s t e u n d x h a t a l s W e r t d e n < b r > D u r c h s c h n i t t s w e r t d e s F e l d e s ' G e h a l t ' d i e s e r D a t e n s t z e . < b r > < b r > D e r R c k g a b e w e r t d e r F u n k t i o n i s t n e g a t i v , w e n n e i n F e h l e r a u f t r a t ( i n d e r S e l e k t i o n o d e r i m M u l t i e x p r e s s i o n ) . A n d e r f a l l s w i r d d i e A n z a h l < b r > d e r g e f u n d e n e n D a t e n s t z e z u r c k g e l i e f e r t ( a l s o N M A R K S ( d b ) ) .
Syntax: LEFTSTR(s : STRING; n : BYTE) : STRING

s : b e l i e b i g e r S t r i n g < b r > n : 0 . . 2 5 5
l i n k e r T e i l s t r i n g
d i e e r s t e n n Z e i c h e n v o n s
w e n n n > l e n g t h ( s ) , w i r d s z u r c k g e l i e f e r t < b r > w e n n n = 0 , w i r d d e r L e e r s t r i n g z u r c k g e l i e f e r t
Syntax: LENGTH(s : STRING) : INTEGER

s : b e l i e b i g e r S t r i n g
A n z a h l d e r Z e i c h e n i n e i n e m S t r i n g
A n z a h l d e r Z e i c h e n i m S t r i n g
E s w e r d e n a l l e Z e i c h e n g e z h l t , a u c h d i e u n s i c h t b a r e n w i e ^ I ( = T A B ) < b r > < b r > L E N G T H ( ' H a n s ' ) - > 4 < b r > L E N G T H ( ' H a n s ' + ^ I ) - > 5
Syntax: Exp LIKE Pattern

E x p : S t r i n g < b r > P a t t e r n : S t r i n g m i t " ? " u n d " * " a l s J o k e r n
S t r i n g v e r g l e i c h m i t W i l d c a r d s
T R U E , w e n n E x p a u f d a s S u c h m u s t e r P a t t e r n p a s s t < b r > F A L S E , a n d e r n f a l l s
I m S u c h m u s t e r s t e h t " ? " f r g e n a u e i n b e l i e b i g e s Z e i c h e n , " * " f r e i n e b e l i e g e A n z a h l ( a u c h 0 ) . < b r > < b r > " M l l e r " L I K E " * e r " - > T R U E < b r > " M l l e r " L I K E " M ? l l * " - > T R U E < b r > " M l l e r " L I K E " M ? l l e r ? " - > F A L S E
Syntax: SETPARA(para : STRING) : INTEGER

p a r a : L a u f z e i t s c h a l t e r a l s S T R I N G
S e t z t e i n e n L a u f z e i t s c h a l t e r
I m m e r 0
F o l g e n d e S c h a l t e r ( P a r a d i g m e n ) s i n d v e r f g b a r : < b r / > < b r > e c 0 | 1 F e h l e r b e h a n d l u n g ( b e i e i n e m F e h l e r e r f o l g t a u c h k e i n e i n t r a g i n s e r r o r . l o g ) < b r / > < b r > n b 0 | 1 A b b r u c h s b e h a n d l u n g < b r / > < b r > n v 0 | 1 S t r i n g - E v a l u i e r u n g ( V A L ) < b r / > < b r > < b r / > < b r > H i n e i s : e c 1 = F e h l e r b e h a n d l u n g d u r c h P R G / e c 0 = B e i F e h l e r A b b r u c h d e s P R G
Syntax: LINKBLOB(Tabellenfeld; Pfad : STRING; Typ : INTEGER) : INTEGER

T a b e l l e n f e l d a l s < b r > T a b e l l e : I N T E G E R ; F e l d n u m m e r : I N T E G E R < b r > T a b e l l e : I N T E G E R ; L a b e l : S T R I N G < b r > < b r > P f a d : N a m e d e r e x t e r n e n D a t e i < b r > T y p : T y p k e n n z e i c h e n d e r D a t e i < b r > F o l g e n d e T y p e n s i n d r e s e r v i e r t : < b r > 1 : B M P ( W i n d o w s B i t m a p ) < b r > 2 : P C X ( P C X - B i t m a p ) < b r > 3 : W A V ( S o u n d d a t e i ) < b r > 4 : W M F ( W i n d o w s M e t a f i l e ) < b r > 5 : G I F ( I m a g e ) < b r > 6 : J P G ( I m a g e )
v e r k n p f t e i n e e x t e r n e D a t e i m i t e i n e m B L O B - F e l d
- 1 : O p e r a t i o n e r f o l g l o s ( i l l e g a l e r P f a d e t c . ) < b r > a n s o n s t e n : G r e d e s B l o b s i n B y t e s < b r >
H i e r w e r d e n n u r d e r P f a d d e r e i n g e l e s e n e n D a t e i u n d d e r T y p g e s p e i c h e r t . < b r > < b r > B e i v e r w e n d u n g v o n e i g e n e n T y p e n s e h e n S i e b i t t e a u f h t t p : / / w w w . t d b - e n g i n e . d e n a c h , w e l c h e T y p e n b e r e i t s r e s e r v i e r t s i n d .
Syntax: SETMARK(db : INTEGER; x : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > x : p h y s i k a l i s c h e S a t z n u m m e r
S e t z t e i n e M a r k e i n d e r M a r k i e r u n g s l i s t e
x
W e n n x a u s s e r h a l b d e s g l t i g e n B e r e i c h e s ( 1 . . F i l e S i z e ( d b ) ) l i e g t , w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . < b r > < b r > W e n n x b e r e i t s i n d e r M a r k i e r u n g s l i s t e e n t h a l t e n i s t , f i n d e t k e i n e w e i t e r e A k t i o n s t a t t . A n d e r n f a l l s w i r d x a m E n d e d e r M a r k i e r u n g s l i s t e a n g e h n g t .
Syntax: LINKS(s : STRING; n : BYTE) : STRING

s : b e l i e b i g e r S t r i n g < b r > n : 0 . . 2 5 5
l i n k e r T e i l s t r i n g ( v e r a l t e t )
d i e e r s t e n n Z e i c h e n v o n s
W i r d d u r c h L E F T S T R e r s e t z t . < b r > < b r > w e n n n > l e n g t h ( s ) , w i r d s z u r c k g e l i e f e r t < b r > w e n n n = 0 , w i r d d e r L e e r s t r i n g z u r c k g e l i e f e r t
Syntax: VAL(S : STRING) : REAL|STRING

S : S t r i n g - F o r m e i n e s g l t i g e n E A S Y - A u s d r u c k s .
W e r t e t e i n e Z e i c h e n k e t t e a u s
B e r e c h n e t e r W e r t v o n S .
S w i r d z u n c h s t d u r c h d e n C o m p i l e r b e r s e t z t . T r e t e n b e i d e r b e r s e t z u n g F e h l e r a u f , s o w i r d e i n L a u f z e i t f e h l e r a u s g e l s t , d e r m i t d e n b l i c h e n M e t h o d e n a b g e f a n g e n w e r d e n k a n n . < b r > < b r > W a r d i e b e r s e t z u n g e r f o l g r e i c h , s o w i r d j e n a c h S t e l l u n g d e s N V - L a u f z e i t s c h a l t e r s u n t e r s c h i e d l i c h v o r g e g a n g e n : < b r > < b r > N V 1 ( n u r n u m e r i s c h e W e r t e = V o r g a b e ) H i e r w i r d a u c h e i n L a u f z e i t f e h l e r a u s g e l s t ( I l l e g a l e Z a h l e n k o n s t a n t e ) , w e n n e s s i c h n i c h t u m e i n e n u m e r i s c h e K o n s t a n t e ( Z a h l , D a t u m , Z e i t ) h a n d e l t . E s w e r d e n k e i n e B e r e c h n u n g e n d u r c h g e f h r t . < b r > < b r > N V 0 : D e r b e r s e t e t z t e A u s d r u c k w i r d b e r e c h n e t . D a b e i k a n n s o w o h l a u f S t a n d a r d f u n k t i o n e n a l s a u c h a u f a l l e F u n k t i o n e n d e s M o d u l s z u r c h g e g r i f f e n w e r d e n . D i e s e r M o d u s i s t v o r a l l e m d a n n g e f h r l i c h , w e n n e s s i c h b e i S u m ( u n g e p r f t e ) E i n g a b e n d e s A n w e n d e r s h a n d e l t ! < b r > < b r >
Syntax: SETRECORD(db_from, db_to : INTEGER[; mode: INTEGER]) : INTEGER

d b _ f r o m , d b _ t o : T a b e l l e n h a n d l e v o n O p e n D B < b r > m o d e : 0 - > A l l e F e l d e r b e r s c h r e i b e n ( V o r g a b e ) < b r > 1 - > E s w e r d e n n u r F e l d e r b e r s c h r i e b e n , d i e i n d b _ t o < b r > l e e r s i n d . L e e r b e d e u t e t < b r > < b r > ' ' b e i S t r i n g s < b r > 0 b e i a l l e n Z a h l e n , D a t u m , e t c < b r > N E I N b e i B O O L E A N < b r > M e m o s u n d B l o b h a b e n k e i n e V e r w e i s .
K o p i e r t e i n e n D a t e n s a t z a u s e i n e r a n d e r e n T a b e l l e
I m m e r 0
< p > W e n n e i n u n g l t i g e r T a b e l l e n h a n d l e v e r w e n d e t w i r d , w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . < / p > < b r > < p > D i e b e r n a h m e d e r e i n z e l n e n F e l d e r e r f o l g t b e r d i e F e l d b e z e i c h n e r , b e i m e h r e r e n g l e i c h e n F e l d b e z e i c h n e r n i n e i n e r T a b e l l e w i r d a u c h d i e R i c h t u n g b e r c k s i c h t i g t . D . h . : D a s e r s t e F e l d m i t d e m L a b e l x d e r T a b e l l e n d b _ f r o m w i r d a u c h d e m e r s t e n F e l d m i t d e m L a b e l x d e r T a b e l l e d b _ t o z u g e o r d n e t . < / p > < b r > < p > T y p e n w e r d e n w e i t g e h e n d u m g e w a n d e l t : < / p > < b r > < p > M E M O - > S T R I N G ( n i c h t m g l i c h ) < b r / > < b r > S T R I N G - > M E M O ( m g l i c h ) < / p > < b r > < p > D u r c h S E T R E C O R D w e r d e n a u c h I n h a l t e v o n A U T O - I N C R E M E N T - F e l d e r n b e r n o m m e n . O b d a n n e i n e n e u e N u m m e r g e n e r i e r t w i r d , h n g t v o m M o d u s b e i W R I T E R E C a b . < / p > < b r > < p > B e s o n d e r h e i t : < / p > < b r > < p > S E T R E C O R D l e g t i n d e r Z i e l t a b e l l e M E M O - u n d B L O B - E i n t r g e a n . W e n n d e r D a t e n s a t z i n d e r Z i e l t a b e l l e a n s c h l i e e n d n i c h t g e s c h r i e b e n w i r d , s i n d d i e s e I n f o r m a t i o n e n z w a r i n d e n M M O u n d / o d e r B L B - D a t e i e n e n t h a l t e n , a b e r n i c h t m e h r a n s p r e c h b a r . < / p > < b r > < p > E s i s t a u c h m g l i c h , d a s s S E T R E C O R D m i t e i n e r T a b e l l e a u f s i c h s e l b s t a n g e w a n d t w i r d . I n d i e s e m F a l l w i r d e i n e K o p i e e i n e s D a t e n s a t z e s m i t M E M O - u n d B L O B - I n f o r m a t i o n e n e r z e u g t , d i e d a n n m i t W r i t e R e c ( d b , f i l e s i z e ( d b ) + 1 ) g e s c h r i e b e n w e r d e n k a n n . D i e s e V o r g e h e n s w e i s e i s t i m m e r d a n n a n g e s a g t , w e n n e i n D a t e n s a t z m i t M E M O - u n d / o d e r B L O B - F e l d e r n k o p i e r t w e r d e n s o l l . A n d e r n f a l l s w e r d e n d i e Z e i g e r i n d i e M E M O - u n d / o d e r B L O B - D a t e i k o p i e r t , w a s z u d e r e n Z e r s t r u n g f h r e n k a n n ! < / p >
Syntax: LOG(x : REAL) : REAL

x : R E A L > 0
n a t r l i c h e L o g a r i t m u s
n a t r l i c h e L o g a r i t h m u s ( z u r B a s i s e )
W e n n x < = 0 i s t , s o w i r d e i n L a u f z e i t f e h l e r a u s g e l s t .
Syntax: LOWER(s : STRING) : STRING

s : b e l i e b i g e r S t r i n g
b e r s e t z t e i n e n S t r i n g i n K l e i n b u c h s t a b e n
s i n K l e i n b u c h s t a b e n
Syntax: LTRIM(s : STRING) : STRING

s : b e l i e b i g e r S t r i n g
e n t f e r n t l i n k e L e e r z e i c h e n
s o h n e f h r e n d e L e e r z e i c h e n
B e i s p i e l < b r > < b r > < p r e > < b r > L T R I M ( ' a b c ' ) = ' a b c ' < b r > L T R I M ( R T R I M ( ' a b c ' ) ) = ' a b c ' / / e n t f e r n t l i n k e u n d r e c h t e L e e r z e i c h e n < b r > < / p r e >
Syntax: DirInfo(Path : STRING) : STRING

P a t h : P f a d z u r D a t e i
V e r z e i c h n i s e i n t r a g f r e i n e D a t e i
S t r i n g w i e b e i F I R S T D I R , N E X T D I R
D i e F u n k t i o n l i e f e r t d a s s e l b e E r g e b n i s w i e F i r s t D i r ( P a t h , ' ' ) , k a n n a b e r a u c h i n n e r h a l b e i n e r F i r s t R e c - N e x t R e c - S e q u e n z e i n g e s e t z t w e r d e n .
Syntax: MAKEDB(db_p, db_pw : STRING; c : INTEGER; def : STRING[; db_i : INTEGER]) : INTEGER

d b _ p : P f a d z u r H a u p t d a t e i ( . d a t ) d e r T a b e l l e < b r > d b _ p w : P a s s w o r t d e r T a b e l l e < b r > d b _ c : V e r s c h l s s e l u n g s c o d e d e r T a b e l l e < b r > d e f : P f a d z u e i n e r S t r u k t u r d e f i n i t i o n < b r > d b _ i : P f a d z u e i n e r I m p o r t - T a b e l l e
A n s l a g e e i n e r n e u e n T a b e l l e
0 : T a b e l l e w u r d e e r f o l g r e i c h e r z e u g t < b r > s o n s t : F e h l e r c o d e
< p > D i e S t r u k t u r d e f i n i t i o n i s t d e r N a m e e i n e r T e x t d a t e i , d i e f o l g e n d e r m a e n a u f g e b a u t i s t : < / p > < b r > < p > [ S T R U C T U R E ] < b r / > < b r > f i e l d _ 1 = f i e l d s p e c < b r / > < b r > f i e l d _ 2 = f i e l d s p e c < b r / > < b r > . . . < b r / > < b r > [ I N D E X ] < b r / > < b r > i d = i n d e x d e f < b r / > < b r > i n d e x _ 1 = i n d - n a m e : i n d - d e s c < b r / > < b r > i n d e x _ 2 = i n d - n a m e : i n d - d e s c < b r / > < b r > . . . < / p > < b r > < p > D e r A b s c h n i t t u n t e r [ I N D E X ] i s t n u r e r f o r d e r l i c h , w e n n d i e T a b e l l e a u t o m a t i s c h n u m e r i e r t w i r d . < / p > < b r > < p > E i n e F e l d s p e z i f i k a t i o n f i e l d s p e c h a t f o l g e n d e S t r u k t u r : < / p > < b r > < p > F e l d b e z e i c h n e r , T y p d e f i n i t i o n [ , ( I m p o r t f e l d ) ] < / p > < b r > < p > A l s F e l d b e z e i c h n e r s i n d a l l e B e z e i c h n e r z u g e l a s s e n , d i e m i t e i n e m B u c h s t a b e n o d e r U n t e r s t r i c h b e g i n n e n u n d n u r a u s B u c h s t a b e n , Z i f f e r n u n d U n t e r s t r i c h b e s t e h e n . D i e m a x i m a l e L n g e b e t r g t 3 5 Z e i c h e n . < / p > < b r > < p > F o l g e n d e T y p d e f i n i t i o n e n s i n d z u g e l a s s e n : < / p > < b r > < p > Z e i c h e n k e t t e n : < / p > < b r > < p > S T R I N G , L n g e ( L n g e v o n 1 b i s 2 5 5 ) < b r / > < b r > - > S t r i n g f e l d m i t d e r a n g e g e b e n M a x i m a l l n g e < / p > < b r > < p > Z a h l e n : < / p > < b r > < p > N U M B E R , N u m C o d e [ , N a c h k o m m a s t e l l e n ] [ , U ] < b r / > < b r > - > n u m e r i s c h e s F e l d j e n a c h N u m C o d e < / p > < b r > < p > N u m C o d e T y p & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; W e r t b e r e i c h < b r / > & n b s p ; 1 & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; B Y T E & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; G a n z e Z a h l e n V O N 0 B I S 2 5 5 < b r / > & n b s p ; 2 & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; 1 6 - B i t - I N T E G E R & n b s p ; G a n z e Z a h l e n V O N - 3 2 7 6 8 B I S + 3 2 7 6 7 < b r / > & n b s p ; 4 * & n b s p ; & n b s p ; & n b s p ; & n b s p ; 3 2 - B i t I N T E G E R & n b s p ; G a n z e Z a h l e n V O N - 2 1 4 7 4 8 3 6 4 8 B I S + 2 1 4 7 4 8 3 6 4 7 < b r / > & n b s p ; 6 * * & n b s p ; & n b s p ; & n b s p ; 6 - B Y T E R E A L & n b s p ; & n b s p ; & n b s p ; & n b s p ; F l i e k o m m a z a h l e n ( a l t e s B o r l a n d - F o r m a t ) < b r / > & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; V O N - 2 . 9 x 1 0 ^ 3 9 B I S + 1 . 7 x 1 0 ^ 3 8 b e i 1 1 - 1 2 s i g n . S t e l l e n < b r / > & n b s p ; 8 * * * & n b s p ; & n b s p ; 8 - B Y T E - R E A L & n b s p ; & n b s p ; & n b s p ; & n b s p ; F l i e k o m m a z a h l e n ( A N S I d o u b l e ) < b r / > & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; V O N - 5 . 0 x 1 0 ^ 3 2 4 B I S + 1 . 7 x 1 0 ^ 3 0 8 b e i 1 5 - 1 6 s i g n . S t e l l e n < / p > < b r > < p > * ) n u r t d b e n g i n e , n i c h t k o m p a t i b e l z u r V D P o d e r T u r b o D a t e n b a n k < b r / > < b r > * * ) k o m p a t i b e l z u a l l e n V D P - u n d T u r b o D a t e n b a n k - V e r s i o n e n < b r / > < b r > * * * ) n u r t d b e n g i n e u n d V D P ( a b 2 . 5 ) < / p > < b r > < p > N a c h k o m m s t e l l e n w e r d e n n u r b e i d e n R E A L - T y p e n b e r c k s i c h t i g . S i e s i n d w e s e n t l i c h f r d e n D a t e n t r a n s f e r m i t d e n F u n k t i o n e n G e t F i e l d u n d S e t F i e l d s o w i e b e i m E x p o r t i n a n d e r e D a t e n b a n k f o r m a t e . I n t e r n w e r d e n a l l e R E A L - T y p e n i m m e r m i r d e r o p t i m a l e n G e n a u i g k e i t g e s p e i c h e r t . < / p > < b r > < p > W i r d d e r P a r a m e t e r U a n g e g e b e n , s o w i r d i n S e l e k t i o n z w i s c h e n d e m W e r t 0 u n d " u n d e f i n i e r t " u n t e r s c h i e d e n . < / p > < b r > < p > B O O L E A N < b r / > < b r > - > E i n B i t ( t r u e / f a l s e ) < / p > < b r > < p > M e m o s u n d B l o b s : < / p > < b r > < p > M E M O < b r / > < b r > - > e r g i b t e i n M e m o f e l d < / p > < b r > < p > D e r I n h a l t e i n e s M e m o f e l d e s i s t e i n V e r w e i s a u f e i n e z u s t z l i c h e M e m o d a t e i . I n M e m o d a t e i e n w e r d e n a u s c h l i e l i c h u n f o r m a t i e r t e T e x t e g e s p e i c h e r t . < / p > < b r > < p > B L O B [ , b l o c k s i z e ] < b r / > < b r > - > e r g i b t e i n B l o b f e l d < / p > < b r > < p > D e r I n h a l t e i n e s B l o b f e l d e s i s t e i n V e r w e i s a u f e i n e z u s t z l i c h e B l o b d a t e i I n B l o b d a t e i e n w e r d e n b e l i e b i g e D a t e n g e s p e i c h e r t . M i t b l o c k s i z e k a n n d i e G r e d e r C l u s t e r i n d e r B l o b d a t e i f e s t g e l e g t w e r d e n ( M i n i m u m = 6 4 , M a x i m u m = 8 1 9 2 , D e f a u l t = 4 0 9 6 ) . P r o E i n t r a g i n d i e B l o b d a t e i w i r d i m S c h n i t t e i n h a l b e r C l u s t e r v e r s c h w e n d e t , a b e r z u k l e i n e C l u s t e r v e r l n g e r n d i e Z u g r i f f s z e i t e n . < / p > < b r > < p > A U T O - I N C R E M E N T : < / p > < b r > < p > A U T O [ , S t a r t n u m m e r ] < b r / > < b r > - > A u t o n u m m e r n - F e l d ( A U T O I N C R E M E N T ) < / p > < b r > < p > D i e Z h l u n g b e g i n n t ( i n e i n e r n e u e n T a b e l l e ) m i t d e r S t a r t n u m m e r ( b z w 1 , f a l l s k e i n e a n g e g e b e n w u r d e ) < / p > < b r > < p > < b r / > < b r > D a t u m u n d Z e i t : < / p > < b r > < p > D A T E < b r / > < b r > - > D a t u m s f e l d ( d d . m m . y y y y ) < / p > < b r > < p > T I M E < b r / > < b r > - > Z e i t f e l d ( h h : m m ) < / p > < b r > < p > U T I M E < b r / > < b r > - > U n i x - T i m e s t a m p ( d d . m m . y y y y _ h h : m m : s s ) < / p > < b r > < p > A u f z h l u n g : < / p > < b r > < p > S E L E C T , W e r t 1 , W e r t 2 , W e r t 3 , . . . < b r / > < b r > - > A u s w a h l f e l d m i t d e m a n g e g e b e n e n W e r t b e r e i c h < / p > < b r > < p > V e r k n f u n g e n : < / p > < b r > < p > R E L < b r / > < b r > - > R e l a t i o n s f e l d z w i s c h e n d e n a n g e g e b e n e n T a b e l l e n < / p > < b r > < p > A c h t u n g : D i e t d b e n g i n e e r z e u g t n i c h t a u t o m a t s i c h d i e z u g e h r i g e R e l a t i o n s t a b e l l e . H i e r f r s t e h t d i e F u n k t i o n G e n R e l z u r V e r f g u n g . < / p > < b r > < p > L I N K , T a b e l l e < b r / > < b r > - > A D L - L i n k f e l d z u r a n g e g e b e n e n T a b e l l e < / p > < b r > < p > E s w i r d n i c h t g e p f t , o b d i e T a b e l l e e x i s t i e r t o d e r o b d i e a u t o m a t i s c h n u m e r i e r t w i r d . < / p > < b r > < p > I m p o r t f e l d e r f e s t l e g e n : < / p > < b r > < p > I s t i n G e n T a b l e e i n e Q u e l l e a n g e g e b e n , s o w i r d d a s s p e z i f i z i e r t e F e l d d u r c h d e n I n h a l t d e s a n g e g e b e n e n I m p o r t f e l d e s d e r Q u e l l e e r s e t z t . < b r / > < b r > I s t k e i n I m p o r t f e l d a n g e g e b e n , s o w i r d d e r s p e z i f i z i e r t e F e l d n a m e v e r w e n d e t . < / p > < b r > < p > W i r d a l s Q u e l l e d e r g l e i c h e D a t e i n a m e w i e u n t e r Z i e l a n g e g e b e n , s o w i r d d i e T a b e l l e e n t s p r e c h e n d r e s t r u k t u r i e r t . A l s A b k r z u n g f r d e n g l e i c h e n D a t e i n a m e n i s t d a s Z e i c h e n " @ " e r l a u b t . < / p > < b r > < p > H i n w e i s : D i e S t r u k t u r d e f i n i t i o n i s t e i g e n t l i c h e i n e M a s c h i n e n d a t e i , d i e v o n e i n e m H i l f s p r o g r a m m d u r c h I n t e r a k t i o n m i t d e m A n w e n d e r e r z e u g t w i r d . W e n n S i e e i n e S t r u k t u r d e f i n i t i o n v o n H a n d e r s t e l l e n , s o l l t e n S i e u n b e d i n g t f o l g e n d e s b e a c h t e n : < / p > < b r > < p > * D i e N u m e r i e r u n g d e r F e l d e r m u l c k e n l o s s e i n . < b r / > < b r > * K e i n e F e l d n u m m e r d a r f d o p p e l t v o r k o m m e n . < b r / > < b r > * F g e n S i e n e u e F e l d e r i m m e r a m E n d e a n , d a d i e R e i h e n f o l g e n i c h t w e s e n t l i c h i s t . < b r / > < b r > * W e n n S i e i m Z u g e e i n e r U m s t r u k t u r i e r u n g e i n e n F e l d b e z e i c h n e r n d e r n w o l l e n , s o v e r g e s s e n S i e n i c h t , d e n b i s h e r i g e n B e z e i c h n e r a l s I m p o r t f e l d a n z u g e b e n , d a a n d e r n f a l l s d e r F e l d i n h a l t v e r l o r e n i s t . < / p > < b r > < p > D i e U m s t r u k t u r i e r u n g e i n e r T a b e l l e i s t i m m e r e i n k r i t i s c h e r V o r g a n g , w e n n d i e T a b e l l e b e r e i t s I n f o r m a t i o n e n e n t h l t . S i e k n n e n z u r D a t e n s i c h e r h e i t b e i t r a g e n , i n d e m S i e a u f d i e d i r e k t e U m s t r u k t u r i e r u n g v e r z i c h t e n , u n d s t a t t d e s s e n d i e b i s h e r i g e T a b e l l e m i t R e n T a b l e u m b e n e n n e n u n d d i e u m b e n a n n t e T a b e l l e a l s Q u e l l e a n g e b e n . F a l l s i r g e n d e t w a s s c h i e f g e h t , k n n e n S i e i m m e r n o c h a u f d i e b i s h e r i g e T a b e l l e z u g r e i f e n . < / p >
Syntax: MAKEDIR(dir : STRING) : INTEGER

d i r : n e u e s V e r z e i c h n i s
l e g t e i n n e u e s V e r z e i c h n i s a n
0 : e r f o l g r e i c h a n g e l e g t < b r > s o n s t : F e h l e r c o d e d e s B e t r i e b s s y s t e m s
M A K E D I R e r z e u g t b e i d e r A u s f h r u n g k e i n e n L a u f z e i t f e h l e r . A u s d i e s e m i s t d a s F u n k t i o n s e r g e b n i s u n b e d i n g t z u p r f e n , d a m i t D a t e i n n i c h t u n g e w o l l t i n u n e r w n s c h t e n V e r z e i c h n i s s e n l a n d e n .
Syntax: MarkBits(D,I,Suchstring,ExtABC,Ops,MaskenZahl,BitFeld,R1,R2,...) : INTEGER

D : T a b e l l e n h a n d l e d e r A u s g a n g s t a b e l l e < b r > I : T a b e l l e n h a n d l e d e r S t i c h w o r t t a b e l l e < b r > A u s d u c k : S u c h s t r i n g < b r > E x t A B C : w i e b e i S c a n R e c s < b r > O p s : l o g i s c h e O p e r a t o r e n < b r > M a s k e n Z a h l : I n t e g e r z a h l < b r > B i t F e l d : V a r i a b l e v o m T y p T B i t s [ x x x ] < b r > R 1 , R 2 . . . : T a b e l l e n h a n d l e s d e r R e l a t i o n s t a b e l l e n
S u c h t i m V o l l t e x t i n d e x
> = 0 : A n z a h l d e r g e f u n d e n e n D a t e n s t z e < b r > < 0 : F e h l e r c o d e
D a s F u n k t i o n e r g e b n i s i s t d i e A n z a h l d e r g e f u n d e n e n D a t e n s t z e ( f a l l s p o s i t i v ) b z w e i n e r d e r F e h l e r c o d e s : < b r > < b r > - 6 4 u n g l t i g e S t i c h w o r t t a b e l l e < b r > - 7 7 u n g l t i g e R e l a t i o n s t a b e l l e < b r > - 5 6 i l l e g a l e K l a m m e r u n g i m S u c h s t r i n g < b r > - 4 5 u n g l t i g e s Z e i c h e n i m S u c h s t r i n g < b r > < b r > D i e l e t z t e n b e i d e n F e h l e r k n n e n m i t T D B _ E r r o r M s g u n d T D B _ E r r o r O f s n h e r b e s t i m m t w e r d e n . < b r > < b r > B e i m S u c h s t r i n g h a n d e l t e s s i c h u m e i n e Z e i c h e n k e t t e m i t f o l g e n d e m A u f b a u : < b r > < b r > S u c h s t r i n g : : = A u s d r u c k < b r > A u s d r u c k : : = T e r m { O d e r - O p e r a t o r T e r m } < b r > T e r m : : = F a k t o r { U n d - O p e r a t o r F a k t o r } < b r > F a k t o r : : = S u c h w o r t | " ( " A u s d r u c k " ) " < b r > < b r > E i n S u c h w o r t i s t e i n e Z e i c h e n k e t t e a u s B u c h s t a b e n , d e n Z e i c h e n a u s E x t A B C s o w i e d e n S o n d e r z e i c h e n " ? " u n d " * " . D a b e i s t e h t " ? " a l s P l a t z a l t e r < b r > f r g e n a u e i n b e l i e b i g e s Z e i c h e n , " * " f r b e l i e b i g v i e l e Z e i c h e n . < b r > < b r > F o l g e n d e O p e r a t o r e n s i n d v o r d e f i n i e r t ( w e n n i n O p s e i n L e e r s t r i n g b e r g e b e n w i r d ) : < b r > < b r > O d e r - O p e r a t o r + ( V e r e i n i g u n g s m e n g e , l o g i s c h e s O D E R ) < b r > U n d - O p e r a t o r e n , ( S c h n i t t m e n g e , l o g i s c h e s U N D ) < b r > - ( S c h n i t t m i t K o m p l e m e n t r m e n g e , l o g i s c h e s U N D N I C H T ) < b r > < b r > < b r > B e i s p i e l e : < b r > < b r > M e i e r f i n d e t a l l e D a t e n s t z e d i e d a s W o r t M e i e r i n b e l i e b i g e r G r o - o d e r K l e i n s c h r e i b u n g e n t h a l t e n . < b r > M e i * e r f i n d e t d i e D a t e n s t z e , d i e W r t e r e n t h a l t e n , d i e m i t M e i b e g i n n e n u n d m i t e r e n d e n . < b r > H a n s , M e i e r i m D a t e n s a t z m u s o w o h l d a s W o r t H a n s a l s a u c h M e i e r e n t h a l t e n s e i n . < b r > H a n s + M e i e r f i n d e t D a t e n s t z e i n d e n e n H a n s o d e r M e i e r o d e r b e i d e s v o r k o m m t . < b r > H a n s - M e i e r f i n d e t D a t e n s t z e , i n d e n e n z w a r H a n s v o r k o m m t , M e i e r a b e r n i c h t . < b r > < b r > O p s < b r > < b r > I m P a r a m e t e r O p s k n n e n d i e O p e r a t o r e n u m d e f i n i e r t w e r d e n . D a z u m u h i e r e i n e Z e i c h e n k e t t e m i t g e n a u d r e i Z e i c h e n b e r g e b e n w e r d e n . D a s < b r > e r s t e Z e i c h e n i s t d a n n d e r O p e r a t o r f r l o g i s c h e s U N D , d a s z w e i t e e n t s p r i c h t d e m l o g i s c h e n O D E R , d e a s d r i t t e s c h l i e l i c h e d e m l o g i s c h e n U N D < b r > N I C H T . < b r > < b r > M a s k e n z a h l < b r > < b r > D i e A n g a b e e i n e r M a s k e n z a h l i s t n u r d a n n s i n n v o l l , w e n n b e r e i t s b e i d e r V o l l t e x t i n d i z i e r u n g m i t e i n e m M a s k e n f e l d o d e r m i t M a s k e n k o n s t a n t e n < b r > g e a r b e i t e t w u r d e . D i e h i e r a n g e g e b e n e Z a h l u n d d i e i n d e r V e r k n p f u n g g e s p e i c h e r t e n Z a h l w e r d e n m i t e i n e m b i n r e n A N D v e r k n p f t . E s w e r d e n < b r > n u r s o l c h e D a t e n s t z e g e f u n d e n , b e i d e n e n d a s b i n r e A N D e i n e n W e r t u n g l e i c h 0 e r g i b t . < b r > < b r > S o n d e r f a l l : D i e M a s k e n z a h l 0 l i e f e r t a l l e V e r k n p f u n g e n . < b r > < b r > B e i s p i e l : < b r > < b r > D i e V o l l t e x t i n d i z i e r u n g e r f o l g t e m i t f o l g e n d e r I n d e x b e s c h r e i b u n g : F i e l d s ( N a m e : 1 , V o r n a m e : 2 , S t r a e : 4 ) < b r > < b r > D i e S u c h e n a c h H a n s l i e f e r t d a n n j e n a c h M a s k e n z a h l < b r > < b r > 0 I n ( w e n i g s t e n s ) e i n e m d e r F e l d e r i s t d a s W o r t e n t h a l t e n < b r > 1 D a s W o r t i s t i m F e l d N a m e e n t h a l t e n < b r > 2 D a s W o r t i s t i m F e l d V o r n a m e e n t h a l t e n < b r > 3 D a s W o r t i s t i m F e l d N a m e o d e r i m F e l d V o r n a m e ( o d e r i n b e i d e n ) e n t h a l t e n < b r > 4 D a s W o r t i s t i m F e l d S t r a e e n t h a l t e n < b r > 5 D a s W o r t i s t i m F e l d N a m e o d e r i m F e l d S t r a e ( o d e r i n b e i d e n ) e n t h a l t e n < b r > . . . < b r > 7 D a s W o r t i s t ( w e n i g s t e n s ) i n e i n e m d e r F e l d e r N a m e , V o r n a m e o d e r S t r a e e n t h a l t e n . < b r > < b r > B i t f e l d < b r > < b r > I n d i e s e m P a r a m e t e r u n t e r s c h e i d e n s i c h d i e b e i d e n S u c h f u n k t i o n e n . B e i M a r k T a b l e w e r d e n d i e T r e f f e r d i r e k t i n d i e M a r k i e r u n g s l i s t e d e r T a b e l l e < b r > e i n g e t r a g e n . B e i M a r k B i t s h i n g e g e n w e r d e n d i e T r e f f e r i n e i n B i t f e l d b e r t r a g e n . D a s i s t d a n n v o n V o r t e i l , w e n n m e h r f a c h g e s u c h t w i r d u n d d i e < b r > e i n z e l n e n S u c h e r g e b n i s s e z u e i n e m G e s a m t e r g e b n i s z u s a m m e n g e s t z t w e r d e n . < b r > < b r > B e i s p i e l : < b r > < b r > V A R T r e f f e r , T e m p : T B I T S [ 1 0 0 0 0 0 0 ] < b r > < b r > M a r k B i t s ( . . . , T r e f f e r , . . . ) < b r > M a r k B i t s ( . . . , T e m p , . . . ) < b r > B i t A n d ( T r e f f e r , M a r k s ) ( e r g i b t d i e S c h n i t t m e n g e a u s b e i d e n S u c h e n ) < b r > B i t O r ( T r e f f e r , M a r k s ) ( e r g i b t d i e V e r e i n i g u n g s m e n g e a u s b e i d e n S u c h e n ) < b r > < b r > E x p e r t e n h i n w e i s : E i n B i t f e l d , w i e w i r e s h i e r e i n s e t z e n , k a n n a u c h a l s c h a r a k t e r i s t i s c h e M e n g e n f u n k t i o n a u f g e f a t w e r d e n , a l s o e i n e A b b i l d u n g d e r < b r > M e n g e a l l e r D a t e n s t z e e i n e r T a b e l l e i n d i e M e n g e { 0 , 1 } . E s h a n d e l t s i c h d a b e i u m e i n e s e h r e f f i z i e n t e I m p l e m e n t i e r u n g v o n ( T e i l - ) M e n g e n , d a d i e < b r > M e n g e n f u n k t i o n e n d a n n d i r e k t ( a l s f u n d a m e n t a l e M a s c h i n e n o p e r a t i o n e n ) a u s g e f h r t w e r d e n . A u c h M a r k T a b l e a r b e i t e t i n t e r n m i t e i n e m B i t f e l d u n d < b r > b i l d e t e r s t a m E n d e d e r F u n k t i o n d i e g e f u n d e n e M e n g e a u f d i e M a r k i e r u n g s l i s t e a b . < b r >
Syntax: MARKDOUBLES(db : INTEGER; index : INTEGER|STRING [,mode : INTEGER]) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > i n d e x : I n d e x n u m m e r o d e r I n d e x n a m e < b r > m o d e : 0 = n u r D o p p e l t e , 1 = D o p p e l t e u n d e r s t e D a t e n s t z e < b r >
M a r k i e r t d o p p e l t e E i n t r g e b z g l . e i n e s I n d e x
A n z a h l d e r g e f u n d e n e n D a t e n s t z e . Z u s t z l i c h s i n d d i e d o p p e l t e n E i n t r g e m a r k i e r t .
M a r k i e r t a l l e , b e r d e n i n i n d e x a n g e g e b e n e n I n d e x , m e h r f a c h i d e n t i s c h e n E i n t r g e . < b r / > < b r > I m M o d u s m o d e = 0 w e r d e n b e i n i d e n t i s c h e n E i n t r g e n g e n a u n - 1 < b r > D a t e n s t z e m a r k i e r t . D e r e r s t e D a t e n s a t z ( s o z . d e r M a s t e r - D a t e n s a t z ) < b r > w i r d n i c h t m a r k i e r t . < b r / > < b r > I s t d e r M o d u s m o d e = 1 , d a n n w i r d a u c h d e r e r s t e D a t e n s a t z , a l s o g e n a u n D a t e n s t z e , m a r k i e r t . < b r / > < b r / >
Syntax: MARKTABLE(db, i : INTEGER; Exp, ExtABC, Ops : STRING; Mask, Rel : INTEGER) : INTEGER

d b , i , R e l : T a b e l l e n h a n d l e v o n O p e n D B < b r > E x p : S u c h - A u s d r u c k < b r > E x t A B C : Z u s a t z z e i c h e n ( z u B u c h s t a b e n ) < b r > O p s : V e r k n p u n g s o p e r a t o r e n < b r > M a s k : S u c h m a s k e
S u c h t i m V o l l t e x t i n d e x
A n z a h l d e r g e f u n d e n e n D a t e n s t z e , w e n n > = 0 < b r > F e h l e r c o d e , w e n n < 0
D a s F u n k t i o n e r g e b n i s i s t d i e A n z a h l d e r g e f u n d e n e n D a t e n s t z e ( f a l l s p o s i t i v ) b z w e i n e r d e r F e h l e r c o d e s : < b r > < b r > - 6 4 u n g l t i g e S t i c h w o r t t a b e l l e < b r > - 7 7 u n g l t i g e R e l a t i o n s t a b e l l e < b r > - 5 6 i l l e g a l e K l a m m e r u n g i m S u c h s t r i n g < b r > - 4 5 u n g l t i g e s Z e i c h e n i m S u c h s t r i n g < b r > < b r > D i e l e t z t e n b e i d e n F e h l e r k n n e n m i t T D B _ E r r o r M s g u n d T D B _ E r r o r O f s n h e r b e s t i m m t w e r d e n . < b r > < b r > B e i m S u c h s t r i n g h a n d e l t e s s i c h u m e i n e Z e i c h e n k e t t e m i t f o l g e n d e m A u f b a u : < b r > < b r > S u c h s t r i n g : : = A u s d r u c k < b r > A u s d r u c k : : = T e r m { O d e r - O p e r a t o r T e r m } < b r > T e r m : : = F a k t o r { U n d - O p e r a t o r F a k t o r } < b r > F a k t o r : : = S u c h w o r t | " ( " A u s d r u c k " ) " < b r > < b r > E i n S u c h w o r t i s t e i n e Z e i c h e n k e t t e a u s B u c h s t a b e n , d e n Z e i c h e n a u s E x t A B C s o w i e d e n S o n d e r z e i c h e n " ? " u n d " * " . D a b e i s t e h t " ? " a l s P l a t z a l t e r < b r > f r g e n a u e i n b e l i e b i g e s Z e i c h e n , " * " f r b e l i e b i g v i e l e Z e i c h e n . < b r > < b r > F o l g e n d e O p e r a t o r e n s i n d v o r d e f i n i e r t ( w e n n i n O p s e i n L e e r s t r i n g b e r g e b e n w i r d ) : < b r > < b r > O d e r - O p e r a t o r + ( V e r e i n i g u n g s m e n g e , l o g i s c h e s O D E R ) < b r > U n d - O p e r a t o r e n , ( S c h n i t t m e n g e , l o g i s c h e s U N D ) < b r > - ( S c h n i t t m i t K o m p l e m e n t r m e n g e , l o g i s c h e s U N D N I C H T ) < b r > < b r > < b r > B e i s p i e l e : < b r > < b r > M e i e r f i n d e t a l l e D a t e n s t z e d i e d a s W o r t M e i e r i n b e l i e b i g e r G r o - o d e r K l e i n s c h r e i b u n g e n t h a l t e n . < b r > M e i * e r f i n d e t d i e D a t e n s t z e , d i e W r t e r e n t h a l t e n , d i e m i t M e i b e g i n n e n u n d m i t e r e n d e n . < b r > H a n s , M e i e r i m D a t e n s a t z m u s o w o h l d a s W o r t H a n s a l s a u c h M e i e r e n t h a l t e n s e i n . < b r > H a n s + M e i e r f i n d e t D a t e n s t z e i n d e n e n H a n s o d e r M e i e r o d e r b e i d e s v o r k o m m t . < b r > H a n s - M e i e r f i n d e t D a t e n s t z e , i n d e n e n z w a r H a n s v o r k o m m t , M e i e r a b e r n i c h t . < b r > < b r > O p s < b r > < b r > I m P a r a m e t e r O p s k n n e n d i e O p e r a t o r e n u m d e f i n i e r t w e r d e n . D a z u m u h i e r e i n e Z e i c h e n k e t t e m i t g e n a u d r e i Z e i c h e n b e r g e b e n w e r d e n . D a s < b r > e r s t e Z e i c h e n i s t d a n n d e r O p e r a t o r f r l o g i s c h e s U N D , d a s z w e i t e e n t s p r i c h t d e m l o g i s c h e n O D E R , d e a s d r i t t e s c h l i e l i c h e d e m l o g i s c h e n U N D < b r > N I C H T . < b r > < b r > M a s k e n z a h l < b r > < b r > D i e A n g a b e e i n e r M a s k e n z a h l i s t n u r d a n n s i n n v o l l , w e n n b e r e i t s b e i d e r V o l l t e x t i n d i z i e r u n g m i t e i n e m M a s k e n f e l d o d e r m i t M a s k e n k o n s t a n t e n < b r > g e a r b e i t e t w u r d e . D i e h i e r a n g e g e b e n e Z a h l u n d d i e i n d e r V e r k n p f u n g g e s p e i c h e r t e n Z a h l w e r d e n m i t e i n e m b i n r e n A N D v e r k n p f t . E s w e r d e n < b r > n u r s o l c h e D a t e n s t z e g e f u n d e n , b e i d e n e n d a s b i n r e A N D e i n e n W e r t u n g l e i c h 0 e r g i b t . < b r > < b r > S o n d e r f a l l : D i e M a s k e n z a h l 0 l i e f e r t a l l e V e r k n p f u n g e n . < b r > < b r > B e i s p i e l : < b r > < b r > D i e V o l l t e x t i n d i z i e r u n g e r f o l g t e m i t f o l g e n d e r I n d e x b e s c h r e i b u n g : F i e l d s ( N a m e : 1 , V o r n a m e : 2 , S t r a e : 4 ) < b r > < b r > D i e S u c h e n a c h H a n s l i e f e r t d a n n j e n a c h M a s k e n z a h l < b r > < b r > 0 I n ( w e n i g s t e n s ) e i n e m d e r F e l d e r i s t d a s W o r t e n t h a l t e n < b r > 1 D a s W o r t i s t i m F e l d N a m e e n t h a l t e n < b r > 2 D a s W o r t i s t i m F e l d V o r n a m e e n t h a l t e n < b r > 3 D a s W o r t i s t i m F e l d N a m e o d e r i m F e l d V o r n a m e ( o d e r i n b e i d e n ) e n t h a l t e n < b r > 4 D a s W o r t i s t i m F e l d S t r a e e n t h a l t e n < b r > 5 D a s W o r t i s t i m F e l d N a m e o d e r i m F e l d S t r a e ( o d e r i n b e i d e n ) e n t h a l t e n < b r > . . . < b r > 7 D a s W o r t i s t ( w e n i g s t e n s ) i n e i n e m d e r F e l d e r N a m e , V o r n a m e o d e r S t r a e e n t h a l t e n .
Syntax: MIN(numerischer_Ausdruck)

n u m e r i s c h e r _ A u s d r u c k : b e l i e b i g e r A u s d r u c k m i t d i r e k t e n F e l d z u g r i f f e n .
L i e f e r t d e n M i n i m a l w e r t e i n e s A u s d r u c k f r e i n e D a t e n b a n k a u s w e r t u n g
M i n i m a l w e r t d e r e i n z e l n e n B e r e c h n u n g e n d e s n u m e r i s c h e n A u s d r u c k s f r j e d e n D a t e n s a t z d e r A u s w e r t u n g .
B e i s p i e l : < b r > < b r > V A R m i n _ i n c o m e , m a x _ i n c o m e : R E A L < b r > . . . F I N D A N D M A R K ( d b , ' G e h h a l t < > 0 ' , ' m a x _ i n c o m e : = M A X ( G e h a l t ) ; m i n _ i n c o m e : = M I N ( G e h a l t ) ' ) < b r > < b r > N a c h A u s f h r u n g d e r F u n k t i o n s t e h t i n m a x _ i n c o m e d e r g r t e , i n m i n _ i n c o m e d e r k l e i n s t e W e r t a l l e r G e h a l t s a n g a b e n .
Syntax: MAXFILE : INTEGER

g r t e r g l t i g e r T a b e l l e n h a n d l e
g r t e r g l t i g e r T a b e l l e n h a n d l e
D u r c h O p e n D B w e r d e n f o r t l a u f e n d e T a b e l l e n h a n d l e s v e r g e b e n . D u r c h C l o s e D B w e r d e n d i e T a b e l l e n h a n d l e s w i e d e r f r e i g e g e b e n . M A X F I L E w i r d j e d o c h n u r d a n n d u r c h C l o s e D B r e d u z i e r t , w e n n d i e T a b e l l e n m i t d n h c h s t e n H a n d l e s g e s c h l o s s e n w e r d e n . < b r > < b r > B e i s p i e l : A l l e T a b e l l e n s c h l i e e n < b r > < p r e > < b r > n l o o p ( i , M A X F I L E - 1 , C l o s e D B ( i + 1 ) ) < b r > < / p r e >
Syntax: MAXLABEL(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B
A n z a h l d e r D a t e n f e l d e r ( S p a l t e n ) i n e i n e r T a b e l l e
A n z a h l d e r F e l d e r ( S p a l t e n )
B e i s p i e l : S t r u k t u r e i n e r T a b e l l e a u s g e b e n < b r > < b r > < p r e > < b r > V A R i , d b : I N T E G E R ; < b r > . . . < b r > i : = 0 ; < b r > W H I L E i + + < = M A X L A B E L ( d b ) D O < b r > c g i w r i t e l n ( G e t S t r u c t u r e ( d b , i ) ) < b r > E N D ; < b r > < / p r e >
Syntax: MAX(numerischer_Ausdruck)

n u m e r i s c h e r _ A u s d r u c k : b e l i e b i g e r A u s d r u c k m i t d i r e k t e n F e l d z u g r i f f e n .
L i e f e r t d e n M a x i m a l w e r t e i n e s A u s d r u c k f r e i n e D a t e n b a n k a u s w e r t u n g
M a x i m a l w e r t d e r e i n z e l n e n B e r e c h n u n g e n d e s n u m e r i s c h e n A u s d r u c k s f r j e d e n D a t e n s a t z d e r A u s w e r t u n g .
B e i s p i e l : < b r > < b r > V A R m i n _ i n c o m e , m a x _ i n c o m e : R E A L < b r > . . . F I N D A N D M A R K ( d b , ' G e h h a l t < > 0 ' , ' m a x _ i n c o m e : = M A X ( G e h a l t ) ; m i n _ i n c o m e : = M I N ( G e h a l t ) ' ) < b r > < b r > N a c h A u s f h r u n g d e r F u n k t i o n s t e h t i n m a x _ i n c o m e d e r g r t e , i n m i n _ i n c o m e d e r k l e i n s t e W e r t a l l e r G e h a l t s a n g a b e n .
Syntax: MEMOLEN(db : INTEGER; field : INTEGER|STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g )
A n z a h l d e r Z e i c h e n i n e i n e m M e m o - F e l d e r m i t t e l n
A n z a h l d e r Z e i c h e n i m M e m o
F a l l s m i t d e m F e l d k e i n M e m o - F e l d b e z e i c h n e t w i r d , e r z e u g t d i e t d b e n g i n e e i n e n L a u f z e i t f e h l e r . A n d e r n f a l l s w i r d d i e A n z a h l a l l e r Z e i c h e n i m M e m o z u r c k g e l i e f e r t ( i n k l . a l l e r u n s i c h t b a r e n Z e i c h e n ) .
Syntax: MEMOSTR(db : INTEGER; field : INTEGER|STRING) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g )
A n f a n g e i n e s M e m o - F e l d e s a l s S t r i n g
D i e e r s t e n ( m a x 2 5 5 ) Z e i c h e n d e s M e m o f e l d e s .
W e n n k e i n g l t i g e s M e m o - F e l d a n g e g e b e n w i r d , w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . < b r > < b r > Z e i l e n u m b r c h e w e r d e n a l s L e e r z e i c h e n z u r c k g e l i e f e r t . < b r > < b r > W e n n d a s M e m o m e h r a l s 2 5 5 Z e i c h e n u m f a s s t , w e r d e n n u r 2 5 2 Z e i c h e n g e l i e f e r t , g e f o l g t v o n ' . . . '
Syntax: WAITSEMA(fn : STRING; timeout : INTEGER) : INTEGER

f n : D a t e i n a m e d e s S e m a p h o r e n . V o r a n g e s t e l l t w i r d s e m a d i r , e s s e i d e n n , f n e n t h l t P f a d t r e n n z e i c h e n . < b r > t i m e o u t : W a r t e z e i t i n m s
S e t z t e i n e S p e r r e
> 0 : H a n d l e < b r > 0 : S e m a p h o r k o n n t e n i c h t g e f f n e t w e r d e n
D i e t d b e n g i n e s e t z t k e i n e S p e r r e n a u f T a b e l l e n , s i e w e r d e n i m m e r i m S h a r e d - M o d e g e f f n e t . < b r / > < b r > U m e i n e n s i c h e r e n M u l t i u s e r - B e t r i e b z u g e w h r l e i s t e n , s t e l l t d i e t d b e n g i n e 2 5 5 b i n r e S e m a p h o r e n z u r V e r f g u n g , d i e d e r z e i t a l s ( l e e r e , g e s p e r r t e ) D a t e i e n r e a l i s i e r t s i n d . < b r / > < b r > E i n e n h e r e B e s c h r e i b u n g f i n d e n S i e a u c h i n d e r D o k u m e n t a t i o n ( S t i c h w o r t : S e m a p h o r e n k o n z e p t ) .
Syntax: MEAN(numerischer_Ausdruck)

n u m e r i s c h e r _ A u s d r u c k : b e l i e b i g e r A u s d r u c k m i t d i r e k t e n F e l d z u g r i f f e n .
L i e f e r t d a s a r i t h m e t i s c h e M i t t e l e i n e s A u s d r u c k f r e i n e D a t e n b a n k a u s w e r t u n g
S u m m e d e r e i n z e l n e n B e r e c h n u n g e n d e s n u m e r i s c h e n A u s d r u c k s f r j e d e n D a t e n s a t z d e r A u s w e r t u n g .
B e i s p i e l : < b r > < b r > V A R m e a n _ i n c o m e : R E A L < b r > < b r > . . . < b r > F I N D A N D M A R K ( d b , ' G e h h a l t < > 0 ' , ' m e a n _ i n c o m e : = M E A N ( G e h a l t ) ' ) < b r > < b r > N a c h A u s f h r u n g d e r F u n k t i o n s t e h t i n m e a n _ i n c o m e d e r D u r c h s c h n i t t a l l e r G e h a l t s a n g a b e n .
Syntax: Exp_1 MOD Exp_2

E x p _ 1 , E x p _ 2 : R E A L ( g a n z z a h l i g )
R e s t b e i g a n z z a h l i g e r D i v i s i o n
R e s t , w e n n E x p _ 1 d u r c h E x p _ 2 g e t e i l t w i r d ( M o d u l o )
K o m m a z a h l e r n w e r d e n v o r ( ! ) d e r A u s f h r u n g v o n M O D g e r u n d e t .
Syntax: MONAT(d : INTEGER) : INTEGER

d : D a t u m
E x t r a h i e r t d e n M o n a t a u s e i n e m D a t u m ( v e r a l t e t )
M o n a t d e s D a t u m s
W i r d d u r c h M O N T H e r s e t z t
Syntax: MONTH(d : INTEGER) : INTEGER

d : D a t u m
M o n a t a u s e i n e m D a t u m
M o n a t s z a h l d e s D a t u m s
M O N T H ( 2 1 . 5 . 1 9 5 2 ) = 5
Syntax: NBITS(VAR t : TBITS[]) : INTEGER

t : F e l d v o n T y p T B I T S
Z h l t d i e g e s e t z t e n B i t s
A n z a h l d e r 1 - W e r t i n T
Syntax: STRADD(s1, s2 : STRING) : STRING

s 1 , s 2 : S t r i n g f o r m v o n g a n z e n Z a h l e n
A d d i t i o n g r o e r Z a h l e n a l s S t r i n g s
s t r ( v a l ( s 1 ) + v a l ( s 2 ) )
Z u r B i l d u n g v o n P r f s u m m e n m s s e n m i t u n t e r s e h r g r o e Z a h l e n ( 1 0 0 S t e l l e n u n d m e h r ) m i t e i n a n d e r a d d i e r t w e r d e n . D a f r r e i c h e n d i e v o n d e r t d b e n g i n e v e r w e n d e t e n 8 - B y t e - R e a l s ( D o u b l e P r e c i s i o n ) n i c h t a u s . A u s d i e s e m G r u n d r e p r s e n t i e r t m a n s o l c h e Z a h l e n a l s S t r i n g s , d i e m i t S T R A D D a d d i e r t w e r d e n k n n e n . < b r > < b r > B e i s p i e l : < p r e > < b r > V A R a : S T R I N G = ' 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 ' ; < b r > V A R b : S T R I N G = ' 9 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 ' ; < b r > V A R c : S T R I N G = S T R A D D ( a , b ) < b r > . . . < b r > c = ' 1 0 3 3 3 3 5 5 5 5 5 7 7 7 7 7 9 9 9 9 9 ' < / p r e > < b r >
Syntax: UPPER(s : STRING) : STRING

s : b e l i e b i g e Z e i c h e n k e t t e
Z e i c h e n k e t t e i n G r o b u c h s t a b e n < b r >
s i n G r o b u c h s t a b e n . D i e m e i s t e n S o n d e r z e i c h e n ( w i e b e i s p i e l s w e i s e d i e d e u t s c h e n U m l a u t e ) w e r d e n r i c h t i g b e h a n d e l t .
B e i s p i e l : < b r > < b r > U P P E R ( ' H a n s M l l e r ' ) - > ' H A N S M L L E R '
Syntax: NEWTABLE(db : INTEGER; fn : STRING [; Auto-Start : INTEGER]) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f n : P f a d z u r n e u e n T a b e l l e < b r > A u t o - S t a r t : S t a r t w e r t f r d a s A U T O - I N C R E M E N T - F e l d ( f a l l s v o r h a n d e n )
K o p i e ( l e e r ) e i n e r T a b e l l e e r z e u g e n
0 : D a t e i w u r d e e r f o l g r e i c h e r z e u g t < b r > s o n s t : F e h l e r c o d e
D i e n e u e r z e u g t e T a b e l l e h a t d i e g l e i c h e S t r u k t u r w i e d b u n d i s t l e e r . P a w o r t u n d V e r s c h l s s e l u n g s c o d e w e r d e n e b e n f a l l s v o n d b b e r n o m m e n .
Syntax: NEXTDIR

n c h s t e r V e r z e i c h n i s e i n t r a g b z g l F i r s t D i r
V e r z e i c h n i s e i n t r a g w i e b e i F I R S T D I R
S i e h e F I R S T D I R
Syntax: NEXTMARK(db : INTEGER; prev_mark : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > p r e v _ m a r k : p h y s i k a l i s c h e S a t z n u m m e r e i n e s D a t e n s a t z e s a u s d e r M a r k i e r u n g s l i s t e
n c h s t e r m a r k i e r t e r D a t e n s a t z
0 : K e i n ( w e i t e r e r ) D a t e n s a t z i n d e r M a r k i e r u n g s l i s t e < b r > s o n s t : p h y s i k a l i s c h e S a t z n u m m e r d e s a u f p r e v _ m a r k f o l g e n d e n S a t z e s i n d e r M a r k i e r u n g s l i s t e
F I R S T M A R K u n d N E X T M A R K w e r d e n v e r w e n d e t , u m d i e M a r k i e r u n g s l i s t e e i n e r T a b e l l e d u r c h z u g e h e n : < b r > < b r > < p r e > < b r > . . . h i e r s i n d S t z e m a r k i e r t < b r > x : = F I R S T M A R K ( d b ) ; / / a m A n f a n g p o s i t i o n i e r t < b r > W H I L E x D O < b r > r e a d r e c ( d b , x ) ; < b r > . . . h i e r w i r d m i t d e m D a t e n s a t z g e a r b e i t e t < b r > x : = N E X T R E C ( d b , x ) < b r > E N D < b r > < / p r e >
Syntax: NEXTREC(Tabellenhandle : INTEGER) : INTEGER

T a b e l l e n h a n d l e v o n O P E N D B
P h y s i k a l i s c h e S a t z n u m m e r d e s N a c h f o l g e r s
P y s i k a l i s c h e S a t z n u m m e r d e s N a c h f o l g e r s < b r > 0 , w e n n k e i n V o r g n g e r v o r h a n d e n
D i e F u n k t i o n e n F I R S T R E C , L A S T R E C , P R E V R E C u n d N E X T R E C b e z i e h e n s i c h i m m e r a u f d i e a k t u e l l e O r d n u n g , d i e m i t d e r F u n k t i o n A C C E S S e i n g e s t e l l t w i r d . < b r > F o l g e n d e O r d n u n g e n ( Z u g r i f f s r e i h e n f o l g e n ) s i n d m g l i c h : < b r > < b r > N u m m e r - > p h y s i k a l i s c h e S a t z n u m m e r < b r > M a r k i e r u n g - > i n t e r n e M a r k i e r u n g s l i s t e < b r > I n d e x - > R e i h e n f o l g e w i r d a u s d e m I n d e x b e s t i m m t < b r > < b r > E i n e t y p i s c h e D u r c h l a u f s e q u e n z s c h a u t s o a u s : < b r > < p r e > < b r > x : = F I R S R E C ( t a b e l l e ) < b r > W H I L E x D O < b r > R E A D R E C ( t a b e l l e , x ) < b r > . . . m i t d e m D a t e n s a t z a r b e i t e n < b r > x : = N E X T R E C ( t a b e l l e ) < b r > E N D < b r > < / p r e > < b r > H i n w e i s : D i e F u n k t i o n e n a u s d i e s e r G r u p p e s o l l t e m a n n u r i m Z u s a m m e n h a n g m i t I n d e x - Z u g r i f f e n v e r w e n d e n . F r d e n Z u g r i f f b e r p h y s i k a l i s c h e S a t z n u m m e r n o d e r M a r k i e r u n g e n g i b t e s s c h n e l l e r e M g l i c h k e i t e n : < b r > < b r > N u m m e r : < b r > < p r e > < b r > x : = 0 ; W H I L E x + + < = F I L E S I Z E ( t a b e l l e ) D O . . . E N D < b r > < / p r e > < b r > < b r > M a r k i e r u n g : < b r > < p r e > < b r > x : = F I R S T M A R K ( t a b e l l e ) ; W H I L E x D O . . . ; x : = N E X T M A R K ( t a b e l l e , x ) E N D < b r > < / p r e >
Syntax: NOT bool_exp

b o o l _ e x p : l o g i s c h e r A u s d r u c k
l o g i s c h e s N O T ( v e r a l t e t )
T R U E , w e n n b o o l _ e x p F A L S E < b r > F A L S E , w e n n b o o l _ e x p T R U E
w i r d d u r c h N O T e r e s e t z t
Syntax: NLOOP(VAR i : INTEGER; max : INTEGER; Exp_1; Exp_2; ...) : INTEGER

i : V a r i a b l e v o m T y p I N T E G E R < b r > m a x : h c h s t e r W e r t v o n i < b r > E x p _ 1 , E x p _ 2 . . . : b e l i e b i g e A u s d r c k e
m e h r f a c h e W i e d e r h o l u n g e i n e r A u s d r u c k s b e r e c h n u n g
< k e i n e r >
B e i d e r A u s f h r u n g d e r g e s c h i e h t f o l g e n d e s : < b r > < b r > i w i r d a u f 0 g e s e t z t < b r > s o l a n g e i n i c h t g r e r a l s m a x i s t , w e r d e n z u c h s t d i e A u s d r c k e E x p _ 1 , E x p _ 2 . . . b e r e c h n e t u n d d a n n i u m 1 i n k r e m e n t i e r t . < b r > < b r > B e i s p i e l : g a n z e T a b e l l e m a r k i e r e n < b r > < p r e > < b r > V A R d b , i : I N T E G E R ; < b r > . . . < b r > N L O O P ( i , F I L E S I Z E ( d b ) - 1 , S E T M A R K ( d b , i + 1 ) ) < / p r e > < b r > < b r >
Syntax: NMARKS(Tabellenhandle : INTEGER) : INTEGER

T a b e l l e n h a n d l e v o n O P E N D B
G r e d e r M a r k i e r u n g s l i s t e e i n e s T a b e l l e n h a n d l e < b r >
A n z a h l d e r E i n t r g e i n d e r M a r k i e r u n g s l i s t e
J e d e r v o n O P E N D B g e l i e f e r t e T a b e l l e n h a n d l e b e i n h a l t e t e i n e L i s t e , i n d i e b e l i e b i g v i e l e Z e i l e n r e f e r e n z e n ( S a t z n u m m e r n ) a u f g e n o m m e n w e r d e n k n n e n . J e d e Z e i l e n r e f e r e n z k a n n a l l e r d i n g s n u r e i n m a l a u f g e n o m m e n w e r d e n . E s h a n d e l t s i c h d e m n a c h u m e i n e g e o r d n e t e T e i l m e n g e a u s d e r T a b e l l e . < b r > < b r > N M A K R S l i e f e r t d i e G r e d i e s e r L i s t e
Syntax: NOT b

b : l o g i s c h e r A u s d r u c k
N e g a t i o n e i n e s l o g i s c h e n A u s d r u c k s
f a l s c h , w e n n b w a h r i s t < b r > w a h r , w e n n b f a l s c h i s t
E A S Y b i e t e t d r e i J u n k t o r e n : < b r > < b r > N O T ( h c h s t e P r i o r i t t ) < b r > A N D ( m i t t l e r e P r i o r i t t ) < b r > O R ( g e r i n g s t e P r i o r i t t ) < b r > < b r > L o g i s c h e A u s d r c k e w e r d e n i m m e r v e r k r z t a u s g e w e r t e t
Syntax: NOTE[(s : STRING)]: STRING

s : b e l i e b i g e r S t r i n g
Z w i s c h e n s p e i c h e r f r a n d e r e n P r o z e s s
I n h a l t d e s Z w i s c h e n s p e i c h e r s
D i e s F u n k t i o n w i r d v e r w e n d e t , w e n n m i t E X E C M A C R O e i n a n d e r e s M o d u l a u s g e f h r t w i r d . & n b s p ; & n b s p ; N O T E o h n e P a r a m e t e r l i e f e r t d e n W e r t d e s Z w i s c h e n s p e i c h e r s . & n b s p ; & n b s p ; N O T E ( s : S T R I N G ) l e g t d e n I n h a l t v o n s i m Z w i s c h e n s p e i c h e r a b .
Syntax: SetIdent(IniFile,Identifier,Value : STRING) : INTEGER

I n i F i l e : P f a d z u r K o n f i g u r a t i o n s d a t e i < b r > I d e n t i f i e r : " G r u p p e . N a m e " d e s n e u e n o d e r r z u n d e r n d e n E i n t r a g s < b r > V a l u e : b e l i e g i g e Z e i c h e n k e t t e
S e t z t n e u e n W e r t i n K o n f i g u r a t i o n s d a t e i
F e h l e r c o d e < b r > 0 = A l l e s i n O r d n u n g
M i t d i e s e r F u n k t i o n k a n n i n e i n e r b e s t e h e n d e n K o n f i g u r a t i o n s - D a t e i e i n n e u e r W e r t g e s e t z t w e r d e n , o h n e d a s s h i e r f r d i e D a t e i k o m p l e t t n e u g e s c h r e i b e n w e r d e n m u . S i e b i l d e t d e m n a c h d a s G e g e n s t c k z u < b > G e t I d e n t < / b > . M i t d i e s e n b e i d e n F u n k t i o n e n w e r d e n T e x t d a t e i e n d e r f o l g e n d e n F o r m b e a r b e i t e t : < p r e > [ G r u p p e _ 1 ] < b r > B e z e i c h n e r _ 1 = W e r t _ 1 < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > . . . < b r > [ G r u p p e _ 2 ] < b r > B e z e i c h n e r _ 1 = W e r t _ 1 < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > . . . < b r > < / p r e > G e t I d e n t ( I n i f i l e , ' G r u p p e _ 1 . B e z e i c h n e r _ 1 ' ) l i e f e r t W e r t _ 1 S e t I d e n t ( I n i f i l e , ' G r u p p e _ 1 . B e z e i c h n e r _ 1 ' , ' N e u e r W e r t ' ) f h r t z u f o l g e n d e m E i n t r a g < p r e > [ G r u p p e _ 1 ] < b r > B e z e i c h n e r _ 1 = N e u e r W e r t < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > . . . < b r > < / p r e > S e t I d e n t ( I n i f i l e , ' G r u p p e _ 1 . B e z e i c h n e r _ 3 ' , ' N e u e r W e r t ' ) f h r t z u f o l g e n d e m E i n t r a g < p r e > [ G r u p p e _ 1 ] < b r > B e z e i c h n e r _ 1 = W e r t _ 1 < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > B e z e i c h n e r _ 3 = N e u e r W e r t < b r > < / p r e > S e t I d e n t ( I n i f i l e , ' N e u e _ G r u p p e . B e z e i c h n e r _ 1 ' , ' N e u e r W e r t ' ) f h r t z u f o l g e n d e m E i n t r a g < p r e > [ G r u p p e _ 1 ] < b r > B e z e i c h n e r _ 1 = W e r t _ 1 < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > . . . < b r > [ G r u p p e _ 2 ] < b r > B e z e i c h n e r _ 1 = W e r t _ 1 < b r > B e z e i c h n e r _ 2 = W e r t _ 2 < b r > . . . < b r > [ N e u e _ G r u p p e ] < b r > B e z e i c h n e r _ 1 = N e u e r W e r t < b r > < / p r e > D e r n e u g e s e t z t e W e r t i s t s o f o r t g l t i g , e i n A u f r u f v o n G e t I d e n t ( . . . . ) l i e f e r t a l s o i m m e r d e n a k t u e l l s t e n W e r t . < b r / > < b r > A c h t u n g : S e t I d e n t f h r t k e i n F i l e - L o c k i n g d u r c h , s o n d e r n l i e s t d e n b e i m A u f r u f a k t u e l l e n S t a n d d e r D a t e i . < b r / > < b r > H i n w e i s : K o n f i g u r a t i o n s d a t e i e n s i n d e i n h c h s t k o m f o r t a b l e r u n d e f f i z i e n t e r W e g z u r V e r w a l t u n g v o n n i c h t - r e l a t i o n a l e n D a t e n w i e S y s t e m d a t e i e n e t c . D e r Z u g r i f f a u f d i e e i n z e n e n B e z e i c h n e r ( I d e n t s ) e r f o l g t e x t r e m s c h n e l l : E i n e I n i d a t e i w i r d n u r b e i m e r s t e n A u f r u f g e l e s e n , d a b e i w e r d e n s m t l i c h e d a r i n e n t h a l t e n e n I n f o r m a t i o n e n i n e i n e r s e h r s c h n e l l e n ( B a u m - ) S u c h s t r u k t u r a b g e l e g t . < b r / > < b r > S e i t V e r s i o n 6 . 3 . 1 . 8 - p r e g i b t e s e i n e k o n f i g u r i e r b a r e A n z a h l v o n P u f f e r n : < b r / > < b r / > < b r > t d b e n g i n e . i n i : < b r / > < b r > [ g l o b a l s ] < b r / > < b r > b u f f e r _ i d e n t s = 1 < b r / >
Syntax: NOW : REAL

< k e i n e >
S y s t e m z e i t
A n z a h l d e r s e i t M i t t e r n a c h t v e r g a n g e n e n M i n u t e n . I m N a c h k o m m a b e r e i c h s i n d S e k u n d e n u n d S e k u n d e n b r u c h t e i l e e n t h a l t e n .
B e i s p i e l : < b r > < b r > T I M E S T R ( N O W , 3 ) l i e f e r t d i e S y s t e m z e i t a l s S t r i n g m i t M i l l i s e k u n d e n - A u f l s u n g
Syntax: NTIMES(s : STRIONG; n : INTEGER) : STRING

s : b e l i e g i g e r S T R I N G < b r > n : A n z a h l W i e d e r h o l u n g e n
m e h r f a c h e W i e d e r h o l u n g e i n e s S t r i n g s
S t r i n g , b e i d e m s n - m a l w i e d e r h o l t w i r d
E s k a n n e i n S t r i n g a u s m a x i m a l 2 5 5 Z e i c h e n g e b i l d e t w e r d e n . < b r > < b r > B e i s p i e l : < b r > < b r > N T I M E S ( ' + ' , 1 0 ) - > ' + + + + + + + + + + '
Syntax: Exp1 ODER Exp2

E x p 1 , E x p 2 : L o g i s c h e r A u s d r u c k
N i c h t a u s s c h l i e e n d e n O D E R ( v e r a l t e t )
T R U E , w e n n E x p 1 o d e r E x p 2 o d e r b e i d e d e n W e r t T R U E l i e f e r n .
H a t E x p 1 d e n W e r t T R U E , s o w i r d E x p 2 n i c h t m e h r b e r e c h n e t ( v e r k r z t e L o g i k a u s w e r t u n g )
Syntax: OEMTOANSI(S : STRING) : STRING

S : S T R I N G o d e r R A M T e x t
b e r s e t z t e i n e n A S C I I - S t r i n g n a c h A N S I
S , b e i d e m a l l e Z e i c h e n b e r # 1 2 8 g e m d e r A S C I I / A N S I - b e r s e t z u n g s t a b e l l e e r s e t z t s i n d .
I s t a u c h m i t R a m t e x t e n u n d C H A R [ ] e r l a u b t ,
Syntax: OPENDB(path : STRING [;password : STRING [; code : INTEGER [; rights : INTEGER]]]) : INTEGER

p a t h : P f a d z u r D a t e i , d i e d i e T a b e l l e e n t h l t < b r > p a s s w o r d : P a w o r t d e r T a b e l l e < b r > c o d e : V e r s c h l s s e l u n g s c o d e d e r T a b e l l e < b r > r i g h t s : Z u g r i f f s r e c h t e ( S u m m e a u s ) : < b r > 1 : n e u e D a t e n s t z e a n f g e n < b r > 2 : b e s t e h e n d e D a t e n s t z e b e r s c h r e i b e n < b r > 4 : D a t e n s t z e l s c h e n < b r > 8 : I n d i z e s a n l e g e n u n d l s c h e n < b r > 2 5 6 : V i r t u e l l
f f n e n e i n e r T a b e l l e
T a b e l l e n h a n d l e , w e n n > 0 < b r > 0 : F e h l e r
W e n n k e i n Z u g r i f f a u f d i e a n g e g e b e n e T a b e l l e m g l i c h i s t , w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . I n d i e s e m F a l l s o l l t e i m m e r d i e F e h l e r u r s a c h e ( T D B _ L a s t E r r o r ) u n t e r s u c h t w e r d e n . < b r / > < b r > D i e g e f f n e t e T a b e l l e w i r d z u r P r i m r t a b e l l e .
Syntax: Exp1 OR Exp2

E x p 1 , E x p 2 : L o g i s c h e r A u s d r u c k
N i c h t a u s s c h l i e e n d e n O D E R
T R U E , w e n n E x p 1 o d e r E x p 2 o d e r b e i d e d e n W e r t T R U E l i e f e r n .
H a t E x p 1 d e n W e r t T R U E , s o w i r d E x p 2 n i c h t m e h r b e r e c h n e t ( v e r k r z t e L o g i k a u s w e r t u n g )
Syntax: PARAMSTR(Position : INTEGER) : STRING

P o s i t i o n : E n s p r e c h e n d e r P a r a m e t e r i n d e r K o m m a n d o z e i l e
A r g u m e n t e b e i m P r o g r a m m a u f r u f
D e r P o s i t i o n e n t s p r e c h e n d e s A r g u m e n t b z w . L e e r s t r i n g , w e n n n i c h t s a n g e g e b e n w u r d e .
P A R A M S T R ( 0 ) l i e f e r t d e n l o k a l e n T e i l d e r U R L , m i t d e m e i n C G I - P r o g r a m m a u f g e r u f e n w u r d e : < b r > < b r > W i r d b e i s p i e l s w e i s e e i n C G I - P r o g r a m m m i t < b r > < b r > h t t p : / / w w w . t d b - e n g i n e . d e / c g i - t d b / f o r u m / f o r u m . p r g < b r > < b r > a u f g e r u f e n , s o l i e f e r t P A R A M S T R ( 0 ) ' / c g i - t d b / f o r u m / f o r u m . p r g '
Syntax: PAUSE(time : INTEGER)

t i m e : Z e i t i n 1 / 1 0 0 - t e l S e k u n d e n
H l t d a s P r o g r a m m f r e i n b e s t i m m t e D a u e r a n
< k e i n e r >
L e g t e i n e P a u s e e i n , o h n e w h r e n d d i e s e r Z e i t d i e S y s t e m r e s s o u r c e n z u b e l a s t e n . < b r > < b r > B e i s p i e l : < b r > < b r > S e t I d e n t ( ' b i n / t d b e n g i n e . i n i ' , ' g l o b a l s . s t o p c g i ' , ' 1 ' ) < b r > P A U S E ( 1 0 0 0 ) / / w a r t e 1 0 s , b i s a l l e P r o z e s s e b e e n d e t s i n d < b r > / / j e t z t d a r f d a s P r o g r a m m a l l e s m a c h e n . . . < b r > S e t I d e n t ( ' b i n / t d b e n g i n e . i n i ' , ' g l o b a l s . s t o p c g i ' , ' 0 ' )
Syntax: TIMESTR(Minuten_seit_Mitternacht : REAL) : STRING

M i n u t e n _ s e i t _ M i t t e r n a c h t : K o m m a z a h l ( M i n u t e n )
Z e i t a n g a b e a l s S T R I N G
S t r i n g d e r F o r m ' h h : m m '
E s g i b t a b e r a u c h n o c h e r w e i t e r t e F o r m e n : < b r > < b r > T I M E S T R ( N O W , 0 ) - > ' h h : m m : s s ' < b r > T I M E S T R ( N O W , n ) - > ' h h . m m : s s . x ' m i t x a l s S e k u n d e n b r u c h t e i l e n ( n S t e l l e n )
Syntax: POS(Teilstr, Str : STRING) : INTEGER

T e i l s t r , S t r : b e l i e b i g e Z e i c h e n k e t t e n
E r m i t t e l t d a s e r s t e V o r k o m m e n e i n e s T e i l s t r i n g s i n e i n e m S t r i n g
0 , w e n n d e r T e i l s t r i n S t r n i c h t e n t h a l t e n i s t , s o n s t d i e P o s i t i o n d e s e r s t e n b e r e i n s t i m m e n d e n Z e i c h e n s .
B e i s p i e l e : < b r > < b r > P O S ( ' e i ' , ' M e i e r ' ) - > 2 < b r > P O S ( ' H u b e r ' , ' M e i e r ' ) - > 0 < b r > P O S ( ' M e i e r ' , ' M e i e r ' ) - > 1
Syntax: PREVREC(Tabellenhandle : INTEGER) : INTEGER

T a b e l l e n h a n d l e v o n O P E N D B
P h y s i k a l i s c h e S a t z n u m m e r d e s V o r g n g e r s
P y s i k a l i s c h e S a t z n u m m e r d e s V o r g n g e r s < b r > 0 , w e n n k e i n V o r g n g e r v o r h a n d e n
D i e F u n k t i o n e n F I R S T R E C , L A S T R E C , P R E V R E C u n d N E X T R E C b e z i e h e n s i c h i m m e r a u f d i e a k t u e l l e O r d n u n g , d i e m i t d e r F u n k t i o n A C C E S S e i n g e s t e l l t w i r d . < b r > F o l g e n d e O r d n u n g e n ( Z u g r i f f s r e i h e n f o l g e n ) s i n d m g l i c h : < b r > < b r > N u m m e r - > p h y s i k a l i s c h e S a t z n u m m e r < b r > M a r k i e r u n g - > i n t e r n e M a r k i e r u n g s l i s t e < b r > I n d e x - > R e i h e n f o l g e w i r d a u s d e m I n d e x b e s t i m m t < b r > < b r > E i n e t y p i s c h e D u r c h l a u f s e q u e n z s c h a u t s o a u s : < b r > < p r e > < b r > x : = L A S T R E C ( t a b e l l e ) < b r > W H I L E x D O < b r > R E A D R E C ( t a b e l l e , x ) < b r > . . . m i t d e m D a t e n s a t z a r b e i t e n < b r > x : = P R E V R E C ( t a b e l l e ) < b r > E N D < b r > < / p r e > < b r > H i n w e i s : D i e F u n k t i o n e n a u s d i e s e r G r u p p e s o l l t e m a n n u r i m Z u s a m m e n h a n g m i t I n d e x - Z u g r i f f e n v e r w e n d e n . F r d e n Z u g r i f f b e r p h y s i k a l i s c h e S a t z n u m m e r n o d e r M a r k i e r u n g e n g i b t e s s c h n e l l e r e M g l i c h k e i t e n : < b r > < b r > N u m m e r : < b r > < p r e > < b r > x : = 0 ; W H I L E x + + < = F I L E S I Z E ( t a b e l l e ) D O . . . E N D < b r > < / p r e > < b r > < b r > M a r k i e r u n g : < b r > < p r e > < b r > x : = F I R S T M A R K ( t a b e l l e ) ; W H I L E x D O . . . ; x : = N E X T M A R K ( t a b e l l e , x ) E N D < b r > < / p r e >
Syntax: PRIMFILE(tabelle : INTEGER) : INTEGER

t a b e l l e : H a n d l e v o n O P E N D B
S e t z t d i e P r i m r t a b e l l e ( v e r a l t e t )
t a b e l l e , w e n n a l l e s o k a y , s o n s t 0
P R I M F I L E i n i t i a l i s e r t d e n R e l a t i o n s b a u m e i n e r D a t e n b a n k
Syntax: log_Ausdruck_1 UND log_Ausdruck_2

l o g _ A u s d r u c k _ 1 , l o g _ A u s d r u c k _ 2 : l o g i s c h e A u s d r c k e
l o g i s c h e s U N D
w a h r , w e n n b e i d e T e i l a u s d r c k e w a h r , s o n s t f a l s c h
E A S Y v e r w e n d e t g r u n d s t z l i c h e i n e v e r k r z t e L o g i k a u s w e r t u n g . < b r > < b r > l o g _ A u s d r u c k _ 2 w i r d d e m n a c h n i c h t b e r e c h n e t , w e n n l o g _ A u s d r u c k _ 1 f a l s c h e r g i b t .
Syntax: TESTLN(s : STRING) : STRING

s : b e l g i e b i g e r S t r i n g
S t r i n g a u f I n h a l t p r f e n u n d C R / L F a n h n g e n
L T R I M ( R T R I M ( s ) ) + ^ M + ^ J , w e n n s n i c h t l e e r , < b r > s o n s t L e e r s t r i n g
Syntax: VALSTR(S : STRING) : STRING

S : S t r i n g m i t e i n e m b e l i e b i g e n E A S Y - A u s d r u c k , d e r e i n e n S t r i n g z u r c k l i e f e r t .
B e r e c h n e t e i n e n A u s d r u c k
B e r e c h n e t e r A u s d r u c k v o n S
S i e h e V A L
Syntax: PUTMARKS(DB : INTEGER; Marks) : INTEGER

D B : T a b e l e n h a n d l e v o n O P E N D B < b r > M a r k s : T M A R K S o d e r R E A L [ ] o d e r T B I T S [ ]
S e t z e n d e r M a r k i e r u n g s l i s t e e i n e r T a b e l l e
K a r d i n a l i t t d e r M a r k i e r u n g s l i s t e ( A n z a h l d e r m a r k i e r t e n D a t e n s t z e )
Z u n c h s t w i r d e i n e e v e n t u e l l b e s t e h e n d e M a r k i e r u n g s l i s t e v o n D B g e l s c h t . D a n n w e r d e n d i e M a r k i e r u n g e n e n t s p r e c h e n d M a r k s g e s e t z t . I s t M a r k s v o m T y p T M a r k s , s o w e r d e n d i e b e i G E T M A R K S g e s p e i c h e r t e n M a r k i e r u n g e n z u r c k g e s c h r i e b e n , I s t M a r k s v o m T y p R E A L [ ] , s o e n t s p r e c h e n d i e W e r t e v o n M a r k s [ ] d e n S a t z n u m m e r n , d i e m a r k i e r t w e r d e n : V A R i , x : I N T E G E R W H I L E x : = M a r k s [ x ] D O S e t M a r k ( D B , x ) ; i + + E N D A c h t u n g : D e r e r s t e F e l d i n d e x i s t h i e r 0 . I s t M a r k s v o m T y p T B I T S [ ] , s o w i r d x m a r k i e r t , w e n n M a r k s [ x ] d e n W e r t 1 h a t : V A R i : I N T E G E R W H I L E i + + < = F i l e S i z e ( D B ) D O I F M a r k s [ i ] T H E N S e t M a r k ( D B , i ) E N D E N D
Syntax: STR(x : REAL [;s : INTEGER[;n : INTEGER[;t : STRING[;f : STRING[;k : STRING]]]]]] : STRING

x : b e l i e b i g e r R E A L - A u s d r u c k < b r > s : A n z a h l Z e i c h e n , m i t d e n e n x m i n d e s t e n s a u s g e g e b e n w i r d ( l i n k s a u f g e f l l t m i t L e e r e i c h e n ) < b r > n : A n z a h l N a c h k o m m a s t e l l e n ( V o r g a b e 0 ) < b r > t : Z e i c h e n f r T a u s e n d e r t r e n n u n g ( V o r g a b e k e i n e s ) < b r > f : l i n k e s F l l z e i c h e n ( s t a t t L e e r z e i c h e n ) < b r > k : K o m m a - Z e i c h e n ( V o r g a b e ' . ' )
Z a h l i n S t r i n g k o n v e r t i e r e n
Z a h l a l s S t r i n g
Z a h l / S t r i n g - K o n v e r t i e r u n g < b r > < b r > U m e i n e Z a h l i n e i n e Z e i c h e n e t t e z u k o n v e r t i e r e n , g i b t e s d i e F u n k t i o n S T R < b r > < b r > S T R ( x ) Z a h l a l s Z e i c h e n k e t t e ( a u f g a n z e Z a h l g e r u n d e t ) < b r > S T R ( x , s ) W i e o b e n , a b e r m i t i n s g e s a m t s Z e i c h e n < b r > S T R ( x , s , n ) W i e z u v o r a b e r m i t n N a c h k o m m a s t e l l e n < b r > S T R ( x , s , n , t ) W i e z u v o r u n d m i t T a u s e n d e r t r e n n u n g z e i c h e n t < b r > S T R ( x , s , n , t , f ) W i e z u v o r , a b e r l i n k e L e e r s t e l l e n w e r d e n d u r c h d a s F l l z e i c h e n f e r s e t z t < b r > S T R ( x , s , n , t , f , k ) W i e o b e n , a b e r s t a t t D e z i m a l k o m m a w i r d d a s Z e i c h e n k e i n g e s e t z t < b r > < b r > B e i s p i e l e : < b r > < p r e > < b r > S T R ( 1 2 3 . 4 5 6 ) " 1 2 3 " < b r > S T R ( 1 2 3 . 4 5 6 , 1 0 ) " 1 2 3 " < b r > S T R ( 1 2 3 . 4 5 6 , 1 0 , 2 ) " 1 2 3 , 4 6 " < b r > S T R ( 1 2 3 4 5 6 , 1 , 0 , ' . ' ) " 1 2 3 . 4 5 6 " < b r > S T R ( 1 2 3 4 5 6 , 1 , 2 , ' . ' ) " 1 2 3 . 4 5 6 , 0 0 " < b r > S T R ( 1 2 3 4 5 6 , 1 3 , 2 , ' ' , ' _ ' , ' . ' ) " _ _ _ 1 2 3 4 5 6 . 0 0 " < / p r e >
Syntax: RANDOM(n : INTEGER) : INTEGER

n : p o s i t i v e g a n z e Z a h l
Z u f a l l s z a h l
Z u f a l l s z a h l a u s d e m B e r e i c h 0 b i s n - 1
D e r Z u f a l l s g e n e r a t o r d e r t d b e n g i n e l i e f e r t s t a t i s t i s c h r e c h t g u t g l e i c h v e r t e i l t e g a n z e Z a h l e n . < b r / > < b r > D i e I n i t i a l i s i e r u n g e r f o l g t m i t S y s t e m w e r t e n w i e z . B . d e r U h r z e i t ( S y s t e m z e i t ) . < b r / > < b r > D e s h a l b i s t d i e R e i h e n f o l g e d e r Z u f a l l s z a h l e n i n d e r R e g e l n i c h t r e p r o d u z i e r b a r .
Syntax: READ(t : INTEGER[; n : INTEGER | c : CHAR]) : STRING

t : T e x t h a n d l e v o n R E S E T < b r > n : 1 b i s 2 5 5 ( A n z a h l d e r z u l e s e n d e n Z e i c h e n ) < b r > c : b e l i e g i g e s Z e i c h e n < b r > < b r > I s t n u n d c n i c h t a n g e g e b e n , s o g i l t n = 1 a l s V o r g a b e w e r t . < b r > < b r >
L i e s t e i n e n S t r i n g a u s e i n e r T e x t d a t e i
S t r i n g m i t n Z e i c h e n a u s T e x t d a t e i , f a l l s c n i c h t a n g e g e b e n . A n d e r n f a l l s m a x i m a l 2 5 5 Z e i c h e n a u s d e r T e x t d a t e i , b i s d a s Z e i c h e n c g e l e s e n w u r d e . D i e s e s Z e i c h e n w i r d n i c h t g e l i e f e r t .
D i e T e x t d a t e i m u s s m i t R E S E T z u m L e s e n g e f f n e t w o r d e n s e i n . B e i s p i e l : K o m p l e t t e A u s g a b e e i n e r T e x t d a t e i : < p r e > V A R t : I N T E G E R < b r > V A R c : S T R I N G < b r > S e t P a r a ( ' e c 1 ' ) / / I O - F e h l e r b e h a n d l u n g < b r > I F t : = r e s e t ( ' / h o m e / t d b e n g i n e / d o c / i n d e x . h t m l ' , 0 ) < b r > T H E N < b r > W H I L E N O T E O T ( t ) D O C g i W r i t e ( R E A D ( t ) ) E N D < b r > C l o s e ( t ) < b r > E L S E < b r > C g i W r i t e H t m l ( ' D a t e i k a n n n i c h t g e f f n e t w e r d e n . ' ) < b r > E N D < b r > < / p r e > W i c h t i g : F a l l s t = 0 , s o w i r d v o n S t d I n g e l e s e n , w a s b e i C G I - A n w e n d u n g e n z u e i n e m " h n g e n d e n " P r o g r a m m f h r t !
Syntax: READLN(t : INTEGER) : STRING

t : T e x t h a n d l e v o n R E S E T
L i e s t e i n e Z e i l e a u s e i n e r T e x t d a t e i
n c h s t e Z e i l e a u s d e r T e x t d a t e i .
J e n a c h B e t r i e b s s y s t e m w i r d b i s z u m n c h s t e n Z e i l e n e n d e g e l e s e n . < b r > < b r > E i n Z e i l e n e n d e i s t d e f i n i e r t a l s < b r > < b r > < b r > * C R L F ( W i n 3 2 ) < b r > * L F ( L i n u x , F r e e B S D ) / / C R w i r d h i e r i g n o r i e r t < b r > * E O T ( = ^ Z u n t e r W i n 3 2 , ^ D u n t e r L i n u x , F r e e B S D ) < b r > * p h y s i k a l i s c h e s D a t e i e n d e < b r > < b r > I n d e r d e r z e i t i g e n V e r s i o n k a n n e i n e Z e i l e m a x i m a l a u s 2 5 5 Z e i c h e n b e s t e h e n . < b r > < b r > A c h t u n g : W e n n d i e T e x t d a t e i i m A N S I - F o r m a t g e s p e i c h e r t i s t , m u s s s i e m i t r e s e t ( . . . , 0 ) g e f f n e t w e r d e n .
Syntax: READMEMO(DB : INTEGER; Feld; Textdatei : STRING [; Mode : INTEGER [; Charset : INTEGER]]) : INTEGER

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > F e l d : F e l d n u m m e r o d e r F e l d b e z e i c h n e r ( a l s S t r i n g ) < b r > T e x t d a t e i : P f a d z u r T e x t d a t e i < b r > M o d e : 0 T e x t d a t e i w i r d a n M e m o a n g e h n g t ( d e f a u l t ) < b r > 1 T e x t d a t e i e r s e t z t b e s t e h e n d e n M e m o < b r > C h a r S e t : 0 A N S I ( d e f a u l t ) < b r > 1 A S C I I < b r >
L i e s t M e m o a u s T e x t d a t e i
0 : O p e r a t i o n e r f o l g r e i c h < b r > s o n s t F e h l e r c o d e
B e i d e r e i n z u l e s e n d e n T e x t d a t e i k a n n e s s i c h u m e i n e n i n t e r n e n ( R a m t e x t ) o d e r e i n e n e x t e r n e n T e x t h a n d e l n . < b r / > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > W i c h t i g : R e a d M e m o ( ) k a n n n u r a u f b e s t e h e n d e D a t e n s t z e a n g e w a n d t w e r d e n , d e r S a t z z e i g e r m u s s a l s o e i n e n W e r t > 0 h a b e n . < / s p a n > < b r / > < b r / > < b r > B e i d e r A u s f h r u n g v o n R e a d M e m o ( ) w i r d z u n c h s t d i e T e x t d a t e i i n d i e M e m o d a t e i b e r t r a g e n . < b r / > < b r > D a n n w i r d d i e R e f e r e n z ( i n d i e M e m o d a t e i ) i n d a s e n t s p r e c h e n d e D a t e n f e l d b e r t r a g e n u n d s c h l i e l i c h d e r D a t e n s a t z i n d i e T a b e l l e z u r c k g e s c h r i e b e n . < b r / > < b r > D i e s e T r a n s a k t i o n s o l l t e n i e m a l s o h n e D a t e i s p e r r e a u s g e f h r t w e r d e n . < b r / > < b r > W e n n m a n e i n M e m o f e l d i n e i n e n n e u e n D a t e n s a t z e i n l e s e n w i l l , m u s s d i e s e r < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > v o r ( ! ) < / s p a n > d e m A u f r u f v o n R e a d M e m o ( ) i n d i e T a b e l l e g e s c h r i e b e n w e r d e n : < b r / > < b r / > < b r > H i n w e i s : D e r I n h a l t e i n e s F o r m u l a r f e l d e s ( H T M L ) , d e s s e n N a m e m i t " t e x t : . . . " b e g i n n t , w i r d i n e i n e m R a m t e x t m i t d e m N a m e n " r a m t e x t : t e x t : . . . " b e r e i t g e s t e l l t . D e r Z e i c h e n s a t z i n d i e s e m R a m t e x t i s t A S C I I .
Syntax: READREC(DB : INTEGER; recno : INTEGER) : INTEGER

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > r e c n o : p h y s i k a l i s c h e S a t z n u m m e r ( P o s i t i o n )
L i e s t e i n e n D a t e n s a t z
r e c n o
J e d e g e f f n e t e T a b e l l e v e r f g t b e r e i n e n P u f f e r f r g e n a u e i n e n D a t e n s t z d i e s e r T a b e l l e . < b r > < b r > M i t R E A D R E C w i r d e i n D a t e n s a t z a u s d e r T a b e l l e ( d i e i m m e r a u f e i n e m e x t e r n e n D a t e n t r g e r v o r l i e g t ) i n d e n S a t z p u f f e r b e r t r a g e n
Syntax: RECHTS(S : STRING; n : INTEGER) : STRING

S : b e l i e b i g e Z e i c h e n k e t t e < b r > n : 1 . . L E N G T H ( S )
L i e f e r t r e c h t e n T e i l s t r i n g , v e r a l t e t
D i e n - l e t z t e n Z e i c h e n v o n S .
I s t n = 0 , s o w i r d e i n L e e r s t r i n g z u r c k g e l i e f e r t . < b r > I s t n > = l e n g t h ( S ) , s o w i r d S z u r c k g e l i e f e r t .
Syntax: RECNO(DB : INTEGER) : INTEGER

D B : T a b e l o l e n h a n d l e v o n O P E N D B
P h y s i k a l i c h e S a t z n u m m e r d e s a k t u e l l e n D a t e n s a t z e s
P h y s i k a l i s c h e N u m m e r d e s a k t u e l l e n D a t e n s a t z e s
D i e t d b e n g i n e a r b e i t e t m i t e i n e m S a t z p u f f e r p r o T a b e l l e . D i e b e r t r a g u n g z w i s c h e n T a b e l l e u n d S a t z p u f f e r g e s c h i e h t m i t d e n F u n k t i o n e n R E A D R E C u n d W R I T E R E C , d i e b e i d e e i n e p h y s i k a l i s c h e S a t z n u m e r ( d i e P o s i t i o n i n n e r h a l b d e r T a b e l l e ) a l s P a r a m e t e r h a b e n . N u r m i t d i e s e n b e i d e n F u n k t i o n e n w i r d d i e S a t z n u m m e r d e s P u f f e r s d i r e k t g e s e t z t , d i e d a n n m i t R E C O g e l i e f e r t w i r d . < b r > < b r > N a c h d e m f f n e n e i n e n n i c h t l e e r e n T a b e l l e g i l t R E C N O ( D B ) = 1 < b r > < b r > B e i m L s c h e n e i n e s D a t e n s a t z e s m i t D E L R E C w i r d a u f d e m n c h s t e n ( b z g l . d e s a k t u e l l e n Z u g r i f f e s ) D a t e n s a t z p o s i t i o n i e r t . E n t s r e c h e n d l i e f e r t R E C O N d a n n d i e e n t s p r e c h e n d e S a t z n u m m e r .
Syntax: RECNR(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
N u m m e r d e s a k t u e l l e n D a t e n s a t z e s e i n e r T a b e l l e ( v e r a l t e t )
p h y s i k a l i s c h e N u m m e r d e s a k t u e l l e n D a t e n s a t z e s
D i e p h y s i k a l i s c h e S a t z n u m m e r w i r d b e i s p i e l s w e i s e d u r c h R E A D R E C ( d b , x ) a u f d e n W e r t x g e s e t z t . < b r > < b r > M a r k i e r u n g e n u n d I n d i z e s l i e f e r n l e t z t l i c h i m m e r p h y s i k a l i s c h e S a t z n u m m e r n .
Syntax: REGENALL(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
R e g e n e r i e r t s m t l i c h e I n d i z e s e i n e r T a b e l l e
F e h l e r c o d e , < b r > < b r > 0 = e r f o l g r e i c h e A u s f h r u n g
D i e I n d i z e s e i n e r T a b e l l e w e r d e n b e i d e r t d b e n g i n e i m m e r d y n a m i s c h m i t g e f h r t . A l l e r d i n g s k a n n s e h r h u f i g e s L s c h e n v o n D a t e n s t z e n d a z u f h r e n , d a s s e i n I n d e x m e h r P l a t z b e l e g t a l s e i g e n t l i c h b e n t i g t w r d e . I n e i n e m s o l c h e n F a l l k a n n d i e R e g e n e r a t i o n d e r I n d i z e s s o w o h l d i e S p e i c h e r b e l e g u n g a l s a u c h d a s Z u g r i f f s v e r h a l t e n g n s t i g b e e i n f l u s s e n .
Syntax: REGENIND(db : INTEGER; indexno : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B < b r > i n d e x n o : N u m m e r d e r z u r e g e n e r i e r e n d e n I n d e x
R e g e n e r i e r t d e n I n d e x e i n e r T a b e l l e
F e h l e r c o d e < b r > < b r > 0 = I n d e x e r f o l g r e i c h r e g e n e r i e r t
D i e I n d i z e s e i n e r T a b e l l e w e r d e n b e i d e r t d b e n g i n e i m m e r d y n a m i s c h m i t g e f h r t . A l l e r d i n g s k a n n s e h r h u f i g e s L s c h e n v o n D a t e n s t z e n d a z u f h r e n , d a s s e i n I n d e x m e h r P l a t z b e l e g t a l s e i g e n t l i c h b e n t i g t w r d e . I n e i n e m s o l c h e n F a l l k a n n d i e R e g e n e r a t i o n d e s I n d e x s o w o h l d i e S p e i c h e r b e l e g u n g a l s a u c h d a s Z u g r i f f s v e r h a l t e n g n s t i g b e e i n f l u s s e n . < b r > < b r > E i n F e h l e r k a n n a u f r e t e n , w e n n d i e T a b e l l e n i c h t m i t d e m R e c h t z u m I n d i z i e r e n g e f f n e t w u r d e .
Syntax: SIN(x : REAL) : REAL

x : R E A L ( W i n k e l i m B o g e n m a )
S i n u s
S i n u s v o n x
Syntax: REMDIR(path : STRING) : INTEGER

p a t h : z u l s c h e n d e s V e r z e i c h n i s
L s c h t e i n ( l e e r e s ) V e r z e i c h n i s
F e h l e r c o d e d e s B e t r i e b s s y s t e m s , < b r > 0 = V e r z e i c h n i s w u r d e g e l s c h t
F o l g e n d e V o r a u s s e t z u n g e n m s s e n e r f l l t s e i n , d a m i t e i n V e r z e i c h n i s e r f o l g r e i c h g e l s c h t w e r d e n k a n n : < b r > < b r > D a s V e r z e i c h n i s m u s s l e e r s e i n , d a r f a l s o k e i n e e i n z i g e D a t e i e n t h a l t e n . < b r > D a s P r o g r a m m m u s s d a s R e c h t z u m L s c h e n d e s V e r z e i c h n i s s e s h a b e n .
Syntax: RENAME(oldname,newname : STRING) : INTEGER

o l d n a m e : P f a d z u r u m z u b e n e n n e n d e n D a t e i < b r > n e w n a m e : n e u e r N a m e
G i b t e i n e r D a t e i e i n e n n e u e n N a m e n
1 = D a t e i w u r d e u m b e n a n n t < b r > F e h l e r c o d e d e s B e t r i e b s s y s t e m s < b r > < b r >
W e n n e i n e D a t e i n i c h t u m b e n a n n t w e r d e n k o n n t e , k n n e n e i n e R e i h e v o n G r n d e n d a f r v o r l i e g e n : & n b s p ; & n b s p ; D i e D a t e i e x i s t i e r t n i c h t ( m e h r ) , < b r > s i e i s t ( e v e n t u e l l v o n e i n e m a n d e r e n A n w e n d e r ) g e f f n e t , < b r > e s f e h l e n d i e n t i g e n A u s f h r u n g s r e c h t e , < b r > d e r n e u e N a m e e n t h l t i l l e g a l e Z e i c h e n . . . < b r >
Syntax: RENDB(path, password : STRING; code : INTEGER; newname : STRING) : INTEGER

p a t h : P f a d z u r T a b e l l e < b r > p a s s w o r d : P a s s w o r t z u m f f n e n d e r T a b e l l e < b r > c o d e : V e r s c h l s s e l u n g s c o d e < b r > n e w n a m e : n e u e r T a b e l l e n n a m e ( o h n e V e r z e i c h n i s )
G i b t e i n e r T a b e l l e e i n e n n e u e n D a t e i n a m e n < b r / > W i c h t i g i s t , d a s s m a n v o r h e r i n d a s V e r z e i c h n i s w e c h s e l t , i n d e m d i e Q u e l l d a t e i s t e h t . < b r / > B e i s p i e l : < b r / > < i > C h D i r ( " . . / d a t a b a s e " ) < b r / > R e n D B ( " b a s e m a n . d a t " , " " , 0 , " o l d _ b a s e m a n . d a t " ) < b r / > < / i > < b r / > W e n n m a n d e n V e r z e i c h n i s w e c h s e l n i c h t m a c h t , s o n d e r n w i e f o l g t v e r s u c h t : < b r / > < i > R e n D B ( " . . / d a t a b a s e / b a s e m a n . d a t " , " " , 0 , " o l d _ b a s e m a n . d a t " ) < b r / > < / i > s o e r h l t m a n d e n F e h l e r c o d e = 3 5 < i > . < b r / > < / i > < i > < b r / > < / i >
F e h l e r c o d e , < b r > < b r > 0 : T a b e l l e w u r d e u m b e n a n n t
E i n e T a b e l l e s o l l t e n i e m a l s m i t R E N A M E u m b e n a n n t w e r d e n . S i e k n n t e d a n n i n d e n m e i s t e n F l l e n n i c h t m e h r g e f f n e t w e r d e n , w e i l b e i s p i e l s w e i s e M E M O - o d e r B L O B - D a t e i e n v o n d e r N a m e n s n d e r u n g n i c h t m i t b e k o m m e n . < b r > < b r > N o c h s c h w e r w i e g e n d e r i s t d i e f e h l e r n d e U m b e n e n n u n g e n d e r I n d i z e s .
Syntax: RESET(path : STRING [; mode : INTEGER]) : INTEGER

p a t h : P f a d z u r T e x t d a t e i < b r > m o d e : 0 - > A N S I < b r > 1 - > A S C I I ( V o r g a b e ) < b r > < b r > W e n n P f a d m i t " r a m t e x t : . . . " b e g i n n t , w i r d e i n R a m t e x t g e f f n e t
f f n e t e i n e T e x t d a t e i z u m l e s e n
H a n d l e f r d i e T e x t d a t e i , w e n n v o r h a n d e n , a n d e r n f a l l s 0
F a l l s d i e F e h l e r b e h a n d l u n g d e s S y s t e m s n i c h t e x p l i z i t m i t S e t P a r a ( " e c 1 " ) a u s g e s c h a l t e t w u r d e , b r i c h t d a s P r o g r a m m a b , w e n n d i e a n g e f o r d e r t e D a t e i n i c h t g e f f n e t w e r d e n k a n n . < b r / > < b r > < b r / > < b r > I n n e u e r e n A p p l i k a t i o n s o l l t e d e r P a r a m a t e r < s p a n s t y l e = " f o n t - s t y l e : i t a l i c ; " > m o d e < / s p a n > i m m e r a n g e g e b e n w e r d e n , d a b a l d a u f d e n D e f a u l t w e r t 0 ( T e x t l i e g t i m A N S I - Z e i c h n e s a t z v o r ) u m g e s c h a l t e t w i r d . < b r / > < b r > < b r / > < b r > N a c h S e t P a r a ( " e c 1 " ) i s t d a s E r g e b n i s 0 , w e n n e i n s o l c h e r F e h l e r a u f t r i t t , u n d d e r F e h l e r c o d e k a n n m i t T D B _ L A S T E R R O R a b g e f r a g t w e r d e n . < b r / > < b r > < b r / > < b r > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > A c h t u n g : L e s e n S i e n i e a u s T e x t h a n d l e 0 , d a d i e s e r d i e K o n s o l e a n s p r i c h t u n d u n t e r C G I - B e d i n g u n g e n d a z u f h r t , d a s s d a s P r o g r a m m h n g e n b l e i b t ( = a u f e i n e E i n g a b e w a r t e t ) ! < / s p a n > < b r > < b r / > < b r > < b r / > < b r > r e s e t ( " r a m t e x t : . . . " ) l i e f e r t e i n e n L a u f z e i t f e h l e r ( 1 ) , w e n n d e r R a m t e x t b e r e i t s z u m S c h r e i b e n g e f f n e t i s t .
Syntax: REVMARKS(db : INTEGER) : INTEGER

d b : T a b e l l e n h a n d l e v o n O P E N D B
D r e h t d i e O r d n u n g d e r M a r k i e r u n g s l i s t e e i n e r T a b e l l e u m
A n z a h l d e r E l e m e n t e i n d e r M a r k i e r u n g s l i s t e .
Syntax: REWRITE(path : STRING [;mode : INTEGER]) : INTEGER

p a t h : P f a d z u r T e x t d a t e i < b r > m o d e : 0 = A N S I , 1 = A S C I I ( V o r g a b e ) < b r > < b r > w e n n p a t h m i t " r a m t e x t : . . . " b e g i n n t , w i r d e i n e n t s p r e c h e n d e r R a m t e x t g e f f n e t .
f f n e t e i n e n T e x t z u m S c h r e i b e n
T e x t h a n d l e f r d i e D a t e i < b r > < b r >
F a l l s d i e F e h l e r h a n d l u n g d e s S y s t e m s n i c h t e x p l i z i t a u s g e s c h a l t e t w u r d e ( . e c 1 ) , b r i c h t d a s P r o g r a m m a b , w e n n d i e a n g e f o r d e r t e D a t e i n i c h t g e f f n e t w e r d e n k a n n . < b r / > < b r > r e w r i t e ( " r a m t e x t : . . . " ) l i e f e r t e i n e n L a u f z e i t f e h l e r ( 1 ) , w e n n d e r R a m t e x t b e r e i t s z u m L e s e n g e f f n e t i s t . < b r / > < b r / > < b r > W e n n S i e m i t R e w r i t e ( ) e i n e n n e u e n R a m t e x t a n l e g e n m c h t e n , d a n n s o l l t e n S i e z u v o r d i e F u n k t i o n R a m t e x t ( ) a u s f h r e n , u m d i e s e n z u i n i t i a l i s i e r e n . < b r / >
Syntax: RIGHTSTR(Zeichenkette: STRING; Zahl: INTEGER): STRING

Z e i c h e n k e t t e : b e l i e b i g e r S t r i n g < b r > Z a h l : A n z a h l d e r g e w n s c h t e n Z e i c h e n
L i e f e r t d e n r e c h t e n T e i l e i n e r Z e i c h e n k e t t e
R e c h t e r T e i l d e s S t r i n g s . F a l l s m e h r Z e i c h e n a n g e f o r d e r t w e r d e n , a l s v o r h a n d e n s i n d , w i r d d e r g e s a m t e S t r i n g z u r c k g e g e b e n .
L i e f e r t d e n r e c h t e n T e i l e i n e r Z e i c h e n k e t t e . D i e A n z a h l d e r Z e i c h e n w i r d d u r c h Z a h l b e s t i m m t . S o l l e n m e h r Z e i c h e n a l s v o r h a n d e n a b g e t r e n n t w e r d e n , w i r d d e r A u s g a n g s s t r i n g z u r c k g e l i e f e r t . < b r > B e i s p i e l < b r > < p r e > < b r > R i g h t S t r ( " H a n s H u b e r " , 5 ) - > " H u b e r " < b r > R i g h t S t r ( " H a n s H u b e r " , 1 0 0 ) - > " H a n s H u b e r " < b r > R i g h t S t r ( " H a n s H u b e r , 1 ) - > " r " < b r > < / p r e >
Syntax: SUBPATH(String1, String2: String): String

S t r i n g 1 , S t r i n g 2 : b e l i e b i g e r S t r i n g
S t r i n g 1 o h n e S t r i n g 2
D i e F u n k t i o n l i e f e r t d e n r e c h t e n T e i l s t t r i n g v o n S t r i n g 1 , w e n n m a n d i e g l e i c h e n Z e i c h e n b z g l . S t r i n g 2 e n t f e r n t . < b r >
B e i s p i e l : < b r > < b r > S u b P a t h ( " H a n s M l l e r " , " H a n s M " ) > " l l e r " < b r > < b r >
Syntax: ROUND(x : REAL; n : INTEGER) : REAL

x : z u r u n d e n d e Z a h l < b r > n : g e w n s c h t e S t e l l e n z a h l
R u n d e t e i n e Z a h l k a u f m n n i s c h a u f n S t e l l e n h i n t e r d e m K o m m a
x n a c h d e r k a u f m n n i s c h e n R u n d u n g a u f n S t e l l e n n a c h d e m K o m m a
R u n d e t d i e a n g e g e b e n e n Z a h l a u f e i n e b e s t i m m t Z a h l a n N a c h k o m m a s t e l l e n . < b r > B e i s p i e l < b r > < p r e > < b r > F u n k t i o n E r g e b n i s < b r > < b r > R o u n d ( 1 0 0 . 2 3 4 5 6 7 , 1 ) 1 0 0 . 2 < b r > R o u n d ( 3 . 1 4 1 5 9 , 3 ) 3 . 1 4 2 < b r > R o u n d ( 0 . 5 , 1 ) 1 . 0 < b r > < / p r e >
Syntax: RTRIM(s : STRING) : STRING

s : b e l i e b i g e Z e i c h e n k e t t e
E n t f e r n t r e c h t e L e e r z e i c h e n
s o h n e r e c h t e L e e r z e i c h e n
B e i s p i e l : < b r > < b r > < p r e > < b r > P R O C E D U R E T r i m A l l ( s : S T R I N G ) : S T R I N G < b r > R E T U R N L T R I M ( R T R I M ( s ) ) < b r > E N D P R O C < b r > < / p r e >
Syntax: VARNAME(VAR x) : STRING

x : b e l i e b i g e E A S Y - V a r i a b l e
L i e f e r t d e n D e k l a r a t i o n s n a m e n e i n e r V a r i a b l e n
N a m e d e r V a r i a b l e n
B e i s p i e l : < b r > < p r e > < b r > V A R a d r e s s e : S T R I N G < b r > V A R g e h a l t : R E A L < b r > . . . < b r > V a r N a m e ( a d r e s s e ) - > ' a d r e s s e ' < b r > V a r N a m e ( g e h a l t ) - > ' g e h a l t ' < b r > < / p r e > < b r > B e i W e r t p a r a m e t e r n w i r d i m m e r d e r P a r a m e t e r n a m e z u r c k g e l i e f e r t < b r > < p r e > < b r > P R O C E D U R E P a r a m e t e r T e s t ( x : R E A L ) : S T R I N G < b r > R E T U R N V a r N a m e ( x ) < b r > E N D P R O C < b r > < b r > P a r a m e t e r T e s t ( g e h a l t ) - > ' x ' < b r > < / p r e > < b r > < b r > B e i R e f e r e n z p a r a m t e r n w i r d h i n g e g e n d e r N a m e d e r V a r i a b l e n i m A u f r u f z u r c k g e l i e f e r t : < b r > < p r e > < b r > P R O C E D U R E P a r a m e t e r T e s t ( V A R x : R E A L ) : S T R I N G < b r > R E T U R N V a r N a m e ( x ) < b r > E N D P R O C < b r > < b r > P a r a m e t e r T e s t ( g e h a l t ) - > ' g e h a l t ' < b r > < / p r e >
Syntax: TESTBIT(x,n : INTEGER) : INTEGER

x : g a n z e Z a h l e < b r > n : 0 . . 3 1 ( i n 3 2 - B i t - V e r s i o n ) < b r > 0 . . 6 3 ( i n 6 4 - B i t - V e r s i o n )
T e s t e t , o b e i n B i t g e s e t z t i s t
1 , w e n n d a s B i t n g e s e t z t i s t < b r > 0 , w e n n d a s B i t n n i c h t g e s e t z t i s t
F r n g i l t : < b r > < b r > 0 - > n i e d e r w e r t i g s t e s B i t < b r > 3 1 ( b z w . 6 3 ) - > h c h s t w e r t i g e B i t < b r > < b r > T E S T B I T ( 2 5 5 , 0 ) = 1 < b r > T E S T B I T ( 2 5 6 , 0 ) = 0
Syntax: SCAN(subststr, stri : STRING) : INTEGER

s u b s t s t r , s t r : b e l i e b i g e Z e i c h e n k e t t e n
Z h l t d i e V o r k o m m e n e i n e s T e i l s t r i n g s
A n z a h l d e r V o r k o m m e n v o n s u b s t r i n s t r .
B e i s p i e l : < b r > < b r > S C A N ( ' e ' , ' M e i e r ' ) = 2
Syntax: siehe SCANRECS

s i e h e S C A N R E C S
E n t f e r n t d e n a k t u e l l e n D a t e n s a t z a u s d e m V o l l t e x t i n d e x
s i e h e S C A N R E C S
D e r a k t u e l l e D a t e n s a t z w i r d a u s e i n e n b e s t e h e n d e n V o l l t e x t i n d e x e n t f e r n t . < b r > < b r > B e i m L s c h e n e i n e s D a t e n s a t z e s a u s e i n e r T a b e l l e g e n g t e s n i c h t , d e n S a t z a u s d e m V o l l t e x t z u l s c h e n , d e n n d i e t d b e n g i n e k o p i e r t b e i m L s c h e n e i n e s S a t z e s d e n b i s h e r l e t z t e n S a t z d e r T a b e l l e a n d e n z u l s c h e n d e n u n d v e r k r z t d i e T a b e l l e u m e i n e n E i n t r a g . < b r > < b r > H i e r e i n e L s u n g : < b r > < p r e > < b r > P R O C E D U R E D e l R e c W i t h F u l l T e x t ( T h e T a b l e H d l , T h e R e c N o : I N T E G E R ) < b r > / / a u f g e w n s c h t e m D a t e n s a t z p o s i t i o n i e r e n < b r > R e a d r e c ( T h e T a b l e H d l , T h e R e c N o ) < b r > / / V o l l t e x t i n d e x f r d i e s e n S a t z l s c h e n < b r > U n S c a n R e c ( . . . ) < b r > I F T h e R e c N o < F i l e S i z e ( T h e T a b l e H d l ) T H E N < b r > / / a u f l e t z t e m D a t e n s a t z p o s i t i o n i e r e n < b r > R e a d R e c ( T h e T a b l e H d l , F i l e S i z e ( T h e T a b l e H d l ) ) ; < b r > / / V o l l t e x t i n d e x f r d e n l e t z t e n S a t z l s c h e n < b r > U n S c a n R e c ( . . . ) ; < b r > / / L e t z t e r S a t z w i r d h i e r h e r v e r s c h o b e n < b r > D e l R e c ( T h e T a b l e H a n d l e , T h e R e c N o ) ; < b r > / / u n d w i r d n e u V o l l t e x t - i n d i z i e r t < b r > S c a n R e c ( . . . ) < b r > E L S E D e l R e c ( T h e T a b l e H d l , T h e R e c N o ) < b r > E N D < b r > E N D P R O C < / p r e >
Syntax: ScanRecs(D, I, R, Fields(Felder), ExtABC, Cut, Kontraindex, Modus, Step, MaskenFeld, DynKontraIndex) : INTEGER

A l l e P a r a m e t e r m i t A u s n a h m e d e r e r s t e n v i e r s i n d o p t i o n a l ! < b r > < b r > D T a b e l l e n n u m m e r d e r A u s g a n g s t a b e l l e < b r > < b r > I T a b e l l e n n u m m e r d e r S t i c h w o r t t a b e l l e < b r > < b r > R T a b e l l e n n u m m e r d e r R e l a t i o n s t a b e l l e < b r > < b r > < b r > F i e l d s i s t i s t e i n e S p e z i a l f u n k t i o n , b e r d i e d i e I n f o r m a t i o n , w e l c h e F e l d e r i n d e n V o l l t e x t i n d e x a u f g e n o m m e n w e r d e n , a n d i e F u n k t i o n b e r g e b e n w e r d e n . D i e F e l d k o m b i n a t i o n k a n n s o w o h l s t a t i s c h a l s a u c h d y n a m i s c h e r f o l g e n . I m F a l l e d e r C G I - P r o g r a m m i e r u n g i s t n u r d i e d y n a m i s c h e V e r s i o n m g l i c h , w e i l h i e r j a z u r b e r s e t z z e i t k e i n e T a b e l l e n g e f f n e t s i n d . < b r > < b r > S t a t i s c h e V e r s i o n : F i e l d s ( F e l d 1 , F e l d 2 , F e l d 3 . . . ) < b r > D y n a m i s c h e V e r s i o n : F i e l d s ( " F e l d 1 , F e l d 2 , F e l d 3 . . . " ) < b r > < b r > E s s i n d a l l e F e l d e r d e r T a b e l l e ( m i t A u s n a h m e v o n B l o b s ) z u g e l a s s e n . D a t u m s - , Z e i t - u n d Z a h l e n f e l d e r w e r d e n i n Z e i c h e n k e t t e n u m g e w a n d e l t . B e i A u s w a h l f e l d e r n w i r d d i e e n t s p r e c h e n d e T e x t k o n s t a n t e i n d e n V o l l t e x t b e r n o m m e n . < b r > < b r > B e i S t r i n g - F e l d e r n ( Z e i c h e n k e t t e n ) g i b t e s e i n e w i c h t i g e A u s n a h m e : B e g i n n t e i n S t r i n g - F e l d m i t d e m " # " - Z e i c h e n , s o w i r d d e r R e s t d e r Z e i c h e n k e t t e a l s P f a d z u e i n e m e x t e r n e n T e x t d o k u m e n t i n t e r p r e t i e r t u n d d i e s e s i n d e n V o l l t e x t i n d e x a u f g e n o m m e n . D i e s e V e r s i o n d e r t d b e n g i n e u n t e r s t t z t e x t e r n e A S C I I , A N S I u n d H T M L - D o k u m e n t e . < b r > < b r > Z u s t z l i c h k n n e n d i e I n h a l t e A D L - v e r k n p f t e r D a t e n s t z e b e r d i e L - F e l d - N o t a t i o n u n d b e r d i e R - F e l d - N o t a t i o n i n d e n V o l l t e x t i n d e x a u f g e n o m m e n w e r d e n . < b r > < b r > < u > D i e o p t i o n a l e n P a r a m e t e r : < / u > < b r > < b r > < b > E x t A B C < / b > < b r > < b r > i s t e i n e Z e i c h e n k e t t e , d i e z u s t z l i c h z u d e n B u c h s t a b e n a l s W o r t b e s t a n d t e i l e g e l t e n s o l l e n . W e n n b e i s p i e l s w e i s e a u c h d i e P o s t l e i t z a h l i n d e n V o l l t e x t i n d e x a u f g e n o m m e n w e r d e n s o l l e n , s o m u h i e r " 0 1 2 3 4 5 6 7 8 9 " s t e h e n . < b r > < b r > T i p : D e r B i n d e s t r i c h s o l l t e n i c h t a l s B e s t a n d t e i l e i n e s W o r t e s a u f g e n o m m e n w e r d e n ( a u e r i n S p e z i a l f l l e n ) , d e n n d a m i t w e r d e n d i e e i n z e l n e n B e s t a n d t e i l e e i n e s ( m i t B i n d e s t r i c h e n ) z u s a m m e n g e s t z t e n W o r t e s n i c h t m e h r ( s o e i n f a c h u n d s c h n e l l ) b e r d i e V o l l t e x t s u c h e a u f f i n d b a r . < b r > < b r > B e i d e n n c h s t e n b e i d e n P a r a m e t e r n g e h t e s u m d i e E i n s c h r n k u n g d e s V o l l t e x t i n d e x . I n v i e l e n F l l e n w i l l m a n n m l i c h i n f o r m a t i o n s a r m e W r t e r w i e " u n d " " d e r " u . a . n i c h t i n d e n V o l l t e x t i n d e x a u f n e h m e n . < b r > < b r > < b > C u t < / b > < b r > < b r > w i r d h i e r e i n W e r t g r e r 0 a n g e g e b e n , s o w e r d e n W r t e r , d i e f t e r a l s C u t v o r k o m m e n , n i c h t i n d e n V o l l t e x t i n d e x a u f g e n o m m e n . < b r > < b r > < b > K o n t r a i n d e x < / b > < b r > < b r > i s t d e r N a m e e i n e e x t e r n e n T e x t d a t e i , i n d e r j e n e m a x . 1 0 . 0 0 0 W r t e r e n t h a l t e n s i n d , d i e n i c h t i n d e n V o l l t e x t i n d e x a u f g e n o m m e n w e r d e n . D a b e i s t e h t j e d e s W o r t i n e i n e r e i g e n e n Z e i l e , e i n e S o r t i e r u n g i s t n i c h t n o t w e n d i g . < b r > < b r > D e r n c h s t e P a r a m e t e r d e f i n i e r t d a s g r u n d s t z l i c h e V e r h a l t e n d e r t d b e n g i n e b e i A u f b a u u d e s V o l l t e x t i n d e x . D i e e i n z e l n e n M o d i w e r d e n e i n f a c h a d d i e r t : < b r > < b r > < b > M o d u s < / b > < b r > < t a b l e > < b r > < t r > < t d > 0 < t d > D i e S t i c h w o r t t a b e l l e w i r d n e u e r s t e l l t ; w i r d b e i " c o m p l e t e " z u 4 < b r > < t r > < t d > 1 < t d > E i n e b e s t e h e n d e S t i c h w o r t t a b e l l e w i r d v e r w e n d e t u n d n u r n e u e W r t e r e i n g e t r a g e n < b r > < t r > < t d > 2 < t d > E i n e b e s t e h e n d e S t i c h w o r t t a b e l l e w i r d v e r w e n d e t , a b e r k e i n e n e u n e n W r t e r a u f g e n o m m e n < b r > < t r > < t d > 4 * ) < t d > E s w e r d e n n u r d i e u n b e d i n g t b e n t i g t e n D a t e i e n a n g e l e g t < b r > < t r > < t d > 8 < t d > H T M L - T a g s w e r d e n b e r l e s e n u n d H T M L - S o n d e r z e i c h e n n a c h A S C I I b e r s e t z t < b r > < t r > < t d > 1 6 < t d > r e s e r v i e r t < b r > < t r > < t d > 3 2 < t d > e x t e r n e T e x t e l i e g e n i m A S C I I - F o r m a t v o r ( a n d e r n f a l l s A N S I ) < b r > < t r > < t d > 6 4 < t d > S t r i n g - F e l d e r , d i e m i t " # " b e g i n n e n , w e r d e n a l s P f a d e z u e x t e r n e n D a t e i e n i n t e r p r e t i e r t , d i e d a n n i n d e n V o l l t e x t i n d e x a u f g e n o m m e n w e r d e n . B e i s p i e l : # / h o m e / h t m l / a r c h i v / 1 2 / i n d e x . h t m l < b r > < t r > < t d > 1 2 8 < t d > E s w e r d e n n u r S t r i n g - u n d M e m o - F e l d e r i n d i z i e r t , s o n s t n i x , a l s o k e i n e Z a h l e n - , Z e i t - , D a t u m s f e l d e r e t c . ( m e i s t s e h r s i n n v o l l b e i " c o m p l e t e " ! ) < b r > < t r > < t d > 2 5 6 < t d > E s w e r d e n n u r d i e m a r k i e r t e n D a t e n s t z e i n d e n V o l l t e x t i n d e x a u f g e n o m m e n < b r > < t r > < t d > 3 2 7 6 8 < t d > P s e u d o - 0 f r " c o m p l e t e " < b r > < / t a b l e > < b r > < b r > * ) D i e s e r M o d u s i s t n u r b e d i n g t k o m p a t i b e l z u m r e l a t i o n a l e n S y s t e m d e r t d b e n g i n e . E r i s t a b e r i m m e r d a n n m i t g r o e m V o r t e i l e i n z u s e t z e n , w e n n d e r Z u g r i f f a u f d i e S t i c h w o r t t a b e l l e u n d d i e R e l a t i o n s t a b e l l e a u s s c h l i e l i c h b e r d i e V o l l t e x t f u n k t i o n e n e r f o l g t . Z u d e m w i r d d e r b e n t i g t e S p e i c h e r p l a t z a u f w e i t w e n i g e r a l s 5 0 % r e d u z i e r t u n d d i e S u c h g e s c h w i n d i g k e i t s i g n i f i k a n t e r h h t . < b r > < b r > < b > S t e p < / b > < b r > < b r > D i e s e r P a r a m e t e r i s t n u r d a n n a u f e i n e n W e r t u n g l e i c h 0 z u s e t z e n , w e n n w i r k l i c h s e h r g r o e D a t e n m e n g e n b e a r b e i t e t w e r d e n . E s h a n d e l t s i c h d a b e i u m d e n S p e i c h e r p l a t z , d e n d i e t d b e n g i n e w h r e n d e s I n d i z i e r e n s v o m B e t r i e b s s y s t e m a n f o r d e r t . V i e l S p e i c h e r p l a t z b r i n g t i n d i e s e m F a l l e i n e e r h h t e B e a r b e i t u n g s g e s c h w i n d i g k e i t . A l l e r d i n g s k a n n e i n e z u h o h e S p e i c h e r a n f o r d e r u n g d a z u f h r e n , d a e i n T e i l d a v o n v o m B e t r i e b s s y s t e m a u s g e l a g e r t w i r d , w a s d a n n z u e i n e m m a s s i v e n P e r f o r m a n c e - E i n b r u c h f h r t ! A b e r a n g e n o m m e n , s i e h a b e n e i n 2 5 6 M b y t e - S y s t e m , a u f d e m n u r w e n i g e s p e i c h e r i n t e n s i v e P r o z e s s e l a u f e n s o k n n e n S i e b e i s p i e l s w e i s e h i e r d e n W e r t 1 0 0 0 0 0 0 0 0 ( = 1 0 0 M i l l i o n e n ) e i n g e b e n . < b r > < b r > T i p : V e r n d e r n S i e d i e s e n W e r t e r s t d a n n , w e n n d i e I n d i z i e r u n g s z e i t e n w i r k l i c h a u s d e m R a h m e n f a l l e n . < b r > < b r > < b > M a s k e n f e l d < / b > < b r > < b r > H i e r b e i h a n d e l t e s s i c h u m d i e N u m m e r e i n e s F e l d e s d e r A u s g a n g s d a t e i , d a s e i n e 1 6 - B i t - I n t e g e r z a h l s p e i c h e r t ( N U M B E R , 2 ) . D e r I n h a l t d i e s e s F e l d e s w i r d i n d e n V o l l t e x t i n d e x , g e n a u e r i n d i e R e l a t i o n s t a b e l l e ( n o c h g e n a u e r : i n d e n I N 2 d e r R e l a t i o n s t a b e l l e ) a u f g e n o m m e n u n d k a n n b e i d e r V o l l t e x t s u c h e b e r c k s i c h t i g t w e r d e n . E i n S o n d e r f a l l b e s t e h t , w e n n h i e r - 1 a n g e g e b e n w i r d , d e n n d a n n k n n e n d i e M a s k e n w e r t e d i r e k t ( d u r c h D o p p e l p u n k t a b g e t r e n n t ) i n d e r F e l d k o m b i n a t i o n b e i F i e l d s a n g e g e b e n w e r d e n . D i e A u s w e r t u n g b e i d e r V o l l t e x t s u c h e g e s c h i e h t d a n n d e r m a e n , d a h i e r e i n e Z a h l a n g e g e b e n w i r d u n d d i e s e m i t e i n e m b i n r e n A N D m i t d e r i m V o l l t e x t i n d e x g e s p e i c h e r t e n M a s k e v e r k n p f t w i r d . E s w e r d e n d a n n n u r s o l c h e V e r k n p f u n g e n g e f u n d e n , b e i d e n e n d a s b i n r e A N D e i n e n W e r t u n g l e i c h 0 e r g i b t . < b r > < b r > D a s k l i n g t k o m p l i z i e r t u n d i s t a u c h k o m p l i z i e r t , e r f f n e t a b e r s e h r s c h n e M g l i c h k e i t e n . D a z u e i n B e i s p i e l . A n g e n o m m e n S i e h a b e n e i n e A d r e d a t e n b a n k , i n d e r u n t e r s c h i e d l i c h e A r t e n v o n A d r e s s e n g e s p e i c h e r t s i n d : P r i v a t a d r e s s e n , F i r m e n a d r e s s e n , B e h r d e r n e t c . D i e A r t d e r A d r e s s e n s p e i c h e r n S i e a l s K e n n u n g i n e i n e m I n t e g e r - F e l d a b : < b r > < b r > < p r e > < b r > 1 P r i v a t < b r > 2 F i r m a < b r > 4 B e h r d e < b r > 8 w i s s e n s c h a f t l i c h e I n s t i t u t i o n < b r > . . . < b r > < / p r e > < b r > < b r > B e i A d r e s s e n , d i e i n m e h r e r e K a t h e g i o r i e n f a l l e n , a d d i e r e n S i e e i n f a c h d i e s e W e r t e . W e n n S i e n u n d i e F e l d n u m m e r d i e s e s F e l d e s b e i d e r V o l l t e x t i n d i z i e r u n g m i t a n g e b e n , s o k n n e n S i e b e r e i t s b e i d e r S u c h e j e d e b e l i e b i g e E i n s c h r n k u n g b e z g l i c h d e r K a t h e g o r i e n m a c h e n , o h n e d a h i e r z u e i n e i n z i g e r D a t e n s a t z g e l e s e n w e r d e n m u ! < b r > < b r > A l t e r n a t i v z u r A u s w e r t u n g e i n e s M a s k e n f e l d e s k n n e n S i e a u c h d i r e k t b e i F i e l d s M a s k e n z a h l e n v e r g e b e n . I n d i e s e m F a l l h a t d i e M a s k e n f e l d n u m m e r d e n W e r t - 1 , u n d d i e M a s k e n z a h l e n w e r d e n d i r e k t n a c h d e n F e l d n a m e n a n g e g e b e n . D a z u w i e d e r e i n B e i s p i e l : < b r > < b r > < p r e > < b r > S c a n R e c s ( D , I , R , F i e l d s ( " V o r n a m e : 1 , N a m e : 2 , < b r > S t r a s s e : 4 , L a n d : 8 , P L Z : 8 , O r t : 8 , < b r > B e m e r k u n g : 1 6 " ) , " " , 0 , " " , 0 , 0 , - 1 ) < b r > < / p r e > < b r > < b r > A u c h h i e r w i r d e i n V o l l t e x t i n d e x a u f g e b a u t . I n d i e R e l a t i o n s t a b e l l e w i r d j e d o c h , w e n n e s s i c h b e i d e m g e r a d e u n t e r s u c h t e n F e l d u m V o r n a m e h a n d e l t , z u j e d e m E i n t r a g d i e M a s k e n z a h l 1 a u f g e n o m m e n , f r d a s F e l d N a m e d i e Z a h l 2 u s w . B e i d e r V o l l t e x t s u c h e k n n e n S i e d a n n g e z i e l t i n e i n z e l n e n F e l d e r n o d e r F e l d k o m b i n a t i o n e n s u c h e n ( o d e r n a t r l i c h a u c h i n a l l e n F e l d e r n g l e i c h z e i t i g ) ! < b r > < b r > < b > D y n K o n t r a I n d e x < / b > < b r > < b r > H i e r b e i h a n d e l t e s s i c h u m e i n e n d y n a m i s c h e n , f e l d b e z o g e n e n K o n t r a i n d e x , d e r w i e d e r u m b e r d i e F u n k t i o n F i e l d s t r a n p o r t i e r t w i r d . D a s b e d e u t e t , d a b e i j e d e m D a t e n s a t z z u n c h s t d i e h i e r s t e h e n e n F e l d e r g e l e s e n w e r d e n u n d d a r a u s e i n K o n t r a i n d e x g e b i l d e t w i r d . D i e s e r K o n t r a i n d e x g i l t a l l e r d i n g s n u r f r d i e s e n D a t e n s a t z , b e i m n c h s t e n b e g i n n t d a s S p i e l v o n v o r n e .
V o l l t e x t i n d e x t n e u e r s t e l l e n
D i e F u n k t i o n l i e f e r t , f a l l s k e i n F e h l e r a u f t r i t t , d i e A n z a h l d e r E i n t r g e i n d i e R e l a t i o n s t a b e l l e . A n d e r n f a l l s w i r d e i n L a u f z e i t f e h l e r a u s g e l s t , d e n S i e m i t . E C 1 a b f a n g e n k n n e n .
D a s B e i s p i e l 1 w e i t e r u n t e n e n t h l t a l l e w e s e n t l i c h e n B e s t a n d t e i l e i n k l u s i v e s k i z z i e r t e r F e h l e r b e h a n d l u n g . < b r / > < b r / > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > D a r a u f s o l l t e n S i e a c h t e n : < / s p a n > < b r / > < b r / > < b r > R e i h e n f o l g e b e i m f f n e n d e r T a b e l l e n , d i e R e l a t i o n s t a b e l l e i m m e r a l s L e t z t e . < b r / > < b r > V o r S c a n R e c s P r i m r t a b e l l e w e c h s e l n , d a m i t d i e F e l d b e z e i c h n e r d e r A u s g a n g s t a b e l l e e r k a n n t w e r d e n . < b r / > < b r / > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > U n d d a s p a s s i e r t b e i d e r V o l l t e x t i n d i e r u n g : < / s p a n > < b r / > < b r > Z u n c h s t w e r d e n s o w o h l S t i c h w o r t - a l s a u c h R e l a t i o n s t a b e l l e g e l e e r t . D a n n w e r d e n s m t l i c h e D a t e n s t z e d e r A u s g a n g s t a b e l l e g e l e s e n . B e i j e d e m D a t e n s a t z w e r d e n d i e u n t e r F i e l d s a n g e g e b e n e n F e l d e r g e s c a n n t , d . h . i n e i n z e l n e Z e i c h e n k e t t e n z e r l e g t , d i e n u r a u s B u c h s t a b e n b e s t e h e n . J e d e r d i e s e r W r t e r w i r d n u n i n d i e S t i c h w o r t t a b e l l e e i n g e t r a g e n , w e n n e s d o r t n i c h t b e r e i t s v o r h a n d e n i s t . S c h l i e l i c h e r f o l g t e i n E i n t r a g i n d i e R e l a t i o n s t a b e l l e m i t j e e i n e m V e r w e i s a u f d e n D a t e n s a t z d e r A u s g a n g s t a b e l l e u n d d e m z u g r h r i g e n S a t z i n d e r S t i c h w o r t t a b e l l e . < b r / > < b r / > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > F e h l e r b e h a n d l u n g < / s p a n > < b r / > < b r > D i e P a r a m e t e r e r l a u b e n e i n s e h r f l e x i b l e s V o l l t e x t i n d i z i e r e n b e l i e b i g e r D a t e n b e s t n d e . A l l e r d i n g s h a n d e l t e s s i c h b e i S c a n R e c s u m e i n e T a b e l l e n f u n k t i o n , m i t d e r g l e i c h z w e i T a b e l l e n g l e i c h z e i t i g v e r n d e r t w e r d e n , u n d e n t s p r e c h e n d p i n g e l i g i s t d a s S y s t e m b e i d e r E i n h a l t u n g d e r r i c h t i g e n S y n t a x . D i e F u n k t i o n l i e f e r t , f a l l s k e i n F e h l e r a u f t r i t t , d i e A n z a h l d e r E i n t r g e i n d i e R e l a t i o n s t a b e l l e . A n d e r n f a l l s w i r d e i n L a u f z e i t f e h l e r a u s g e l s t , d e n S i e m i t . E C 1 a b f a n g e n k n n e n . < b r / > < b r / > < s p a n s t y l e = " t e x t - d e c o r a t i o n : u n d e r l i n e ; " > D i e h u f i g s t e n F e h l e r : < / s p a n > < b r / > < b r > 5 0 : ( U n b e k a n n t e r B e z e i c h n e r ) I n F i e l d s s t e h t m i n d e s t e n s e i n f a l s c h e s D a t e n f e l d < b r / > < b r > 5 8 : ( K e i n e T a b e l l e ) M i n d e s t e n s e i n e d e r d r e i b e n t i g t e n T a b e l l e n i s t n i c h t g e f f n e t < b r / > < b r > 6 4 : ( K e i n e A D L - T a b e l l e ) D i e S t i c h w o r t t a b e l l e w i r d n i c h t a u t o m a t i s c h n u m e r i e r t < b r / > < b r > 7 7 : ( K e i n e R e l a t i o n s t a b e l l e ) B e i d e m d r i t t e n P a r a m e t e r h a n d e l t e s s i c h n i c h t < b r / > & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; u m e i n e g l t i g e R e l a t i o n s t a b e l l e < b r / > < b r / > < b r > I s t d a s F u n k t i o n s e r g e b n i s n e g a t i v , w i r d z w a r k e i n L a u f z e i t f e h l e r a u s g e l s t , a b e r d i e F u n k t i o n d e n n o c h a b g e b r o c h e n < b r / > < b r > - 1 1 5 & n b s p ; & n b s p ; & n b s p ; & n b s p ; Z u w e n i g R e c h t e f r d i e F u n k t i o n ( D i e R e l a t i o n s d a t e i k o n n t e n i c h t g e l e e r t w e r d e n ) < b r / > < b r > - 5 6 & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; & n b s p ; ( , e r w a r t e t ) D i e F e l d e r i n F i e l d s m s s e n d u r c h K o m m a g e t r e n n t w e r d e n < b r / > < b r / >
Syntax: SEL(Selektion) : 0|1

S e l e k t i o n : l o g i s c h e r A u s d r u c k
K o n v e r t i e r u n g e i n e r S e l e k t i o n i n e i n e Z a h l < b r >
1 : w e n n S e l e k t i o n T R U E < b r > 0 : w e n n S e l e k t i o n F A L S E
S E L ( ' h a n s ' i m [ ' p e t e r ' , ' f r i t z ' , ' h a n s ' ] ) - > 1
Syntax: SETAUTO(DB [,n] : INTEGER) : INTEGER

D B : T a b e l l e n h a n d l e v o n O P E N D B < b r > n : G a n z e Z a h l
S e t z e n d e r n c h s t e n A U T O - N u m m e r
N c h s t e A u t o n u m m e r , d i e b e i m A n f g e n e i n e s n e u e n D a t e n s a t z e s v e r g e b e n w i r d .
< p > M i t d i e s e r F u n k t i o n k a n n e i n n e u e r S t a r t w e r t f r d i e a u t o m a t i s c h e N u m m e r i e r u n g v e r g e b e n w e r d e n . < / p > < b r > < p > E s i s t d a r a u f z u a c h t e n , d a s s n g r e r a l s d i e h c h s t e b i s h e r v e r g e b e n e N u m m e r i s t , d a a n d e r n f a l l s d o p p e l t e A u t o n u m m e r n i n d e r T a b e l l e v o r k o m m e n k n n e n . < / p > < b r > < p > W i r d d i e F u n k t i o n m i t P a r a m t e r n = 0 a u f g e r u f e n , s o w i r d d i e j e n i g e N u m m e r g e l i e f e r t , d i e d e r n c h s t e n e u e D a t e n s a t z e r h a l t e n w i r d . < / p >
Syntax: SETCGILOG(S : STRING) : INTEGER

S : S T R I N G ( b e l i e b i g )
E r w e i t e r t e I n f o r m a t i o n i n L o g - D a t e i s c h r e i b e n
i m m e r 0
W e n n i n t d b e n g i n e . i n i u n t e r < b r > < b r > [ g l o b a l s ] < b r > l o g c g i = 1 < b r > < b r > s t e h t , s o e r f o l g t b e i j e d e m A u f r u f e i n E i n t r a g i n d i e D a t e i c g i . l o g . < b r > < b r > D a b e i w e r d e n D a t u m , Z e i t , R e m o t e _ I P , L a u f z e i t u n d P r o g r a m m n a m e p r o t o k o l l i e r t . < b r > < b r > M i t S e t C G I L o g k a n n e i n P r o g r a m m d i e s e I n f o r m a t i o n e n e r g n z e n . < b r > < b r > B e i s p i e l : < b r > < b r > S e t C G I L o g ( ' B e t a - V e r i o n d e s P r o g r a m m s ' )
Syntax: SETFIELD(db : INTEGER; field : INTEGER|STRING; cont : STRING[; VAR buffer : BYTE[]]) : STRING

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > f i e l d : F e l d n u m m e r o r d e r F e l d b e z e i c h n e r < b r > c o n t : Z e i c h e n k e t t e < b r > b u f f e r : P u f f e r
b e r t r a g u n g v o n I n f o r m a t i o n e n i n d e n S a t z p u f f e r
c o n t
< p > D e r I n h a l t v o n c o n t w i r d i n d e s a n g e g e b e n e F e l d d e s S a t z p u f f e r s b e r t r a g e n . D a b e i f i n d e t e i n e T y p k o n v e r t i e r u n g s t a t t . K a n n d i e K o n v e r t i e r u n g n i c h t d u r c h g e f h r t w e r d e n ( ' 1 , 0 0 ' - > N U M B E R ) , s o w i r d e i n L a u f z e i t f e h l e r a u s g e l s t . < / p > < b r > < p > S E T F I E L D k a n n n i c h t v e r w e n d e t w e r d e n f r < b r / > < b r > M E M O S ( s t a t t d e s s e n R E A D M E M O ) < b r / > < b r > B L O B S ( s t a t t d e s s e n L I N K B L O B o d e r E M B E D B L O B ) < / p > < b r > < p > B e i d e r Z u w e i s u n g v o n n u m e r i s c h e n F e l d e n i s t S E T R F I E L D v o r z u z i e h e n < / p >
Syntax: SETFIELDS(db : INTEGER; replacestr : STRING) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > r e p l a c e s t r : S t r i n g d e r F o r m " f i e l d _ 1 : = v a l u e _ 1 , f i e l d _ 2 : = v a l u e _ 2 . . . "
m e h r e r e F e l d e r e i n e s D a t e n s a t z e s b e l e g e n
0 : k e i n F e h l e r a u f g e t r e t e n < b r > s o n s t : F e z h l e r c o d e
D i e e i n z e l n e n D a t e n f e l d e r w e r d e n e n t s p r e c h e n d g e s e t z t .
Syntax: SetFilter(db : INTEGER; von [, bis] : STRING[; mark : INTEGER]) : INTEGER

d b : T a b e l l e n h a n d l e v o n O p e n D B < b r > v o n , b i s : I n d e x i n f o r m a t i o n g e m I n d e x b e s c h r e i b u n g < b r > m a r k : 1 - > D e r g e s a m t e F i l t e r b e r e i c h w i r d m a r k i e r t
S e t z t e i n e n F i l t e r a u f d e n a k t i v e n I n d e x
D i e A n z a h l d e r m a r k i e r t e n D a t e n s t z e
< p > S e t F i l t e r i s t n u r w i r k s a m , w e n n d e r Z u g r i f f a u f e i n e n I n d e x g e s e t z t w u r d e , a l s o e r s t n a c h a c c e s s ( d b , . . . ) . < / p > < b r > < p > E i n F i l t e r i s t s o l a n g e a k t i v , b i s e r < / p > < b r > < p > m i t S e t F i l t e r ( d b , ' ' ) a u f g e h o b e n w i r d , o d e r < b r / > < b r > d i e P r i m r t a b e l l e g e w e c h s e l t w i r d < / p > < b r > < p > I s t e i n F i l t e r a k t i v , f h r t F i r s t R e c e i n F i n d R e c ( d b , v o n ) a u s , l i e f e r t a b e r n u r e i n e n W e r t , w e n n d e r g e f u n d e n e D a t e n s a t z g l e i c h o d e r g r e r d e m I n h a l t v o n " v o n " i s t . E n t s p r e c h e n d e s g i l t f r L a s t R e c . N e x t R e c b z w P r e v R e c l i e f e r n n u r d a n n E r g e b n i s s e , w e n n d i e g e f u n d e n e n W e r t e i m a u f g e s p a n n t e n B e r e i c h l i e g e n . A u c h S U B l i e f e r t n u r D a t e n s t z e a u s d i e s e m B e r e i c h . < / p > < b r > < p > D e r P a r a m e t e r b i s k a n n n u r w e g g e l a s s e n w e r d e n , w e n n d i e z u g e h r i g e I n d e x b e s c h r e i b u n g a u s s c h l i e l i c h S t r i n g - F e l d e r e n t h l t : < / p > < b r > < p > S e t F i l t e r ( d b , v o n ) s t e h t d a n n a l s A b k r z u n g f r S e t F i l t e r ( d b , v o n , v o n + c h r ( 2 5 5 ) ) . < / p > < b r > < p > B e i e i n e m h i e r a r c h i s c h e n I n d e x w e r d e n n i c h t a n g e g e b e n e K o m p o n e n t e n b e i v o n m i t d e m k l e i n s t e n , b e i b i s m i t d e m g r t e n m g l i c h e n W e r t a u f g e f l l t . < / p > < b r > < a h r e f = " . . / p d f / s e t f i l t e r . p d f " > D a t e n b l a t t s e t f i l t e r < / a >
Syntax: MODULE ;

< B e z e i c h n e r > : S e l b s t d e f i n i e r t e r B e z e i c h n e r , d e r m i t e i n e m B u c h s t a b e n b e g i n n t u n d d a n n a u s e i n e r b e l i e b i g e n F o l g e v o n B u c h s t a b e n , Z i f f e r n u n d d e m U n t e r s t r i c h b e s t e h t .
A n f a n g e i n e s M o d u l s
M O D U L E i s t n i c h t z w i n g e n d v o r g e s c h r i e b e n , s o l l t e a b e r i m S i n n e e i n e s g u t e n P r o g r a m m s t i l s a m A n f a n g e i n e s M o d u l s s t e h e n . < b r > < b r > E b e n s o i s t e i n a u s f h r l i c h e r K o m m e n t a r g l e i c h a m A n f a n g w n s c h e n s w e r t , i n d e m s t e h t < b r > * w a s d a s M o d u l m a c h t < b r > * w a n n e s b e g o n n e n w u r d e < b r > * w e l c h e F u n k t i o n e n e x p o r t i e r t w u r d e n < b r > * u s w .
S o s i n d B e z e i c h n e r a u f g e b a u t
B e z e i c h n e r : : = B u c h s t a b e { B u c h s t a b e | Z i f f e r | " _ " } . < b r > B u c h s t a b e : : = " A " . . " Z " | " a " . . " z " . < b r > Z i f f e r : : = " 0 " . . " 9 " . < b r > < b r > Z u d e n B u c h s t a b e n z h l e n a u c h d i e U m l a u t e " " , " " , " " , " " , " " , " " s o w i e " " . < b r > < b r > B e i a l l e n s e l b s t d e f i n i e r t e n B e z e i c h n e r n i s t d i e G r o - / K l e i n s c h r e i b u n g s i g n i f i k a n t - i m G e g e n s a t z z u d e n S t a n d a r d f u n k t i o n e n .
Syntax: PROCEDURE Bezeichner[(Parameterliste)][: Grundtyp];

P a r a m e t e r l i s t e : : = P a r a m e t e r { ; P a r a m e t e r } . < b r > P a r a m e t e r : = [ V A R ] B e z e i c h n e r l i s t e : T y p . < b r > B e z e i c h n e r l i s t e : : = B e z e i c h n e r { , B e z e i c h n e r } . < b r > T y p : : = G r u n d t y p [ A r r a y d e f ] . < b r > G r u n d t y p : : = C H A R | B Y T E | I N T E G E R | R E A L | S T R I N G | M A R K S | T B I T S . < b r > A r r a y d e f : = [ D i m e n s i o n s l i s t e ] . < b r > D i m e n s i o n s l i s t e : : = Z a h l { , Z a h l } .
L e i t e t e i n e P r o z e d u r e i n
J e d e s a u s f h r b a r e M o d u l e m u s s m i n d e s t e n s d i e P r o z e d u r m i t d e m N a m e n " M a i n " e n t h a l t e n . < b r / > < b r > W i r d b e i d e r P r o z e d u r - D e k l a r a t i o n e i n E r g e b n i s t y p a n g e g e b e n , s o h a n d e l t e s s i c h u m e i n e F u n k t i o n s p r o z e d u r , d i e i n A u s d r c k e n v e r w e n d e t w e r d e n k a n n . < b r / > < b r / > < b r > E i n e P r o z e d u r h a t i m m e r f o l g e n d e n A u f b a u : < b r / > < b r / > < b r > P R O C E D U R E < p r o z e d u r k o p f > < b r / > < b r > < a n w e i s u n g e n > < b r / > < b r > E N D P R O C < b r / > < b r / > < b r > D e r P r o z e d u r k o p f b e s t e h t a u s d e m z w i n g e n d v o r g e s c h r i e b e n e n P r o z e d u r n a m e n , e i n e r o p t i o n a l e n P a r a m e t e r l i s t e , s o w i e e i n e m o p t i o n a l e n E r g e b n i s t y p . < b r / > < b r > D e r A u f r u f e i n e r P r o z e d u r e r f o l g t d u r c h A n g a b e i h r e s N a m e n s i n A u s d r c k e n . < b r / > < b r > D a d i e P r o z e d u r b e r e i t s i n i h r e m e i g e n e m R u m p f b e k a n n t i s t , i s t e i n e d i r e k t e R e k u r s i o n m g l i c h . < b r / > < b r > M a x i m a l k n n e n < / a n w e i s u n g e n > < / p r o z e d u r k o p f > 1 0 2 4 P r o z e d u r e n i n e i n e m p r g e x i s t i e r e n . < b r / > < b r > < p r o z e d u r k o p f > < b r > < a n w e i s u n g e n > < b r / > < b r > B e i s p i e l f r e i n e e i n f a c h e P r o z e d u r : < b r > < p r e > P R O C E D U R E w r i t e _ c g i _ h e a d e r ; < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) ; < b r > c g i w r i t e l n ( ' ' ) < b r > E N D P R O C < b r > < / p r e > P a r a m e t e r l i s t e < b r / > < b r / > < b r > E i n e r P r o z e d u r k n n e n W e r t e b z w . V a r i a b l e n - R e f e r e n z e n v o n a u s s e n m i t g e g e b e n w e r d e n . < b r / > < b r > D i e s e w e r d e n d i r e k t n a c h P r o z e d u r n a m e n i n r u n d e n K l a m m e r n a n g e g e b e n . M a n s p r i c h t i n d i e s e m F a l l v o n e i n e r f o r m a l e n P a r a m e t e r l i s t e : < p r e > P R O C E D U R E f e t t ( z e i l e : S T R I N G ) ; < b r > c g i w r i t e ( ' < b > ' ) ; < b r > c g i w r i t e h t m l ( z e i l e ) ; < b r > c g i w r i t e l n ( ' < / b > ' ) < b r > E N D P R O C < b r > < / p r e > D e r A u f r u f d i e s e r P r o z e d u r e r f o l g t b e i s p i e l s w e i s e d u r c h : < p r e > f e t t ( ' b e r s c h r i f t ' ) ; < b r > f e t t ( l o w e r ( c g i g e t p a r a m ( ' h e a d l i n e ' ) ) ) ; < b r > < / p r e > A n S t e l l e d e s f o r m a l e n P a r a m e t e r s s t e h t a l s o b e i m A u f r u f e i n b e l i e b i g e r A u s d r u c k d e s ( i n d e r P a r a m e t e r l i s t e ) f e s t g e l e g t e n T y p s . < b r / > < b r > D i e s e r W e r t w i r d d a n n z u n c h s t b e r e c h n e t u n d i n d i e l o k a l e V a r i a b l e ( h i e r " z e i l e " ) d e r P r o z e d u r b e r t r a g e n . < b r / > < b r > M a n b e z e i c h n e t d e r a r t i g e P a r a m e t e r d e s h a l b a l s W e r t p a r a m t e r ( c a l l b y v a l u e ) . < b r / > < b r / > < s p a n s t y l e = " f o n t - w e i g h t : b o l d ; " > W i c h t i g : < / s p a n > < s p a n s t y l e = " c o l o r : # C C 0 0 0 0 ; " > A n j e d e r S t e l l e d e r P r o z e d u r l i s t e m u s s b e i m A u f r u f e i n A r g u m e n t s t e h e n ! < / s p a n > < b r / > < b r / > < b r > N e b e n d e n W e r t p a r a m e t e r n k e n n t E A S Y a u c h n o c h R e f e r e n z p a r a m e t e r . < b r / > < b r > H i e r w i r d d e r f o r m a l e P a r a m e t e r a l s P l a t z h a l t e r f r e i n e V a r i a b l e a n g e s e h e n . < b r / > < b r / > < b r > D i e s e r P l a t z h a l t e r w i r d b e i m A u f r u f d u r c h d i e b e r g e b e n e V a r i a b l e e r s e t z t : < b r / > < b r > E i n e Z u w e i s u n g i n n e r h a l b d e r P r o z e d u r a n d i e f o r m a l e V a r i a b l e n d e r t a l s o b e i m A u f r u f d i e b e r g e b e n e V a r i a b l e . < b r / > < b r > A n S t e l l e e i n e s R e f e r e n z p a r a m a t e r s m u s s a l s o b e i m A u f r u f e i n e V a r i a b l e b e r g e b e n w e r d e n ( u n d k e i n e s f a l l s e i n A u s d r u c k o d e r e i n e K o n s t a n t e ) . < b r / > < b r > R e f e r e n z p a r a m t e r w e r d e n d u r c h e i n v o r a n g e s t e l l t e s " V A R " k e n n t l i c h g e m a c h t . < b r / > < b r / > < b r > B e i s p i e l : < p r e > P R O C E D U R E d o p p e l t ( V A R x : R E A L ) ; < b r > x : = 2 * x < b r > E N D P R O C < b r > < / p r e > D e r A u f r u f e r f o l g t b e i s p i e l s w e i s e s o : < p r e > V A R a : R E A L ; < b r > a : = 1 0 ; < b r > d o p p e l t ( a ) ; / / j e t z t h a t a d e n W e r t 2 0 < b r > < / p r e > < / a n w e i s u n g e n > < / p r o z e d u r k o p f >
Syntax: siehe SCANRECS

s i e h e S C A N R E C S
F g t d e n a k t u e l l e n D a t e n s a t z i n d e n V o l l t e x t i n d e x e i n
s i e h e S C A N R E C S
D e r a k t u e l l e D a t e n s a t z w i r d i n d e n V o l l t e x t i n d e x b e r n o m m e n . W e n n d e r D a t e n s a t z v e r n d e r t w u r d e , m u s s v o r d e m A u f r u f d i e s e r F u n k t i o n d e r D a t e n s a t z m i t U N S C A N R E C a u s d e m V o l l t e x t i n d e x e n t f e r n t w e r d e n : < p r e > < b r > r e a d r e c ( d b , r n o ) ; < b r > u n s c a n r e c ( d b , . . . ) ; < b r > s e t f i e l d ( d b , . . . ) ; < b r > s e t f i e l d ( d b , . . . ) ; < b r > . . . < b r > w r i t e r e c ( d b , r n o ) ; < b r > s c a n r e c ( d b , . . . ) ; < / p r e >
Syntax: VAR Bezeichner {, Bezeichner} : Typ [= Ausdruck]

T y p : < b r > < b r > B Y T E ( Z a h l 0 . . 2 5 5 ) < b r > I N T E G E R ( Z a h l - 2 1 4 7 4 8 3 6 4 8 b i s + 2 1 4 7 4 8 3 6 4 7 ) < b r > R E A L ( Z a h l F l i e k o m m a m i t c a . 1 8 s i g . S t e l l e n ) < b r > C H A R ( 1 Z e i c h e n ) < b r > S T R I N G ( m a x 2 5 5 Z e i c h e n ) < b r > T B I T S ( 1 B i t ) < b r > M A R K S ( M a r k i e r u n g s l i s t e ) < b r > V o n j e d e m d i e s e r G r u n d t y p e n k n n e n a u c h A r r a y s m i t m a x 1 0 D i m e n s i o n e n d e f i n i e r t w e r d e n : < b r > < b r > V A R M a t r i x : R E A L [ 1 0 , 1 0 ] < b r > < b r > D e r e r s t e F e l d i n d e x i s t i m m e r 0 < b r > < b r > A u s d r u c k : a r i t h m e t i s c h e r A u s d r u c k d e s a n g e g e b e n T y p s . < b r >
D e f i n i e r t e i n e o d e r e i n e G r u p p e v o n V a r i a b l e n
D u r c h d i e A n g a b e e i n e s A u s d r u c k s w e r d e n a l l e V a r i a b l e n d e r L i s t e m i t d i e s e m W e r t i n i t i a l i s i e r t . < b r > < b r > D e r z e i t ( V e r s i o n 6 . 2 . 6 ) k n n e n k e i n e F e l d e r a u f d i e s e W e i s e i n i t i a l i s i e r t w e r d e n . S i e w e r d e n i m m e r m i t 0 b z w . d e m L e e r s t r i n g i n i t i a l i s e r t . < b r > < b r > I s t k e i n A u s d r u c k a n g e g e b e n , s o w e r d e n d i e V a r i a b l e n m i t f o l g e n d e n W e r t e n i n i t i a l i s i e r t : < b r > < b r > B Y T E , I N T E G E R , R E A L : 0 < b r > S T R I N G , C H A R : ' ' < b r > M A R K S : < l e e r e L i s t e > < b r > T B I T S : B i t z u r c h g e s e t z t < b r > < b r > < b > I n i t i a l i s e r u n g < / b > < b r > < b r > D e r A u s d r u c k w i r d n i c h t z u r C o m p i l i e r z e i t , s o n d e r n z u r L a u f z e i t ( ! ) b e r e c h n e t u n d z u g e w i e s e n . D a s b e d e u t e t w i e d e r u m , d a s s h i e r a u c h s e l b s t d e f i n i e r t e F u n k t i o n e n v e r w e n d e t w e r d e n d r f e n . D a z u e i n B e i s p i e l : < p r e > < b r > M O D U L E c o u n t e r ; / / l o c a t i o n : l i b / c o u n t e r . m o d < b r > < b r > P R O C E D U R E I n i t : R E A L ; < b r > V A R r e s u l t , e c _ b e f o r e : I N T E G E R ; < b r > e c _ b e f o r e : = g e t p a r a ( ' e c ' ) ; s e t p a r a ( ' e c 1 ' ) ; < b r > r e s u l t : = o p e n d b ( " d a t a b a s e / c o u n t e r / c o u n t e r . d a t " , " " , 0 , 1 5 ) ; < b r > s e t p a r a ( ' e c ' + s t r ( e c _ b e f o r e ) ) ; < b r > I F r e s u l t = 0 T H E N < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) ; < b r > c g i w r i t e l n ( ' ' ) ; < b r > c g i w r i t e l n ( ' d a t a b a s e - e r r o r : ' + T D B _ E r r o r S t r ( T D B _ L a s t E r r o r ) ) ; < b r > H A L T < b r > E L S E < b r > R E T U R N r e s u l t ; < b r > E N D < b r > E N D P R O C ; < b r > < b r > V A R d b : I N T E G E R = I n i t ; < / p r e > < b r > G r e i f t n u n e i n a n d e r e s P r o g r a m m a u f d i e s e s M o d u l z u , s o s t e h t b e r e i t s n a c h < b r > < b r > U S E S c o u n t e r . m o d ; < b r > < b r > m i t c o u n t e r . d b e i n g l t i g e r ( u n d z u m S c h r e i b e n g e f f n e t e r ) T a b e l l e n h a n d l e ( d e r T a b e l l e d a t a b a s e / c o u n t e r / c o u n t e r . d a t ) z u r V e r f g u n g . < b r >
Syntax: USES Dateiname

D a t e i n a m e : P f a d z u r e x t e r n e n B i b l i o t h e k
E i n b i n d u n g e i n e s e x t e r n e n M o d u l e s
< k e i n e r >
< b > A l l g e m e i n < / b > < b r > < b r > D a s e x t e r n e M o d u l w i r d a n d e r S t e l l e i m P r o g r a m m t e x t e i n g e b u n d e n , a n d e r d i e U S E S - A n w e i s u n g s t e h t . < b r > < b r > < b > E i n s c h r n k u n g e n < / b > < b r > < b r > D e r z e i t ( V e r s i o n 6 . 2 . 9 ) g e l t e n f o l g e n d e E i n s c h r n k u n g e n : < b r > < b r > D a s e x t e r n e M o d u l m u s s i m Q u e l l t e x t v o r l i e g e n . < b r > E s k a n n n u r e i n M o d u l p r o U S E S - Z e i l e e i n g e b u n d e n w e r d e n . < b r > < b r > A l s o n i c h t < b r > < b r > U S E S a . m o d , b . m o d , c . m o d ; < b r > < b r > s o n d e r n < b r > < b r > U S E S a . m o d ; < b r > U S E S b . m o d ; < b r > U S E S c . m o d ; < b r > < b r > < b > A r b e i t s w e i s e < / b > < b r > < b r > E i n B i b l i o t h e k s m o d u l w i r d g r u n d s t z l i c h n u r e i n m a l e i n g e b u n d e n , a u c h w e n n e s ( b e i s p i e l s w e i s e i n e i n e m e i n g e b u n d e n e n M o d u l ) m e h r f a c h i n e i n e r U S E S - A n w e i s u n g a u f t r i t t . < b r > < b r > M i t U S E S w e r d e n s m t l i c h e g l o b a l e n B e z e i c h n e r d e s M o d u l s i m p o r t i e r t , a l s o < b r > < b r > * a l l e g l o b a l e n V a r i a b l e n < b r > * a l e P r o z e d u r e n u n d F u n k t i o n e n < b r > < b r > B e i m e h r e r e n g l e i c h n a m i g e n B e z e i c h n e r n g i l t i m m e r d e r d e s z u l e t z t e i n g e b u n d e n e n M o d u l s . Z u r e i n d e u t i g e n B e s t i m m u n g e i n e s B e z e i c h n e r s x y z a u s d e m M o d u l a b c . m o d k a n n d e r M o d u l n a m e v o r a n g e s t e l l t w e r d e n : a b c . x y z < b r > < b r > A l l e S t a n d a r d b e z e i c h n e r w e r d e n a u t o m a t i s c h a u s d e m M o d u l s y s t e m . m o d i m p o r t i e r t . D e s h a l b k a n n d e r M o d u l n a m e " s y s t e m " S t a n d a r d b e z e i c h n e r n v o r a n g e s t e l l t w e r d e n , w e n n b e i s p i e l s w e i s e S t a n d a r d p r o z e d u r e n u m d e f i n i e r t w e r d e n . < b r > < b r > B e i s p i e l : < p r e > < b r > P R O C E D U R E L o a d T e m p l a t e ( p a t h : S T R I N G ) : I N T E G E R ; < b r > V A R r e s u l t : I N T E G E R ; < b r > s y s t e m . L o a d T e m p l a t e ( p a t h ) ; < b r > W H I L E s u b s t ( ' # a c t i o n # ' , P a r a m S t r ( 0 ) ) D O E N D < b r > R E T U R N r e s u l t < b r > E N D P R O C < / p r e > < b r > < b > S u c h p f a d < / b > < b r > < b r > W e n n k e i n k o m p l e t t e r D a t e i p f a d a n g e g e b e n w i r d , s o g i l t f o l g e n d e n S u c h r e i h e n f o l g e : < b r > < b r > * A k t u e l l e s V e r z e i c h n i s < b r > * V e r z e i c h n i s d e s e i n b i n d e n e n P r o g r a m m s < b r > * V e r z e i c h n i s s d e s P f a d e s , d i e i n d e r K o n f i g u r a t i o n s d a t e i t d b e n g i n e . i n i i n d e r A b t e i l u n g [ g l o b a l s ] u n t e r " l i b p a t h " a n g e g e b e n s i n d .
Z e i c h e n k o n s t a n t e n u n d n u m e r i s c h e K o n s t a n t e n
< p > < b > Z e i c h e n k o n s t a n t e n < / b > < / p > < b r > < p > Z e i c h e n k o n s t a n t e n s i n d i n e i n f a c h e o d e r d o p p e l t e A n f h r u n g s z e i c h e n e i n g e s c h l o s s e n e Z e i c h e n k e t t e n : < / p > < b r > < p > " S t r i n g k o n s t a n t e " < / p > < b r > < p > ' S t r i n g k o n s t a n t e ' < / p > < b r > < p > " E r h a t ' s " < / p > < b r > < p > ' S i e s a g t e : " D a s i s t e i n g r o e s D i n g ! " ' < / p > < b r > < p > < b > N u m e r i s c h e K o n s t a n t e n < / b > < / p > < b r > < p > < b > D e z i m a l z a h l e n : < / b > < / p > < b r > < p > [ " + " | " - " ] Z i f f e r { Z i f f e r } [ " . " Z i f f e r { Z i f f e r } ] < / p > < b r > < p > D a s b e d e u t e t , D e z i m a l z a h l e n k n n e n m i t u n d o h n e V o r z e i c h e n a n g e g e b e n w e r d e n , e i n e v e n t u e l l n o t w e n d i g e r N a c h k o m m a a n t e i l w i r d d u r c h e i n e n D e z i m a l p u n k t a b g e t r e n n t . < / p > < b r > < p > W i c h t i g : W e d e r T a u s e n d e r t r e n n u n g e n n o c h D e z i m a l k o m m a s i n d e r l a u b t . < / p > < b r > < p > B e i s p i e l e : < / p > < b r > < p > 1 0 0 0 < / p > < b r > < p > - 1 0 0 0 < / p > < b r > < p > 2 5 . 1 2 3 < / p > < b r > < p > - 4 1 2 3 . 5 7 5 < / p > < b r > < p > < b > D a t u m s k o n s t a n t e n : < / b > < / p > < b r > < p > E i n D a t u m s k o n s t a n t e w i r d i m m e r i n d e r F o r m t t . m m . j j j j a n g e g e b e n . < / p > < b r > < p > B e i s p i e l e : < / p > < b r > < p > 2 1 . 0 5 . 2 0 0 1 < / p > < b r > < p > 1 1 . 1 1 . 1 1 1 1 < / p > < b r > < p > W e n n d i e J a h r e s z a h l n u r z w e i s t e l l e i g a n g e g e b e n w i r d , s o w i r d h i e r z u 1 9 0 0 a d d i e r t , w e n n j j z w i s c h e n 4 0 u n d 9 9 l i e g t , a n d e r n f a l l s w i r d 2 0 0 0 a d d i e r t . < / p > < b r > < p > B e i s p i e l e : < / p > < b r > < p > 1 9 . 0 9 . 0 1 - > 1 9 . 0 9 . 2 0 0 1 < / p > < b r > < p > 2 1 . 0 5 . 5 2 - > 2 1 . 0 5 . 1 9 5 2 < / p > < b r > < p > < b > Z e i t k o n s t a n t e n : < / b > < / p > < b r > < p > F r Z e i t k o n s t a n t e n g i l t < / p > < b r > < p > h h : m m [ : s s [ . n n n ] ] < / p > < b r > < p > h h : S t u n d e n < / p > < b r > < p > m m : M i n u t e n < / p > < b r > < p > s s : S e k u n d e n < / p > < b r > < p > n n n : S e k u n d e n b r u c h t e i l e < / p > < b r > < p > B e i s p i e l e : < / p > < b r > < p > 1 2 : 0 0 < / p > < b r > < p > 1 7 : 1 5 < / p > < b r > < p > 1 7 : 1 5 : 0 8 < / p > < b r > < p > 1 7 : 1 5 : 0 8 . 1 2 5 < / p >
D i e w e s e n t l i c h e n P r o g r a m m - B e s t a n d t e i l e
T D B - E a s y k e n n t f o l g e n d e A n w e i s u n g e n : < b r > < b r > A r i t h m e t i s c h e r A u s d r u c k < b r > I F - A n w e i s u n g < b r > W H I L E - A n w e i s u n g < b r > R E P E A T - A n w e i s u n g < b r > R E T U R N - A n w e i s u n g < b r > S U B - A n w e i s u n g < b r > < b r > A n w e i s u n g w e r d e n n u r i n n e r h a l b v o n ( F u n k t i o n s - ) P r o z e d u r e n a u s g e f h r t . < b r > < b r > S t e h e n m e h r e r e A n w e i s u n g e n i n e i n e r Z e i l e , s o w e r d e n s i e d u r c h S e m i k o l o n g e t r e n n t . < b r >
S o s i n d a r i t h m e t i s c h e A u s d r c k e a u f g e b a u t < b r >
< b > A r i t h m e t i s c h e A u s d r c k e < / b > < b r > < b r > B e i d e r A u s f h r u n g e i n e s P r o g r a m m s , a l s o z u d e s s e n L a u f z e i t , w e r d e n A u d r c k e b e r e c h n e t . H u f i g i s t d a s E r g e b n i s d e r B e r e c h n u n g v l l i g u n i n t e r e s s a n t ( u n d f l l t d e m n a c h a u c h e i n f a c h u n t e r d e n T i s c h ) . E s s i n d i n d i e s e n F l l e n d i e s o g e n a n n t e n " S e i t e n e f f e k t e " d e r B e r e c h n u n g , d e n e n d a s A u g e n m e r k g i l t . S o l i e f e r t d i e B e r e c h n u n g d e r F u n k t i o n c g i w r i t e l n ( " H a l l o W e l t " ) d e n W e r t 0 . A l s S e i t e n e f f e k t d e r F u n k t i o n s b e r e c h n u n g w i r d a b e r d i e Z e i c h e n k e t t e " H a l l o W e l t " i n d i e S t a n d a r d a u s g a b e g e s c h r i e b e n - u n d d a s g e n a u w o l l e n w i r a n d i e s e r S t e l l e j a a u c h . < b r > < b r > < i > K o n s t a n t e n < / i > < b r > < b r > I m e i n f a c h s t e n F a l l i s t e i n a r i t h m e t i s c h e r A u s d r u c k e i n e K o n s t a n t e . D a s i s t e i n e G r e , d i e i h r e n W e r t n i c h t n d e r t , b e i s p i e l s w e i s e d i e Z a h l 1 2 3 o d e r d i e Z e i c h e n k e t t e " H a l l o " < b r > < b r > E A S Y k e n n t f o l g e n d e K o n s t a n t e n : < b r > < b r > Z e i c h e n k e t t e n : < b r > < b r > " a b c " b e l i e b i g e Z e i c h e n f o l g e i n d o p p e l t e n A n f h r u n g s z e i c h e n < b r > ' a b c ' b e l i e b i g e Z e i c h e n f o l g e i n e i n f a c h e n A n f h r u n g s z e i c h e n < b r > < b r > Z a h l e n : < b r > < b r > 1 2 3 n a t r l i c h e Z a h l < b r > - 1 2 3 ( n e g a t i v e ) g a n z e Z a h l < b r > 1 2 3 . 4 5 6 D e z i m a l b r u c h ( i m m e r m i t D e z i m a l p u n k t ) < b r > - 1 2 3 . 4 5 6 n e g a t i v e r D e z i m a l b r u c h < b r > 1 2 : 3 5 Z e i t a n g a b e < b r > 1 1 . 0 8 . 2 0 0 0 D a t u m s a n g a b e < b r > < b r > < i > V a r i a b l e n u n d F u n k t i o n e n < / i > < b r > < b r > b e r a l l d o r t , w o e i n e K o n s t a n t e s t e h e n k a n n , d a r f a u c h e i n V a r i a b l e n n a m e o d e r e i n F u n k t i o n s n a m e s t e h e n . W e n n e i n e F u n k t i o n P a r a m e t e r b e n t i g t , s o w e r d e n d i e s e i n r u n d e n K l a m m e r n n a c h d e m F u n k t i o n s n a m e n a n g e g e b e n . < b r > < b r > S o m i t i s t < i > c g i w r i t e l n ( " h e l l o w o r l d " ) < / i > e i n ( e i n f a c h e r ) a r i t h m e t i s c h e r A u s d r u c k . < b r > < b r > < i > Z u s a m m e n g e s e t z t e a r i t h m e t i s c h e A u s d r c k e < / i > < b r > < b r > A u s d i e s e n e i n f a c h e n K o m p o n e n t e n k n n e n m i t d e n s o g e n a n n t e n " a r i t h m e t i s c h e n " O p e r a t i o n ( = R e c h e n z e i c h e n ) k o m p e x e A u s d c k e g e b i l d e t w e r d e n . < b r > < b r > F r Z a h l e n g i b t e s f o l g e n d e O p e r a t o r e n : < b r > < b r > + A d d i t i o n 1 + 2 = 3 < b r > - S u b t r a k t i o n 1 2 - 4 = 8 < b r > * M u l t i p l i k a t i o n 3 * 6 = 1 8 < b r > / D i v i s i o n 1 / 4 = 0 . 2 5 < b r > D I V D i v i s i o n o h n e R e s t 9 D I V 4 = 2 < b r > M O D R e s t e i n e r ( g a n z z a h l i g e n ) D i v i s i o n 9 M O D 4 = 1 < b r > B _ A N D b i t w e i s e s A N D z w e i e r g a n z e r Z a h l e n 3 B _ A N D 6 = 2 < b r > B _ O R b i t t w e i s e s O R z w e i e r g a n z e r Z a h l e n 3 B _ O R 6 = 7 < b r > B _ N O T b i n r e s K o m p l e m e n t e i n e r g a n z e n Z a h l B _ N O T 0 = - 1 ( = x 0 f f f f f f f f ) < b r > < b r > < b r > F r Z e i c h e n k e t t e n g i b t e s n u r z w e i O p e r a t o r e n < b r > < b r > + V e r k e t t u n g z w e i e r Z e i c h e n k e t t e n " a b c " + " d e f " = " a b c d e f " < b r > [ p , n ] ( n a c h g e s t e l l t e r ) T e i l s t r i n g - O p e r a t o r " a b c d e f " [ 3 , 2 ] = " c d " < b r > < b r > < b r > H i n w e i s z u m T e i l s t r i n g - O p e r a t o r : H i e r w e r d e n i n e c k i g e n K l a m m e r n z w e i P a r a m e t e r a n g e g e b e n . D e r e r s t e b e s t i m m t d i e S t a r t p o s i t i o n , d e r z w e i t e d i e A n z a h l d e r Z e i c h e n . F e h l t d e r z w e i t e P a r a m e t e r , s o w i r d h i e r 1 a n g e n o m m e n . Z e i g t d e r T e i l s t r i n g - O p e r a t o r a u s s e r h a l b d e s S t r i n g s ( a u f d e n e r a n g e w a n d t w i r d ) s o w i r d e i n e l e e r e < b r > Z e i c h e n k e t t e g e l i e f e r t . < b r > < b r > F r b e i d e T y p e n g i b t e s n o c h d e n Z u w e i s u n g s o p e r a t o r " : = " . D i e s e r n i m m t e i n e g e w i s s e S o n d e r s t e l l u n g e i n , d e n n l i n k s v o m O p e r a t o r m u s s i m m e r e i n V a r i a b l e n n a m e s t e h e n , r e c h t s d a v o n d a r f e i n b e l i e b i g e r A u s d r u c k s e i n : < b r > < b r > < i > V a r i a b l e n n a m e : = A u s d r u c k < / i > < b r > < b r > < b r > D i e B e r e c h n u n g e i n e s A u s d r u c k s m i t d e m Z u w e i s u n g s o p e r a t o r e r g i b t d e n W e r t d e s ( T e i l - ) A u s d r u c k s a u f d e r r e c h t e n S e i t e d e s O p e r a t o r s . A l s S e i t e n e f f e k t e r h l t d i e < b r > V a r i a b l e g e n a u d i e s e n W e r t z u g e w i e s e n . < b r > < b r > W i c h t i g i s t h i e r f e s t z u h a l t e n , d a s s i n E A S Y d i e W e r t z u w e i s u n g a n e i n e V a r i a b l e e i n A u s d r u c k i s t , d e r s e l b s t w i e d e r u m d e n z u g e w i e s e n e n W e r t r e p r s e n t i e r t . D i e s e s V e r h a l t e n u n t e r s c h e i d e t s i c h v o n d e n Z u w e i s u n g e n i n P a s c a l o d e r B A S I C u n d e n t s p r i c h t d e r Z u w e i s u n g i n C u n d C + + . < b r > < b r > D a m i t s i n d b e i s p i e l s w e i s e a u c h g l e i c h z e i t i g e Z u w e i s u n g e n a n m e h r e r e V a r i a b l e n m g l i c h : < b r > < b r > V a r i a b l e 1 : = V a r i a b l e 2 : = V a r i a b l e 3 : = 1 + 2 + 3 + 4 < b r > < b r > < i > A b k r z u n g e n < / i > < b r > < b r > S e i t t d b e n g i n e 6 . 2 . 3 s i n d n o c h f o l g e n d e A b k r z u n g e n z u g e l a s s e n : < b r > < b r > W e n n " i " e i n e V a r i a b l e v o m T y p R E A L i s t , k n n e n f o l g e n d e A b k r z u n g e n v e r w e n d e t w e r d e n : < b r > < b r > i : = i + 1 z u i + + < b r > i : = i - 1 z u i - - < b r > < b r > < b r > < i > K l a m m e r n < / i > < b r > < b r > A n s t e l l e e i n e r K o n s t a n t e n ( o d e r V a r i a b l e n o d e r F u n k t i o n ) d a r f i n e i n e m A u s d r u c k a u c h e i n i n r u n d e K l a m m e r n e i n g e s c h l o s s e n e r A u s d r u c k s t e h e n . < b r > < b r > D a s i s t d i e " a k a d e m i s c h e " D e f i n i t i o n d e s s o n s t b l i c h e n H i n w e i s e s , d a s s i n e i n e m A u s d r u c k z u r A u f l s u n g v o n M e h r d e u t i g k e i t e n r u n d e K l a m m e r n e i n g e s e t z t w e r d e n d r f e n . < b r > < b r > B e i s p i e l e f r a r i t h m e t i s c h e A u s d r c k e : < b r > < b r > 1 + 2 * ( 3 - 4 ) < b r > < b r > " H a n s " + ( " - " + " H u b e r " ) [ 4 , 2 ] < b r > < b r > < i > P r i o r i t t e n < / i > < b r > < b r > B e i a l l e n a r i t h m e t i s c h e n A u s d r c k e n g i l t d i e R e g e l : P u n k t v o r S t r i c h . D a s s o l l t e h i e r g e n g e n . B e i U n s i c h e r h e i t v e r w e n d e n S i e e i n f a c h K l a m m e r n . < b r > < b r > B e i s p i e l : < b r > < b r > 2 + 3 * 4 = > 2 + 1 2 = > 1 6 < b r > ( 2 + 3 ) * 4 = > 5 * 4 = > 2 0 < b r >
Syntax: IF THEN {ELSIF THEN } [ELSE ] END

l o g . A u s d r u c k : : = l o g . T e r m { O R l o g . T e r m } . < b r > l o g . T e r m : : = l o g . F a k t o r { A N D l o g . F a k t o r } . < b r > l o g . F a k t o r : : = [ N O T ] V e r g l e i c h | ( l o g . A u s d r u c k ) .
B e d i n g t e A n w e i s u n g < b r >
D i e b e d i n g t e A n w e i s u n g < b r > < b r > M i t d e r b e d i n g t e n A n w e i s u n g i s t e s m g l i c h , d e m P r o g r a m m m i t z u t e i l e n , u n t e r w e l c h e n B e d i n g u n g e n e s e t w a s t u n s o l l u n d u n t e r w e l c h e n e t w a s g a n z a n d e r e s . < b r > < b r > D i e e i n f a c h s t e F o r m d e r b e d i n g t e n A n w e i s u n g h a t f o l g e n d e F o r m : < b r > < b r > < p r e > < b r > I F l o g i s c h e r A u s d r u c k T H E N A n w e i s u n g e n E N D < b r > < / p r e > < b r > < b r > Z u r L a u f z e i t d e s P r o g r a m m d e s P r o g r a m m s w i r d d e r l o g i s c h e A u s d r u c k a u s g e r e c h n e t , u n d w e n n d a s E r g e b n i s , w a h r ? i s t , w e r d e n d i e d e m T H E N f o l g e n d e n < b r > A n w e i s u n g e n a u s g e f h r t . A n d e r n f a l l s w i r d d e r P r o g r a m m f l u s s m i t d e r e r s t e n A n w e i s u n g n a c h d e m E N D f o r t g e s e t z t . < b r > < b r > B e i s p i e l : < b r > < p r e > < b r > P R O C E D U R E M a i n < b r > V A R n a m e : S T R I N G < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > n a m e : = g e t q u e r y s t r i n g ( ' n a m e ' ) < b r > I F n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' G u t e n M o r g e n ' + n a m e ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > < b r > D i e s e s k l e i n e P r o g r a m m s c h a u t n a c h , o b i n d e r U R L e i n N a m e b e r g e b e n w u r d e . I m p o s i t i v e n F a l l ( n a m e < > ' ' ) g i b t e s e i n e B e g r u n g s m e l d u n g a u s . F r l o c a l h o s t / c g i - t d b / t e s t . p r g ? n a m e = H a n s l a u t e t d i e B e g r u n g d e m n a c h : " G u t e n M o r g e n H a n s " . < b r > < b r > N u n w o l l e n w i r d a s P r o g r a m m s o a b n d e r n , d a s s f r d e n F a l l , d a s s k e i n N a m e a n g e g e b e n w i r d , d i e S t a n d a r d b e g r u n g " H a l l o u n b e k a n n t e W e l t " e r f o l g t . M i t d e m b i s h e r b e k a n n t e n W e r k z e u g e n k n n e n w i r d a s s o e r l e d i g e n : < b r > < p r e > < b r > P R O C E D U R E M a i n < b r > V A R n a m e : S T R I N G < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > n a m e : = g e t q u e r y s t r i n g ( ' n a m e ' ) < b r > I F n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' G u t e n M o r g e n ' + n a m e ) < b r > E N D < b r > I F N O T n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' H a l l o u n b e k a n t e W e l t ' ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > < b r > D a s f u n k t i o n i e r t z w a r , s i e h t a b e r n i c h t b e s o n d e r s e l e g a n t a u s . Z u d e m m s s e n i n j e d e m F a l l b e i d e l o g i s c h e n A u s d r c k e b e r e c h n e t w e r d e n : < b r > < b r > n a m e < > ' ' u n d N O T n a m e < > ' ' < b r > < b r > F r d i e s e n Z w e c k g i b t e s e i n e E r w e i t e r u n g d e r b e d i n g t e n A n w e i s u n g : < p r e > < b r > I F l o g i s c h e r A u s d r u c k T H E N < b r > A n w e i s u n g e n _ 1 < b r > E L S E < b r > A n w e i s u n g e n _ 2 < b r > E N D < b r > < / p r e > < b r > A u c h h i e r w i r d d e r l o g i s c h e A u s d r u c k b e r e c h n e t . W e n n e r " w a h r " l i e f e r t , s o w e r d e n d i e A n w e i s u n g e n _ 1 a u s g e f h r t . L i e f e r t e r a b e r " f a l s c h " , s o w e r d e n d i e A w e i s u n g e n _ 2 a u s g e f h r t . D a m i t k a n n u n s e r B e g r u n g s p r o g r a m m v e r e i n f a c h t w e r d e n : < b r > < p r e > < b r > P R O C E D U R E M a i n < b r > V A R n a m e : S T R I N G < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > n a m e : = g e t q u e r y s t r i n g ( ' n a m e ' ) < b r > I F n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' G u t e n M o r g e n ' + n a m e ) < b r > E L S E < b r > c g i w r i t e l n ( ' H a l l o u n b e k a n t e W e l t ' ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > < b r > U n d s c h o n s t e i g e n u n s e r e A n s p r c h e . W i r k n n t e n j a j e t z t a u f d i e I d e e v e r f a l l e n , d a s s d a s P r o g r a m m d e n U s e r " H a n s " g a n z b e s o n d e r s h e r z l i c h b e g r t , w h r e n d e s b e i d e n a n d e r e n d i e S t a n d a r d f l o s k e l n a u s d e m o b i g e n B e i s p i e l v e r w e n d e t . W i r k n n e n d i e s e s P r o b e m b e r e i t s l s e n , w e n n w i r e r k e n n e n , d a s s i n d e r D e f i n i t i o n d e r < b r > b e d i n g t e n A n w e i s u n g w i e d e r u m A n w e i s u n g e n v o r k o m m e n , d i e b e d i n g t e A n w e i s u n g m i t h i n b e l i e b i g v e r s c h a c h t e l t w e r d e n k a n n . Z u r b e s s e r e n b e r s i c h t v e r w e n d e n w i r d d a s P r i n z i p d e r T e x t e i n r c k u n g , b e i d e r j e d e V e r s c h a c h t e l u n g i m m e r w e i t e r e i n g e r c k t w i r d : < b r > < p r e > < b r > P R O C E D U R E M a i n < b r > V A R n a m e : S T R I N G < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > I F n a m e = ' H a n s ' T H E N < b r > c g i w r i t e l n ( ' E i n e n b e s o n d e r s g u t e n M o r g e n l i e b e r H a n s ' ) < b r > E L S E < b r > I F n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' G u t e n M o r g e n ' + n a m e ) < b r > E L S E < b r > c g i w r i t e l n ( ' H a l l o u n b e k a n t e W e l t ' ) < b r > E N D < b r > E N D < b r > E N D P R O C < b r > < / p r e > W e n n w i r n u n m e h r e r e A n w e n d e r m i t e i n e r j e w e i l s e i g e n e n F l o s k e l b e g r e n w o l l e n , w i r d d i e V e r s c h a c h t e l u n g s c h n e l l t i e f u n d u n b e r s i c h t l i c h . A b e r a u c h h i e r b i e t e t E A S Y A b h i l f e . F r d e n F a l l , d a s s i m E L S E - Z w e i g e i n e r b e d i n g t e n A n w e i s u n g w i e d e r u m g e n a u e i n e b e d i n g t e A n w e i s u n g s t e h t , k a n n d a f r e i n e n E L S I F - Z w e i g ( o h n e V e r s c h a c h t e l u n g ) v e r w e n d e n : < b r > < p r e > < b r > I F l o g i s c h e r A u s d r u c k _ 1 T H E N < b r > A n w e i s u n g e n _ 1 < b r > E L S I F l o g i s c h e r A u s d r u c k _ 2 T H E N < b r > A n w e i s u n g e n _ 2 < b r > E L S I F l o g i s c h e r A u s d r u c k _ 3 T H E N < b r > A n w e i s u n g e n _ 3 < b r > . . . < b r > E L S E < b r > A n w e i s u n g e n _ s o n s t < b r > E N D < b r > < / p r e > < b r > D a s P r o g r a m m p r f t z u n c h s t d e n l o g i s c h e n A u s d r u c k _ 1 . N u r w e n n d i e s e r d e n W e r t " f a l s c h " e r g i b t , w i r d d e r l o g i s c h e A u s d r u c k _ 2 b e r e c h n e t , i m " f a l s c h " - F a l l d e r l o g i s c h e A u s d r u c k _ 3 u s w . D i e A n w e i s u n g e n _ s o n s t n a c h d e m E L S E w e r d e n n u r a u s g e f h r t , w e n n s i c h b i s d a h i n k e i n " w a h r " e r g e b e n h a t , a n s o n s t e n w e r d e n d i e j e n i g e n A n w e i s u n g e n a u s g e f h r t , d i e z u d e m A b s c h n i t g e h r e n , d e s s e n l o g i s c h e r A u s d r u c k " w a h r " e r g e b e n h a t . D a s k l i n g t k o m p l i z i e r t , i s t e s a b e r n i c h t . U n s e r P r o g r a m m s i e h t d e m n a c h s o a u s : < b r > < p r e > < b r > P R O C E D U R E M a i n < b r > V A R n a m e : S T R I N G < b r > c g i w r i t e l n ( ' c o n t e n t - t y p e : t e x t / h t m l ' ) < b r > c g i w r i t e l n ( ' ' ) < b r > n a m e : = g e t q u e r y s t r i n g ( ' n a m e ' ) < b r > I F n a m e = ' H a n s ' T H E N < b r > c g i w r i t e l n ( ' E i n e n b e s o n d e r s g u t e n M o r g e n l i e b e r H a n s ' ) < b r > E L S I F n a m e < > ' ' T H E N < b r > c g i w r i t e l n ( ' G u t e n M o r g e n ' + n a m e ) < b r > E L S E < b r > c g i w r i t e l n ( ' H a l l o u n b e k a n t e W e l t ' ) < b r > E N D < b r > E N D P R O C < b r > < / p r e >
Syntax: ramtext_copy(ramtext : STRING; startpos,count : INTEGER) : INTEGER

r a m t e x t : N a m e d e s R a m t e x t i n F o r m " r a m t e x t : . . . " < b r > s t a r t p o s : P o s i t i o n d e s e r s t e n z u k o p i e r e n d e n Z e i c h e n s < b r > c o u n t : A n z a h l d e r z u k o p i e r e n d e n Z e i c h e n
K o p i e r t e i n e n B e r e i c h a u s e i n e m R a m t e x t
A n z a h l d e r w i r k l i c h k o p i e r t e n Z e i c h e n
H i e r w e r d e n c o n t Z e i c h e n a b s t a r t p o s v o n d e m R a m t e x t n a c h " r a m t e x t : ~ c l i p " k o p i e r t . W i e d e r u m i s t d e r R c k g a b e w e r t d i e A n z a h l d e r b e w e g t e n Z e i c h e n o d e r 0 , w e n n d i e K o m b i n a t i o n a u s s t a r t p o s u n d c o u n t n i c h t z u l s s i g w a r . F r s t a r t p o s s i n d W e r t e z w i s c h e n 1 u n d g e t s i z e ( r a m t e x t ) e r l a u b t . c o u n t m u s s z w i s c h e n 0 u n d g e t s i z e ( r a m t e x t ) - s t a r t p o s l i e g e n .
Syntax: ramtext_paste(ramtext : STRING; startpos : INTEGER) : INTEGER

r a m t e x t : R a m t e x t n a m e i n d e r F o r m " r a m t e x t : . . . " < b r > s t a r t p o s : P o s i t i o n d e s Z e i c h e n s , a n d e r " r a m t e x t : ~ c l i p " e i n g e f g t w i r d
F g t d e n " r a m t e x t : ~ c l i p " i n e i n e n R a m t e x t e i n
A n z a h l d e r d u r c h d i e E i n f g u n g v e r s c h o b e n e n Z e i c h e n
D i e s e F u n k t i o n f g t d e n I n h a l t d e s S y s t e m t e x t " r a m t e x t : ~ c l i p " a n d e r P o s i t i o n s t a r t p o s e i n . < b r > < b r > D e r R c k g a b e i s t e h e r v o n a k a d e m i s c h e m I n t e r e s s e , d e n n e s h a n d e l t s i c h d a b e i u m d i e A n z a h l d e r v e r s c h o b e n e n Z e i c h e n , a l s o D a t e i g r e - s t a r t p o s . < b r > D e r W e r t 0 w i r d z u r c k g e g e b e n , w e n n d e r R a m t e x t n i c h t e i n g e f g t w e r d e n k o n n t e , w e i l < b r > < b r > * a l s s t a r t p o s d e r W e r t 0 b e r g e b e n w u r d e < b r > * s t a r t p o s g r e r a l s d i e a k t u e l l e D a t e i g r e + 1 w a r < b r > < b r > F r s t a r t p o s s i n d d e m n a c h n u r d i e W e r t e v o n 1 ( E i n f g e n g a n z a m A n f a n g ) b i s g e t s i z e ( r a m t e x t ) + 1 ( E i n f g e n g a n z a m E n d e ) g l t i g . < b r >
Syntax: EncodeB64(s : STRING) : STRING

s : b e l i e b i g e Z e i c h e n k e t t e a u s Z e i c h e n v o n c h r ( 0 ) b i s c h r ( 2 5 5 )
V e r s c h l s s e l t e i n e n S t r i n g m i t B a s e 6 4
B a s e 6 4 - K o d i e r u n g v o n s
A c h t u n g : D a b e i d e r B a s e 6 4 - K o d i e r u n g a u s 3 A u s g a n g s b y t e s 4 Z i e l b y t e s ( i m d r u c k b a r e n A S C I I - B e r e i c h ) e r z e u g t , d a r f d e r z u k o d i e r e n d e S t r i n g n i c h t l n g e r a l s 1 9 0 Z e i c h e n s e i n . < b r > < b r > D i e B a s e 6 4 - K o d i e r u n g i n E m a i l s v e r w e n d e t b l i c h e r w e i s e j e w e i l s 5 7 B y t e s , w a s z u Z e i l e n m i t e i n e r S t r i n g l n g e v o n 7 6 Z e i c h e n f h r t . D i e s e Z e i l e n w e r d e n d u r c h L F g e t r e n n t a b g e s p e i c h e r t . < b r > < b r > F o l g e n d e P r o z e d u r k o d i e r t e i n e B i n r d a t e i i n d i e T e x t d a t e i t : < b r > < b r > < p r e > < b r > P R O C E D U R E W r i t e B 6 4 ( b i n a r y _ f i l e : S T R I N G ; t : I N T E G E R ) < b r > V A R r t : S T R I N G = ' r a m t e x t : b i n ' < b r > V A R i , f s : I N T E G E R < b r > c o p y f i l e ( b i n a r y _ f i l e , r t ) ; f s : = g e t s i z e ( r t ) ; i : = 1 ; < b r > W H I L E i < = f s D O < b r > w r i t e l n ( t , E n c o d e B 6 4 ( r a m t e x t _ p a r t ( r t , i , 5 7 ) ) ) ; < b r > i : = i + 5 7 < b r > E N D < b r > E N D P R O C < b r > < / p r e >
Syntax: DecodeB64(s : STRING) : STRING

s : b e l i e b i g e Z e i c h e n k e t t e a u s Z e i c h e n v o n c h r ( 3 2 ) b i s c h r ( 1 2 7 )
E n t s c h l s s e l t e i n e n S t r i n g m i t B a s e 6 4
B a s e 6 4 - D e k o d i e r u n g v o n s
F o l g e n d e P r o z e d u r d e k o d i e r t e i n e m i t t e l s E N C O D E B 6 4 v e r s c h l s s e l t e T e x t d a t e i ( t ) w i e d e r z u r c k i n e i n e B i n r d a t e i : < b r > < b r > < p r e > < b r > P R O C E D U R E R e a d B 6 4 ( b i n a r y _ f i l e : S T R I N G ; t : I N T E G E R ) < b r > V A R f : I N T E G E R < b r > I F f : = r e w r i t e ( b i n a r y _ f i l e ) T H E N < b r > W H I L E N O T E O T ( t ) D O < b r > w r i t e ( f , D e c o d e B 6 4 ( r e a d l n ( t ) ) ) < b r > E N D < b r > c l o s e ( f ) < b r > E N D < b r > E N D P R O C < b r > < / p r e > < b r >
Syntax: RETURN [Expression]

P r o z e d u r b e e n d e n u n d F u n k t i o n s e r g e b n i s b e r m i t t e l n < b r >
R E T U R N i s t n u r i n n e r h a l b e i n e r P r o z e d u r e r l a u b t . < b r > D a m i t w i r d d i e P r o z e d u r s o f o r t b e e n d e t . < b r > < b r > F a l l s s i c h u m e i n e F u n k t i o n s p r o z e d u r ( F u n k t i o n ) h a n d e l t , w i r d m i t R E T U R N d e r F u n k t i o n s w e r t ( F u n k t i o n s e r g e b n i s ) b e s t i m m t . < b r > < b r > B e i s p i e l e : < p r e > < b r > P R O C E D U R E g r o s s ( s : S T R I N G ) : S T R I N G ; < b r > R E T U R N u p p e r ( s ) < b r > E N D P R O C < b r > < b r > P R O C E D U R E F a k u l t a e t ( n : I N T E G E R ) : I N T E G E R ; < b r > I F n < = 1 T H E N R E T U R N 1 E L S E R E T U R N n * F a k u l t a e t ( n - 1 ) E N D < b r > E N D P R O C < b r > < / p r e > < b r > < b r >
Syntax: DAT2DBF(FN_DAT : STRING [; LASTFIELD : INTEGER [; MODE : INTEGER]]) : INTEGER

F N _ D A T : P f a d z u r T D B - T a b e l l e < b r > L A S T F I E L D : H c h s t e r F e l d i n d e x , 0 - > a l l e F e l d e r < b r > M O D E : 0 - > D B F i m A S C I I - F o r m a t , 1 : D B F i m A N S I - F o r m a t < b r >
K o n v e r t i e r t e i n e T D B - T a b e l l e i n d a s D B F - F o r m a t < b r >
0 : F u n k t i o n k o r r e k t a u s g e f h r t < b r > s o n s t : F e h l e r c o d e < b r > < b r > W i c h t i g s t e F e h l e r c o d e s : < b r > - 1 : D B F - D a t e i k o n n t e n i c h t a n g e l e g t w e r d e n < b r > 1 : D A T - D a t e i k o n n t e n i c h t g e f f n e r t w e r d e n < b r > 2 : L e s e f e h l e r < b r > 3 : S c h r e i b f e h l e r < b r >
W e n n d i e T D B - T a b e l l e b e i A u f r u f d e r F u n k t i o n D a t 2 D b f b e r t e i t s g e f f n e t i s t , w i r d d e r a k t u e l l e Z u s t a n d d e r T a b e l l e f r d e n E x p o r t v e r w e n d e t . < b r > < b r > D a m i t k n n e n s o w o h l S e l e k t i o n w i e R e i h e n f o l g e i n n e r h a l b d e r D B F - T a b e l l e f e s t g e l e g t w e r d e n . < b r > < b r > D i e F u n k t i o n e r z e u g t i m m e r T a b e l l e n i m d B a s e - 4 - F o r m a t , d i e a u c h v o n F o x p r o v e r a r b e i t e t w e r d e n k n n e n . B e i m F o x p r o - E x p o r t m u s s a b e r d e r M O D E 1 a n g e g e n w e r d e n , d a m i t d i e S o n d e r z e i c h e n r i c h t i g d a r g e s t e l l t w e r d e n . < b r > < b r > D i e F e l d t y p e n w e r d e n e n t s p r e c h e n d a n g e p a s s t . B e i n u m e r i s c h e n F e l d e r n w i r d d i e i n d e r T D B - S t r u k t u r f e s t g e l e g t e A n z a h l v o n N a c h k o m m a s t e l l e n e r z e u g t . < b r > < b r > M e m o s w e r d e n e b e n f a l l s e x p o r t i e r t , d i e e r z e u g t e M e m o - D a t e i h a t d i e E x t e n s i o n ' . d b t ' . B e i e i n e m F o x p r o - E x p o r t s o l l t e d i e s e D a t e i n a c h ' . f p t ' u m b e n a n n t w e r d e n . < b r > < b r > I n d i z e s w e r d e n n i c h t e x p o r t i e r t .
Syntax: DBF2DAT(FN_DBF, FN_DAT : STRING [; MODE : INTEGER]) : INTEGER

F N _ D B F : P f a d z u r D B F - T a b e l l e < b r > F N _ D A T : P f a d z u r T D B - T a b e l l e < b r > M O D E : 0 - > D B F i m A S C I I - F o r m a t , 1 : D B F i m A N S I - F o r m a t < b r >
K o n v e r t i e r t e i n e D B F - T a b e l l e ( d B a s e , F o x p r o ) i n d a s T D B - F o r m a t
0 : F u n k t i o n k o r r e k t a u s g e f h r t < b r > s o n s t : F e h l e r c o d e < b r > < b r > W i c h t i g s t e F e h l e r c o d e s : < b r > - 2 : D B F - D a t e i k o n n t e n n i c h t g e f f n e t w e r d e n < b r > - 1 : D A T - D a t e i e x i s t i e r t b e r e i t s < b r > 2 : L e s e f e h l e r < b r > 3 : S c h r e i b f e h l e r < b r >
D i e F u n k t i o n l i e s t s m t l i c h e D B F - F o r m a t e ( i n c l . 6 . 0 ) < b r > < b r > D i e F u n k t i o n e r z e u g t i m m e r T D B - T a b e l l e n i m K o m p a t i b i l t t s - F o r m a t , a l s o m i t d e n a l t e n 6 - B y t e - R e a l s , d i e s o w o h l v o n d e r t d b e n g i n e a l s a u c h v o n a l l e n P r o g r a m m e n d e r T D B - F a m i l i e ( T D B , V D P ) b e a r b e i t e t w e r d e n k n n e n . < b r > < b r > D i e F e l d t y p e n w e r d e n e n t s p r e c h e n d a n g e p a s s t . B e i n u m e r i s c h e n F e l d e r n w i r d d i e i n d e r T D B - S t r u k t u r f e s t g e l e g t e A n z a h l v o n N a c h k o m m a s t e l l e n e r z e u g t . < b r > < b r > M e m o s w e r d e n e b e n f a l l s i m p o r t i e r t . D a z u s u c h d i e F u n k t i o n n a c h . d b t ( d B a s e ) u n d . f p t ( F o x p r o ) . < b r > < b r > I n d i z e s w e r d e n n i c h t i m p o r t i e r t .
Syntax: WHILE boolexp DO Anweisungen END

b o o l e x p : l o g i s c h e r A u s d r u c k , S e l e k t i o n
a b w e i s e n d e P r o g r a m m s c h l e i f e
W H I L E f h r t z u e i n e r s o g . a b w e i s e n d e n S c h l e i f e . D e r l o g i s c h e A u s d r u c k w i r d g e p r f t . L i e f e r t e r d e n W e r t T R U E , s o w e r d e n d i e A n w e i s u n g e n z w i s c h e n D O u n d d e m z u g e h r i g e n E N D a u s g e f h r t . A n c h l i e e n d b e g i n n t d a s S p i e l v o n n e u e m . < b r > < b r > L i e f e r t d e r l o g i s c h e A u s d r u c k s c h o n g a n z a m A n f a n g d e n W e r t F A L S E , s o w i r d d i e A n w e i s u n g s f o l g e b e r h a u p t n i c h t a u s g e f h r t . < b r > < b r > B e i s p i e l : < p r e > < b r > V A R i : I N T E G E R < b r > W H I L E i + + < = 1 0 D O < b r > c g i w r i t e l n ( s t r ( i ) ) < b r > E N D < / p r e >
Syntax: REPEAT Anweisungen UNTIL boolexp

b o o l e x p : l o g i s c h e r A u s d r u c k , S e l e k t i o n
n i c h t - a b w e i s e n d e P r o g r a m m s c h l e i f e
R E P E A T f h r t z u e i n e r s o g . n i c h t - a b w e i s e n d e n S c h l e i f e . D i e A n w e i s u n g e w e r d e n a u s g e f h r t . D a n n w i r d d e r l o g i s c h e A u s d r u c k g e p r f t . L i e f e r t e r d e n W e r t F A L S E , s o b e g i n n t d a s S p i e l v o n n e u e m . < b r > < b r > D i e S c h l e i f e w i r d d e m n a c h i n j e d e m F a l l m i n d e s t e n s e i n m a l a u s g e f h r t , a u c h w e n n d e r l o g i s c h e A u s d r u c k s c h o n v o r d e m e r s t e n D u r c h l a u f d e n W e r t T R U E l i e f e r t . < b r > < b r > B e i s p i e l : < p r e > < b r > V A R i : I N T E G E R < b r > R E P E A T < b r > c g i w r i t e l n ( s t r ( i + + ) ) < b r > U N T I L i > = 1 0 < / p r e >
I n d e x d e f i n i t i o n u n d S o r t i e r k r i t e r i u m
D i e t d b e n g i n e k e n n t z w e i A r t e n v o n I n d i z e s : h i e r a r c h i s c h e u n d b e r e c h n e t e . < b r > < b r > E i n h i e r a r c h i s c h e r I n d e x b e s t e h t a u s b i s z u 1 0 F e l d a n g a b e n , d e n e n j e w e i l s e i n M i n u s - Z e i c h e n v o r n a g e s t e l l t w e r d e n k a n n , u m e i n e a b s t e i g e n d e O r d n u n g f e s t z u l e g e n . B e i S t r i n g f e l d e r n k a n n d u r c h D o p p e l p u n k t g e t r e n n t d i e A n z a h l d e r Z e i c h e n f e s t g e l e g t w e r d e n , d i e v o n d i e s e m F e l d u n d e n I n d e x b e r n o m m e n w e r d e n . < b r > < b r > B e i s p i e l e : < b r > < b r > $ P L Z , $ O r t , $ S t r a s s e < b r > $ N a m e , $ V o r n a m e : 5 < b r > - $ G e b u r t s d a t u m , $ N a m e , $ V o r n a m e < b r > < b r > E i n b e r e c h n e t e r I n d e x b e s t e h t a u s e i n e m ( m a x i m a l 4 0 Z e i c h e n l a n g e m ) a r i t h m e t i s c h e n A u s d r u c k . E r m u v o l l s t n d i g i n r u n d e n K l a m m e r n e i n g e f a s s t s e i n . < b r > < b r > B e i s p i e l e : < b r > < b r > ( $ B r u t t o - $ A b z g e ) < b r > ( l e n g t h ( $ O r t ) ) < b r > < b r > L i e f e r t d e r A u s d r u c k e i n e n S t r i n g , s o k a n n d i e A n z a h l d e r i n d e n I n d e x a u f g e n o m m e n e n Z e i c h e n f e s t g e l e g t w e r d e n : < b r > < b r > ( e x c h a n g e ( $ W o r t , ' e ' , ' a ' ) ) : 2 0
Syntax: CGITESTPARAM(ident : STRING):0|1

i d e n t : N a m e d e r C G I - V a r i a b l e n
P r f t , o b e i n P a r a m e t e r m i t d e r M e t h o d e " P O S T " b e r t r a g e n w u r d e
1 : P a r a m e t e r m i t d e m N a m e n w u r d e b e r t r a g e n u n d k a n n m i t C G I G e t P a r a m g e l e s e n w e r d e n . < b r > < b r > 0 : E s l i e g t k e i n P a r a m e t e r m i t d e m N a m e n v o r ,
l i e f e r t e i n e 1 , w e n n e i n C G I - P a r a m e t e r e n t s p r e c h e n d e n N a m e n s v o m B r o w s e r ( m i t d e r M e t h o d e P O S T ) b e r t r a g e n w u r d e , a n d e r n f a l l s 0 . E s g i l t j e d o c h z u b e a c h t e n , d a s s b e i v i e l e n H T M L - I n p u t - K o n s t r u k t e n ( b e i s p i e l s w e i s e C h e c k b o x e n o d e r R a d i o b u t t o n s ) b e r h a u p t n i c h t s b e r t r a g e n w i r d , w e n n d e r A n w e n d e r s o l c h e E l e m e n t e n i c h t a u s w h l t . < b r > < b r >
Syntax: BITNOT(VAR M : TBITS[]) : INTEGER

M : T B I T S [ ]
K o m p l e m e n t e i n e s B i t a r r a y
N B I T S ( M ) n a c h O p e r a t i o n ( = C a r d i n a l i t t v o n M )
M w i r d a l s c h a r a k t e r i s t i s c h e F u n k t i o n e e i n e r ( T e i l - ) M e n g e n a u f g e f a s s t . N a c h d e r A u s f h r u n g d e r F u n k t i o n e n t h l t M d i e c h a r a k t e r i s t i s c h e F u n k t i o n d e s K o m p l e m e n t s d i e s e r M e n g e ( d . h . j e d e s B i t w i r d i n v e r t i e r t ) .
Syntax: f_create(filename : string) : integer

f i l e n a m e : P f a d z u m S t r e a m
E r z e u g t e i n e n n e u e n S t r e a m
0 : S t r e a m w u r d e n i c h t e r z e u g t ( F e h l e r c o d e d e s B e t r i e b s s y s t e m s i n F _ E R R O R ) < b r > s o n s t H a n d l e ( I n t e g e r ) , b e r d e n d e r S t r e a m a n g e s p r o c h e n w i r d .
f _ c r e a t e e r z e u g t e i n e n n e u e n S t r e a m a u f e i n e m D a t e n t r g e r ( k e i n S o c k e t , k e i n R a m f i l e ) . < b r > < b r > D i e F u n k t i o n e n t s p r i c h t r e w r i t e f r T e x t d a t e i e n .
Syntax: f_open(filename : string[,mode : integer]) : integer

f i l e n a m e : P f a d z u m S t r e a m < b r > m o d e : 0 = R e a d O n l y
f f n e t e i n e n b e s t e h e n d e n S t r e a m < b r >
0 : S t r e a m k o n n t e n i c h t g e f f n e t w e r d e n ( F e h l e r c o d e d e s B e t r i e b s s y s t e m s i n F _ E R R O R ) < b r > s o n s t H a n d l e ( I n t e g e r ) , b e r d e n d e r S t r e a m a n g e s p r o c h e n w i r d .
f _ o p e n f f n e t e i n e n b e s t e h e n d e n S t r e a m a u f e i n e m D a t e n t r g e r ( k e i n S o c k e t , k e i n R a m f i l e ) z u m L e s e n u n d S c h r e i b e n . D i e F u n k t i o n e n t s p r i c h t r e s e t f r T e x t d a t e i e n .
Syntax: f_close(hdl : integer) : integer

h d l : H a n d l e v o n f _ c r e a t e o d e r f _ o p e n
S c h l i e t e i n e n n e u e n S t r e a m
0 : S t r e a m w u r d e e r f o l g r e i c h g e s c h l o s s e n < b r > s o n s t F e h l e r c o d e d e s B e t r i e b s s y s t e m s
S c h l i e t d e n S t r e a m u n d g i b t d i e r e s e r v i e r t e n R e s s o u r c e n w i e d e r f r e i .
Syntax: f_read(hdl : integer; VAR array[]; nbytes : INTEGER) : integer

h d l : H a n d l e v o n f _ c r e a t e o d e r f _ o p e n < b r > a r r a y : B Y T E [ ] , I N T E G E R [ ] , R E A L [ ] , C H A R [ ] , T B I T S [ ] < b r > n b y t e s : A n z a h l d e r z u l e s e n d e n B y t e s
L i e s t a u s e i n e m S t r o m
A n z a h l d e r w i r k l i c h g e l e s e n e n B y t e s
D i e s e F u n k t i o n l i e s t n b y t e s B y t e s a u s d e m S t r e a m i n d a s b e r g e b e n e A r r a y . F a l l s d e r P a r a m e t e r n b y t e s n i c h t a n g e g e b e n w i r d , w i r d d a s g e s a m t e A r r a y g e l e s e n .
Syntax: f_seek(hdl, pos : integer) : integer

h d l : H a n d l e v o n f _ c r e a t e o d e r f _ o p e n < b r > p o s : P o s i t i o n i n n e r h a l b d e s S t r e a m ( 1 . B y t e = 0 )
P o s i t i o n i e r t i n e i n e m S t r e a m < b r >
0 : P o s i t i o n i e r u n g e r f o l g r e i c h < b r > s o n s t F e h l e r c o d e d e s B e t r i e b s s y s t e m s
D i e F u n k t i o n s e t z t d e n P o s i t i o n s z e i g e r i n n e r h a l b d e s S t r e a m s . A b d i e s e m w i r d d a n n g e l e s e n o d e r g e s c h r i e b e n .
Syntax: f_write(hdl : integer; VAR array[]; nbytes : INTEGER) : integer

h d l : H a n d l e v o n f _ c r e a t e o d e r f _ o p e n < b r > a r r a y : B Y T E [ ] , I N T E G E R [ ] , R E A L [ ] , C H A R [ ] , T B I T S [ ] < b r > n b y t e s : A n z a h l d e r z u s c h r e i b e n d e n B y t e s
S c h r e i b t i n e i n e n S t r e a m
A n z a h l d e r w i r k l i c h g e s c h r i e b e n e n B y t e s
D i e s e F u n k t i o n s c h r e i b t n b y t e s B y t e s a u s d e m b e r g e b e n e A r r a y i n d e n S t r e a m . F a l l s d e r P a r a m e t e r n b y t e s n i c h t a n g e g e b e n w i r d , w i r d d a s g e s a m t e A r r a y g e s c h r i e b e n .
Syntax: f_size(hdl : integer) : integer

h d l : H a n d l e v o n f _ c r e a t e o d e r f _ o p e n < b r >
E r m i t t e l t d i e G r e e i n e s S t r e a m
> = 0 A n z a h l d e r B y t e s i m S t r e a m < b r > s o n s t F e h l e r
L i e f e r t d i e D a t e i g r e d e r e x t e r n e n D a t e i i n B y t e s .
< k e i n e >
L i e f e r t d e n F e h l e r c o d e d e s B e t r i e b s s y s t e m s f r d i e l e t z t e O p e r a t i o n
F e h l e r c o d e d e s B e t r i e b s s y s t e m s f r d i e l e t z t e S t r e a m - F u n k t i o n
Syntax: openSock(cHostAddress : STRING) : INTEGER

c H o s t A d d r e s s e n t h l t d i e U R L s o w i e d e n T C P - P o r t d e s D i e n s t e n s , z u d e m e i n e V e r b i n d u n g h e r g e s t e l l t w e r d e n s o l l . < b r > c H o s t A d d r e s s i s t e i n S t r i n g d e r F o r m : I P : P o r t w i e ' 1 9 2 . 1 6 8 . 1 . 1 0 0 : 8 0 ' o d e r a u c h ' m a i l . t d b - e n g i n e . d e : 2 5 '
S t e l l t e i n e V e r b i n d u n g z u e i n e m b e l i e b i g e n S e r v e r h e r .
S o c k e t - H a n d l e ( 1 b i s 3 2 )
o p e n S o c k ( ) s t e l l t e i n e T C P - S t r e a m - V e r b i n d u n g z u b e l i e b i g e n R e c h n e r n u n d d e r e n D i e n s t e n h e r ( i n s o f e r n d i e s e e r r e i c h b a r s i n d ) . S o m i t w i r d e s m g l i c h b e i n a h e j e d e n D i e n s t d e s I n t e r n e t a u c h i n t d b e n g i n e - A n w e n d u n g e n z u n u t z e n . D i e s k n n e n z . B . s e i n : S M T P , P O P 3 , M y S Q L , I M A P , I R C u n d v i e l e a n d e r e .
Syntax: closeSock(socket : INTEGER) : INTEGER

s o c k e t : v o n o p e n S o c k ( ) g e n e r i e r t e s S o c k e t - H a n d l e
S c h l i e s s t e i n e b e s t e h e n d e T C P - V e r b i n d u n g z u e i n e m S e r v e r / D i e n s t
M i t c l o s e S o c k ( ) w i r d e i n e b e s t e h e n d e V e r b i n d u n g g e s c h l o s s e n , d i e e n t s p r e c h e n d e n R e s s o u r c e n w e r d e n f r e i g e g e b e n .
Syntax: getSock(socket : INTEGER; VAR p : { CHAR[{offset}] | BYTE[{offset}] }; maxchars : INTEGER) : INTEGER

s o c k e t : v o n o p e n S o c k ( ) g e n e r i e r t e s S o c k e t - H a n d l e < b r > p : b e l i e b i g g r o s s e s E i n - Z e i c h e n - A r r a y , e n t w e d e r v o m T y p C H A R o d e r B Y T E < b r > o f f s e t : S t a r t p o s i t i o n i m A r r a y , a b d e r d i e e i n g e l e s e n e n Z e i c h e n a b g e l e g t w e r d e n s o l l e n < b r > m a x c h a r s : A n z a h l d e r e i n z u l e s e n d e n B y t e s / Z e i c h e n
L i e s t D a t e n a u s e i n e r b e s t e h e n d e n T C P - V e r b i n d u n g
A n z a h l d e r t a t s c h l i c h e i n g e l e s e n e n B y t e s / Z e i c h e n
g e t S o c k ( ) l i e s t d i e b e r d i e g e f f n e t e V e r b i n d u n g " h e r e i n s t r m e n d e n " Z e i c h e n u n d l e g t d i e s e i n e i n e m A r r a y a b . < b r > D a g r s s e r e D a t e n m e n g e n i m m e r i n m e i s t g l e i c h g r o s s e T C P - P a k e t e a u f g e t e i l t w e r d e n , k a n n e s s e i n , d a s s m a n , u m d i e g e s a m t e I n f o r m a t i o n s e i n h e i t e i n l e s e n z u k n n e n , e i n e S c h l e i f e b e n t i g t . < b r > < b r > B e i s p i e l : < b r > < p r e > < b r > w h i l e n R e a d B y t e s : = n R e a d B y t e s + g e t S o c k ( s , a [ n R e a d B y t e s ] , n B y t e s T o R e a d ) < n B y t e s T o R e a d d o n B l o c k s R e a d + + e n d < b r > < / p r e > < b r > < b r > J e n a c h d e m i n w i e v i e l e k l e i n e r e E i n h e i t e n d i e n B y t e s T o R e a d g r o s s e D a t e n m e n g e u n t e r t e i l t w u r d e , u s m o m e h r D u r c h l u f e ( n B l o c k s R e a d ) b r a u c h t d i e s e S c h l e i f e . n B y t e s R e a d i s t o f t m a l s e i n e Z a h l i m B e r e i c h v o n 1 5 0 0 , e i n e r b e l i e b t e n G r s s e n b e s c h r n k u n g i m N e t z w e r k .
Syntax: putSock(socket : INTEGER; VAR p : { CHAR[] | BYTE[] }; maxchars : INTEGER) : INTEGER

s o c k e t : v o n o p e n S o c k ( ) g e n e r i e r t e s S o c k e t - H a n d l e < b r > p : b e l i e b i g g r o s s e s E i n - Z e i c h e n - A r r a y , e n t w e d e r v o m T y p C H A R o d e r B Y T E < b r > m a x c h a r s : A n z a h l d e r a u s z u g e b e n d e n B y t e s / Z e i c h e n
S c h r e i b t i n e i n e b e s t e h e n d e T C P - S t r e a m - V e r b i n d u n g
A n z a h l d e r t a t s c h l i c h g e s c h r i e b e n e n B y t e s / Z e i c h e n
p u t S o c k ( ) s c h r e i b t d i e i m A r r a y l i e g e n d e n Z e i c h e n i n d a s S o c k e t - H a n d l e .
S p e i c h e r t e i n e K e t t e v o n e i n z e l n e n B i t s
D e r D a t e n t y p T B I T S t r i t t n u r a l s A r r a y - V a r i a b l e a u f . < b r > E r e i g n e t s i c h i d e a l , u m d i e i n t e r n e n M a r k i e r u n g s l i s t e e i n e r T a b e l l e a u f z u n e h m e n . < b r > M i t H i l f e d e r l o g i s c h e n B i t - O p e r a t i o n e n B i t A n d ( ) , B i t O r ( ) , B i t A n d N o t ( ) u n d B i t N o t ( ) l a s s e n s i c h i n T B I T S - A r r a y s g e s p e i c h e r t e E r g e b n i s m e n g e n e l e g a n t m i t e i n a n d e r k o m b i n i e r e n u m s o z . B . S c h n i t t m e n g e n z u e r m i t t e l n . < b r > < b r > 8 B i t s i m T B I T S - A r r a y e n t s p r e c h e n e i n e r S p e i c h e r b e l e g u n g v o n g e n a u 1 B y t e . < b r > D i e M a r k i e r u n g s l i s t e e i n e r T a b e l l e m i t 8 0 0 . 0 0 0 D a t e n s t z e w r d e a l s o 1 0 0 K B y t e i m S p e i c h e r b z w . a u f d e r F e s t p l a t t e b e l e g e n . < b r >
Syntax: Timeout(seconds : INTEGER) : INTEGER

s e c o n d s : A n z a h l d e r S e k u n d e n b i s z u m A b b r u c h o d e r 0 z u m L s c h e n e i n e s z u v o r g e s e t z t e n T i m e o u t s
( n u r L i n u x ) B r i c h t d i e A u s f h r u n g e i n e r P r o z e d u r n a c h a b g e l a u f e n e r F r i s t a b < b r >
D i e s e F u n k t i o n r u f t d i e L i n u x - F u n k t i o n < s p a n s t y l e = " f o n t - s t y l e : i t a l i c ; " > A l a r m < / s p a n > m i t d e m b e r g e b e n A r g u m e n t a u f . < b r / > < b r > D e r L i n u x - K e r n e l s e n d e t d a n n n a c h A b l a u f d e r a n g e b e n e n Z e i t ( i n S e k u n d e n ) e i n S i g n a l ( < s p a n s t y l e = " f o n t - s t y l e : i t a l i c ; " > S I G A L R M < / s p a n > ) a n d e n a u f r u f e n d e n P r o z e s s . < b r / > < b r > D i e t d b e n g i n e v e r a r b e i t e t d i e s e s S i g n a l , i n d e m s i e d i e j e n i g e P r o z e d u r , d i e z u m Z e i t p u n k t d e s S i g n a l s g e r a d e a b g e a r b e i t e t w i r d , m i t R E T U R N 0 ( b z w . R E T U R N ' ' b e i e i n e r S T R I N G - F u n k t i o n ) v e r l s s t . < b r / > < b r > W i r d v o r h e r , ( a l s o b e v o r d a s S i g n a l g e s e n d e t w i r d ) d i e F u n k t i o n T i m e O u t ( ) m i t d e m P a r a m e t e r 0 a u f g e r u f e n , s o w i r d k e i n S i g n a l g e s e n d e t . < b r / > < b r > M i t d i e s e m M e c h a n i s m u s k a n n m a n s i c h r e c h t e i n f a c h T i m e o u t s b a s t e l n . < b r / >
Syntax: execProg(cFilename : STRING) : INTEGER

c F i l e n a m e : P f a d z u r Q u e l l c o d e - D a t e i . K a n n a u c h e i n R a m t e x t s e i n ( " r a m t e x t : . . . " )
K o m p i l e r t u n d f h r t b e l i e b i g e n E A S Y - C o d e z u r L a u f z e i t a u s
B e i d i e s e r F u n k t i o n h a n d e l t e s s i c h e i g e n t l i c h u m e i n e a l t e T D B - F u n k t i o n , d i e j e t z t i n d e r t d b e n g i n e r e a k t i v i e r t w u r d e . D e r P a r a m e t e r c F i l e n a m e v e r w e i s t a u f e i n e T e x t d a t e i , d i e E A S Y - C o d e e n t h l t . D i e s e r C o d e w i r d z u n c h s t k o m p i l i e r t u n d d a n n s o f o r t a u s g e f h r t . G e r a d e i n V e r b i n d u n g m i t R a m t e x t e n e r g e b e n s i c h s e h r s c h n e M g l i c h k e i t e n : M a n s e t z t s i c h k o m p l e x e D a t e n b a n k a b f r a g e n i n e i n e m R a m t e x t z u s a m m e n u n d f h r t d i e s e n d a n n a u s . < b r > < b r > B e i m E i n s a t z v o n E x e c P r o g i s t z w e i e r l e i z u b e a c h t e n : I n n e r h a l b d e s a u s z u f h r e n d e n C o d e s k a n n m a n z w a r a u f a l l e V a r i a b l e n d e s a u f r u f e n d e n P r o g r a m m e s z u g r e i f e n , n i c h t a b e r a u f d i e P r o z e d u r e n u n d F u n k t i o n e n . U n d i m C o d e v e r w e n d e t e V a r i a b l e n w e r d e n d u r c h d e n C o m p i l e r v e r n d e r t , m s s e n a l s o i m C o d e e x p l i z i t a u f d e n a k t u e l l e n W e r t g e s e t z t w e r d e n . < b r >
Syntax: MakePW(cText : STRING) : STRING

c T e x t : d e r z u v e r s c h l s s e l n d e T e x t
V e r s c h l s s e l t e i n e n S t r i n g i m U n i x - S t a n d a r d < b r >
D e r v e r s c h l s s e l t e T e x t
V e r s c h l s s e l t e i n e n S t r i n g i m U n i x - S t a n d a r d
Syntax: TestPW(cText,cVgl : STRING) : INTEGER

c T e x t : d e r v e r s c h l s s e l t e T e x t < b r > c V g l : d e r m i t c T e x t z u v e r g l e i c h e n d e S t r i n g
P r f t e i n e n S t r i n g a u f b e r e i n s t i m m u n g m i t e i n e m v e r s c h l s s e l t e n T e x t
0 w e n n c T e x t k e i n e V e r s