9.4. Übersicht der Funktionen

9.4.1. Funktionen zur Zahlmanipulation

Betrag

function abs(X : Real) : Real;

Berechnet den absoluten Betrag des Parameters X.

Konvertierung in Text

function inttostr(X: Real; Places: Real = 0) : String;
function realtostr(X: Real; Digits = -1; Places: Real = -1;) : String;

Wandelt die Zahl X in einen Text um. Places gibt dabei optional die Nachkommastellen an. Wenn die Anzahl der Nachkommastellen von X kleiner ist als Places, wird das Ergebnis mit Nullen aufgefüllt. Digits gibt die Anzahl der Vorkommastellen an, bzw. die Anzahl signifikanter Stellen falls Places -1 ist.

Konvertierung in Text (Hexadezimal)

function inttohex(X : Real) : String;

Wandelt die Zahl X in einen String um, der die Repräsentation der Zahl in Hexadezimaldarstellung enthält.

Kosinus

function cos(X : Real) : Real;

Berechnet den Kosinus des Winkels X. X muss im Gradmaß angegeben werden.

function arccos(X : Real) : Real;

Berechnet den Arkuskosinus von X. Das Ergebnis ist im Gradmaß.

Logarithmus

function log(X : Real) : Real;

Berechnet den Logarithmus von X zur Basis $10$.

Quadrieren

function sqr(X : Real) : Real;

Berechnet das Quadrat des Parameters X. Der Aufruf dieser Funktion ist äquivalent zur Auswertung des Terms x^2.

Quadratwurzel

function sqrt(X : Real) : Real;

Berechnet die Quadratwurzel von X. Diese Funktion ist äquivalent zu dem Ausdruck x^(1/2). Zum ziehen der n-ten Wurzel kann auch x^(1/n) verwendet werden.

Sinus

function sin(X : Real) : Real;

Berechnet den Sinus von X. Beachten Sie, dass X im im Gradmaß angegeben werden muss.

function arcsin(X : Real) : Real;

Berechnet den Arkussinus von X. Das Ergebnis ist im Gradmaß.

Tangens

function tan(X : Real) : Real;

Berechnet den Tangens des Winkels X. X muss im Gradmaß vorliegen.

function arctan(X : Real) : Real;

Berechnet den Arkustangens von X. Das Ergebnis ist im Gradmaß.

Zufallszahl

function Random(Limit : Real) : Real;

Liefert eine Zufallszahl zwischen 0 und Limit.

9.4.2. Funktionen über Strings

Länge

function Length(Arr : Array) : Real;
function Length(Str : String) : Real;

Liefert als Ergebnisse die Anzahl der Elemente des Arrays Arr beziehungsweise der Zeichen des Textes Str.

Teilstring

function SubStr(Str : String; Start : Real; Laenge : Real) : String;

Kopiere aus dem String Str die Zeichenkette die an Position Start beginnt und Laenge Zeichen lang ist. Das erste Zeichen des Strings besitzt den Index 0.

String aufteilen

function Split(Str : String; Separator : String) : Array;

Teilt den String Str an den Vorkommnisen des Strings Separator auf und erzeugt daraus ein Array.

Bsp: Aus +Split("1,2,3,4", ",");+ wird das Array +["1", "2", "3", "4"]+.

Array zusammenführen

function Join(Arr : Array; Separator : String) : String;

Fügt alle Elemente des Arrays zu einem String zusammen. Je zwei Elemente werden durch den String Separator getrennt.

Beispiel: Join(["1", "2", "3", "4"], ","); erzeugt den String "1,2,3,4".

In einem String suchen

function StrPos(HayStack : String; Needle : String; Offset : Number = 0) : Number

Sucht in einem String HayStack den String Needle, beginnend an Position Number. Wird der String gefunden, wird die Position des Strings zurückgegeben. Kommt Needle nicht in HayStack vor, gibt die Funktion 0 zurück.

String ersetzen

function StrReplace(HayStack : String; Needle : String; Replace : String) : String;

Ersetze alle Vorkommnisse von Needle in HayStack durch Replace.

