Übersicht der Funktionen

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.

Runden

function round(X: Real): Real;

Rundet die Zahl X auf die nächste ganze Zahl. Liegt X genau zwischen zwei Zahlen, wird die gerade Zahl zurückgegeben.

Kosinus

function cos(X: Real): Real;

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

Arkuskosinus

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$.

Natürlicher Logarithmus

function ln(X: Real): Real;

Berechnet den natürlichen Logarithmus von X.

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.

Arkussinus

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.

Arkustangens

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.

Fakultät

function fact(X: Real): Real;

Liefert X!.

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".

Array zusammenführen

function Delete(Arr: Array; Position: Real; Length: Real): Array;

Erzeugt einen Array mit allen Elementen aus Arr bis auf die Length Elemente beginnend an Position.

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.

Abfrage des Arbeitsverzeichnisses

function GetCWD(): String;

Git das aktuelle Arbeitsverzeichnis zurück.

Protokolle

Mit diesen Funktionen kann sowohl auf das im aktuellen Prüfablauf erstellte Protokoll als auch auf Protokolle aus dem Archiv zugegriffen werden. Dazu wird das gerade anzeigte Protokoll gewechselt. Auf das Archiv wird über die Position in der Liste von gegebenenfalls gefilterten Protokollen im Archiv zugegriffen.

Protokollfilter: Programmname

function ProtoFilterProgram(ProgId: String): Void;

Filtere nach dem Pfad des Prüfprogramms, welches das Protokoll erzeugt hat. Ein leerer String bedeutet, dass nicht nach Prüfprogramm gefiltert wird.

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

Beim Programmstart oder nach ProtoClearFilter entspricht dieser Filter dem Wert 7, es sind also alle Bits gesetzt.

Protokollfilter: Datum

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

Nur auf Protokolle aus einem bestimmten Zeitraum zugreifen. Das Datum wird als String angegeben, das Format entspricht Tag.Monat.Jahr Stunde:Minute:Sekunde. Ein leerer String bedeutet, dass nicht nach dem entsprechenden Kriterium gefiltert wird.

Protokollfilter: Seriennummer

function ProtoFilterSerial(Serial: String): Void;

Nur Protokolle für eine bestimmte Seriennummer zulassen. Ein leerer String bedeutet, dass nicht nach Seriennummer gefiltert wird.

Protokollfilter: Prüflingsbezeichnung

function ProtoFilterIdent(Ident: String): Void;

Nur Protokolle für eine bestimmte Prüflingsbezeichnung zulassen. Ein leerer String bedeutet, dass nicht nach Prüflingsbezeichnung gefiltert wird.

Protokollfilter zurücksetzen

function ProtoClearFilter(): Void;

Löschen des Protokollfilters. Es wird wieder auf das gesamte Archiv zugegriffen.

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 im aktuellen Prüfablauf erzeugte Messprotokoll wieder 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 erste 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): Boolean;
function ProtoHasFailed(Text: String): Boolean;

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

Ergebnisse im Protokoll

function ProtoIsResult(Index: Number): Boolean;
function ProtoIsResult(Text: String): Boolean;

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

Metadaten des Protokolls

function ProtoGetTestStation(): String;

Liefert den Namen des Prüfplatzes.

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.

Datum und Uhrzeit in Text im ISO8601-Format

function DateTimeToISO8601(DateTime: Real): String;

Konvertiert den Zeitstempel (im gleichen Format wie die DATETIME-Variable) in einen String im ISO8601-Format mit Zeitverschiebung.

Tag im Jahr von Datum und Uhrzeit

function DayOfTheYear(DateTime: Real): Real;

Gibt die Anzahl der Tage zwischen dem angegebenen Zeitstempel (im gleichen Format wie die DATETIME-Variable) und dem 31. Dezember des vorhergehenden Jahres zurück.

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".