EBSILON®Professional Online Dokumentation
EbsScript / EbsScript-Funktionen
In diesem Thema
    EbsScript-Funktionen
    In diesem Thema

    Allgemeines zu EbsScript Funktionen


    EbsScript bietet eine Menge Funktionen, die zwar nicht Teil der PASCAL Sprache sind, aber spezifische Zusätze für den Gebrauch von EbsScript innerhalb EBSILON darstellen. Diese Funktionen können durch Eintragen des Funktionsnamen aufgerufen werden, z.B.

    simulate;
    

    Wenn die Funktion Argumente erfordert, müssen diese in runden Klammern stehen ”( )”, getrennt durch Kommas (”,”): Wenn die Funktion einen Wert zurückgibt, kann dieser in einer Zuteilungsoperation des richtigen Variablentyps genutzt werden, z.B.

    string1 := getTime("%d.%m.%Y" );
    

    wo string1 als STRING definiert ist. ”%d.%m.%Y" ist ein optionales Argument der getTime Funktion, die das Format der sich ergebenden Zeitfolge spezifiziert (in diesem Fall wird das Datum wie folgt angezeigt ”23.10.2001”).

    Wenn Sie den Funktionsbaum im EbsScript Editor verwenden, wird der Typ des Rückgabewertes hinter dem Funktionsnamen angezeigt (z.B., getTime:STRING). Die Argumente werden sichtbar, wenn Sie die Funktion in Ihren Code mittels Doppelklick auf den Funktionsnamen im Baum einfügen. Z.B. fügt der EbsScript Editor

    getTime( {format:STRING = "%H:%M:%S"} );
    

    ein.

    Diese Mitteilung zeigt an, dass getTime ein Argument übernimmt, das Format genannt wird und vom Typ STRING ist. Aber dieses Argument ist optional, da es einen Standardwert gibt, der hinter ”=” angezeigt wird. Deshalb sind die Aufrufe

    getTime("%H:%M:%S");
    

    und

    getTime;
    

    gleichwertig.

    Es gibt verschiedene Gruppen von Funktionen, die in den folgenden Kapiteln beschrieben sind. Die Tabellen bestehen aus

    Für einige Tabellen sind zusätzliche Spalten eingefügt.

     

    EbsScript Erweiterungen

    Es ist möglich, die Funktionalität von EbsScript zu erweitern, z.B. für den Gebrauch im ”Ebsilon Performance Optimization System” (EPOS). Einige Funktionen können innerhalb EBSILON®Professional ebenso genutzt werden. Die verfügbaren Add-Ins sind in der Funktionsübersicht aufgelistet mit der Anmerkung ”Spezielle Lizenz erforderlich”. Wenn Sie an der Verwendung dieser Funktionen interessiert sind, nehmen Sie bitte Kontakt mit uns auf.

     

    Funktionsüberladungen

    Es besteht die Möglichkeit (ab Release 12.5), Funktionen und Prozeduren zu überladen. Diese müssen allerdings durch ein angehängtes „overload“ gekennzeichnet sein.
    Gleichnamige überladene Funktionen und Prozeduren müssen sich in der Signatur paarweise unterscheiden (in Anzahl der Parameter oder in mindestens einem Parametertypen).
    Siehe EbsScript in Beispieldatei „Data\Examples\ebsscript_function_overload.ebs“)

    Klassen

    EbsScript unterstützt "Klassen" (ab Release 12.5). Da Pascal keinen Standard für "Klassen" definiert, sind EbsScript-Klassen an die Syntax von Delphi angelegt.
    Im Unterschied zu Delphi sind Klasseninstanzen in EbsScript jedoch automatische Variablen, d.h. Klasseninstanzen müssen nicht explizit zerstört werden, sondern werden von System beim Freigeben der letzten Referenz automatisch zerstört (Stichwort: Automatic Reference Counting aka. ARC).

    Weiterhin erlauben Klassen das Überladen von Operatoren (siehe Beispieldatei „Data\Examples\ebsscript_operator_overload.ebs“). Der EbsScript-Datenkonstruktor „Record“ erlaubt nun auch Member-Funktionen/Prozeduren und Operatoren, jedoch keine Vererbung oder virtuelle Methoden. Der Hauptunterschied zwischen Klassen
    und Records besteht darin, dass Klasseninstanzen „Reference-Typen“ sind (d.h. auf den Heap allokiert werden), wohingegen Instanzen von Records „Value-Typen“ sind (d.h. in der Regel. auf den Stack allokiert werden).