Leerzeichen löschen

function Trim(Str : String) : String;

Lösche alle Leerzeichen am Anfang und am Ende des Strings Str.

Wandle einen String in ein Zahlenarray um

function ToArray(Str : String) : array of Number;

Wandle den String in ein Zahlenarray. Dabei erscheint der ASCII-Wert jedes Zeichens als Element im Array.

Wandle einen String in eine Zahl um

function ToNumber(Str : String; Default : Number = 0) : Number;

Wandle einen String explizit in eine Zahl um. Sollte die Umwandlung fehlschlagen, wird der Defaultwert zurückgegeben.

Anmerkung

Normalerweise führt Winguard automatisch eine Umwandlung durch, falls einer Funktion, die ein Zahl als Parameter erwartet, ein String übergeben wird. Für Operatoren, die auf mehreren Typen arbeiten, kann diese Umwandlung mitunter nicht eindeutig bestimmt werden. Winguard meldet in diesem Fall „Die aufgerufene Funktion konnte nicht eindeutig bestimmt werden.“. In solch einem Fall, kann mit dieser Funktion die Konvertierung explizit vorgenommen werden.

Wandle einen String in eine Ganze Zahl um

function Int(Str : String; Default : Number = 0) : Number;

Wandle einen String explizit in eine Ganze Zahl um. Sollte die Umwandlung fehlschlagen, wird der Defaultwert zurückgegeben.

Normalerweise kann die Funktion ToNumber verwendet werden, um Strings in Zahlen zu konvertieren. Die Konvertierung von Zahlen in Hexadezimalnotation wird von ToNumber allerdings verweigert. Int stellt diese Funktionalität zur Verfügung.

ASCII-Wert eines Zeichens

function ToAscii(Str : String) : Number;

Liefert zu einem String den ASCII-Wert des ersten Zeichens oder -1 falls der String leer ist.

String aus ASCII

function FromAscii(Ascii : Number) : String;

Liefert das Zeichen mit dem gegebenen Ascii-Wert.

Umwandeln in Großbuchstaben

function ToUpper(Str : String) : String;

Wandelt den übergebenen String in Großbuchstaben um.

Umwandeln in Kleinbuchstaben

function ToLower(Str : String) : String;

Wandelt den übergebenen String in Kleinbuchstaben um.

Konvertierung von Arrays in einen Text

function String(Arr : Array; Format : Real = 0; Laenge : Real = MaxInt; Sep : String = ") : String;

Wandelt Arr in einen Text um. Der Parameter Laenge gibt an, wie viele Elemente des Arrays maximal angezeigt werden. Ist der Parameter Sep nicht leer, wird der String zwischen den Einzelnen Elementen eingefügt. Format gibt an, wie Arraywerte vom Typ Real in einen String umgewandelt werden sollen:

0

Die Werte des Arrays werden als ASCII-Codes interpretiert.

1

Die Werte des Arrays werden als Dezimalzahl dargestellt.

2

Die Werte des Arrays werden als Hexadezimalzahl dargestellt.

3

Die Werte des Arrays werden als Fliesspunktzahl dargestellt.

4

Wie 2., jedoch ohne führendes $.

Die Parameter Format, Laenge und Sep sind optional.

9.4.3. Protokolle

Protokollfilter: Programmname

function ProtoFilterProgram(ProgId : String) : Void;

Filtere nach dem Programmnamen.

Protokollfilter: Programbewertung

function ProtoFilterValuation(Valuation : Number) : Void;

Filtere nach Programmbewertung. Die Bewertung wird als Bit-Array angegeben, wobei die Bits folgende Bedeutung haben: 1=Fail, 2=Pass, 4=Abort

Protokollfilter: Datum

function ProtoFilterDate(StartDate : String; EndDate : String) : Void;

Nur Protokolle aus einem bestimmten Zeitraum zulassen. Das Datum wird als String angegeben, das Format entspricht Tag.Monat.Jahr Stunde:Minute:Sekunde.

Protokollfilter: Seriennummer

function ProtoFilterSerial(Serial : String) : Void;

Nur Protokolle für eine bestimmte Seriennummer zulassen.

Protokollfilter: Prüflingsbezeichnung

function ProtoFilterIdent(Ident : String) : Void;

Nur Protokolle für eine bestimmte Prüflingsbezeichnung zulassen.

Protokollfilter zurücksetzen

function ProtoClearFilter() : Void;

Löschen des Protokollfilters.

Anzahl der Protokolle

function ProtoGetCount() : Number;

Liefert die Anzahl der Protokolle für den aktuell eingestellten Protokollfilter.

Protokoll anzeigen

function ProtoLoadProto(Index : Number) : Void;

Lade das Protokoll mit der angegebenen Nummer aus der Protokollliste in das Messwertprotokoll. Das aktuelle Messprotokoll wird beim Beenden des Programms automatisch wieder angezeigt.

Aktuelles Protokoll anzeigen

function ProtoShowActive() : Void;

Zeige das aktuelle Messprotokoll an.

Text des Protokolls

function ProtoGetText(Index: Number) : String;

Liefert den Text in der ersten Spalte des Messprotokolls in der angegebenen Zeile.

Werte im Protokoll

function ProtoGetValue(Index: Number) : Number;
function ProtoGetValue(Text: String) : Number;

Liefert den Wert in der angegebenen Zeile. Wenn Text angegeben ist, wird die letzte Zeile verwendet, in der in der ersten Spalte der Text steht.

Werte im Protokoll

function ProtoGetUnit(Index: Number) : String;

Liefert die Einheit in der angegebenen Zeile.

Grenzen im Protokoll

function ProtoGetUpperLimit(Index: Number) : Number;
function ProtoGetLowerLimit(Index: Number) : Number;

Liefert die verwendeten Grenzen in der angegebenen Zeile.

Bewertung im Protokoll

function ProtoHasFailed(Index: Number) : Number;
function ProtoHasFailed(Text: String) : Number;

Wenn die angegebene Zeile einen fehlgeschlagenen Testschritt repräsentiert, liefere true. Wenn Text angegeben ist, wird die letzte Zeile verwendet, in der in der ersten Spalte der Text steht.

Metadaten des Protokolls

function ProtoGetTestStation() : String;

Liefert den Namen des Prüfplatzes.

9.4.4. Funktionen zum Konvertieren zwischen Datenformaten

IEEE-754 Single nach Byte-Repräsentation

function IEEE754SingleToByteArray(Value : Number) : array of Number;

Wandle den Zahlenwert in eine Fliesspunktzahl nach IEEE-754 Single-Precision um und liefere den daraus resultierenden Speicherinhalt in einem Byte-Array.

Die Konvertierung kann zu Datenverlust führen! IEEE-754 definiert den Datentyp Single als 32bit-Fliesspunktzahl, mit einem 8bit-Exponenten und 23bit-Mantisse. Das resultierende Array besitzt vier Elemente.

Byte-Array nach IEEE-754 Single

function ByteArrayToIEEE754Single(Value : array of Number) : Number;

Umkehrfunktion zu IEEE754SingleToByteArray: das übergebene Zahlenarray muss mindestens vier Werte aufweisen. Die Werte werden als Auszug eines Speichers, der ein IEEE-754-Single enthält, interpretiert. Zurückgegeben wird der Wert dieser Fliesspunktzahl.

9.4.5. Verschiedenes

Datei lesen

function ReadFile(FileName : String) : Array;

Lese die Datei mit dem Pfad FileName in ein Array ein.

Datei schreiben

function WriteFile(FileName : String; Contents : Array) : Number;

Schreibe den Inhalt des Arrays zeilenweise in die Datei mit Namen FileName. Sollte die Datei existieren, wird der alte Inhalt gelöscht.

Skript ausführen

function Eval(Script : String) : Misc

Führt das übergebene Skript aus und liefert den Ergebniswert. Bsp: Eval("1 + 2") = 3.

Umgebungsvariable abfragen

function GetEnv(VarName : String) : String

Liest den Wert der Umgebungsvariable "VarName".