GGMan - Testen und Manipulieren von Geograf-Daten
Skript Factories Filter Grabber Funktionen Macros Utils Files GUI Typen Elemente
Die Factories halten Steuerparameter, Ein-, Zwischen- und Ausgabewerte in Variablen vor. Um den Auswerteprozess für den Anwender frei konfigurierbar zu halten, kann auf diese Variablen mit Funktionen zugegriffen werden.
Funktionen können im Skript innerhalb der Factory-Definition, aber auch bei Wertzuweisungen von Variablen vereinbart werden.
$startnr = @Counter(99990000000) new Factory ReaderFactory name = PunktArtPrüfer filter = new Filter ArtFilter range = 452 end function = @Log(WARNING, "Punktart 452 ist nicht zu verwenden") finally = @Log("&count fehlerhafte Punkte gefunden") end
Funktionen werden immer mit dem Präfix '@' und dem Funktionsnamen vereinbart. Es folgen in runden Klammern eines oder mehrere Argumente. Mehrere Argumente werden mit Komma getrennt angegeben.
@Log(WARNING, "Punktart 452 ist nicht zu verwenden")
Die Funktionen können eine feste oder variable Anzahl von Argumenten besitzen. Die zulässige Anzahl und die Bedeutung entnehmen Sie bitte der Beschreibung der einzelnen Funktionen.
Die Anzahl der Argumente wird beim Start von GGMan getestet. Sollten einer Funktion eine nicht erlaubte Anzahl von Argumenten übergeben worden sein, meldet GGMan dieses als Fehler unter Angabe der Zeilennummer im Skript. Die Programmausführung wird sofort beendet.
Der Inhalt der Argumente wird größtenteils erst zur Laufzeit geprüft. Sollte eine Funktion auf ein nicht auswertbares Argument treffen, wird dies als Fehlermeldung in der Logdatei ausgegeben, die Programmausführung wird aber fortgesetzt. So erzeugen mathematische Funktionen (z.B. @Sin) eine Fehlermeldung, wenn das übergebene Argument nicht als Fließkommazahl interpretiert werden kann.
Die Argumente werden von Links nach Rechts ausgewertet. Bei nicht interpretierbaren Argumenten bricht die Funktion die Auswertung ab.
Als Argumente einer Funktion können wiederum Funktionen angegeben werden. Diese Möglichkeit der Verschachtelung ermöglicht
sehr komplexe Auswerteszenarien. So schreibt die folgende Funktion nur einen LogText, wenn der Textvergleich @Equals("ja", "nein")
wahr ergibt.
@If( @Equals("ja", "nein") , @Log("Dieser Text erscheint nie in der Logdatei") )WENN "ja" GLEICH "nein" DANN Schreibe "Dieser Text erscheint nie in der Logdatei"
Beim Schreiben eines Skriptes ist besonders auf die korrekte Setzung der Klammern zu achten.
GGMan unterscheidet zwei wesentliche Typen von Funktionen. Einerseits gibt es Funktionen ohne Rückabewert (VoidFunction), andererseits Funktionen mit Rückgabewert.
Die sogenannten VoidFunctions haben keinen Rückgabewert. Sie werden aufgerufen, um eine Tätigkeit auszuführen. Innerhalb einer Factory können nur diese VoidFunctions vereinbart werden.
function = @Log(WARNING, "Punktart 452 ist nicht zu verwenden") finally = @Log("&count fehlerhafte Punkte gefunden")Die beiden hier vereinbarten Funktionen @Log sind VoidFunctions. Sie schreiben einen Text in die LogDateien.
Alle ValueFunctions haben einen vereinbarten Rückgabewert. Sie werden verwendet, um einen Wert zu erzeugen und weiterzuverarbeiten. In der Regel werden diese Funktionen benutzt, um bedingungsabhängige Argumente innerhalb anderer Funktionsaufrufe zu erzeugen. So erzeugt der Aufruf @Add(&var1, &var2) die Summe zweier Variablen, diese Summe kann z.B. in der @Log-Funktion verwendet werden, um Sie zu einem Fehlertext zusammenzubauen:
@Concat( "Die Summe beträgt: ", @Add(&var1, &var2) )
Die ValueFunctions haben einen Standardrückgabetyp. Diesen Standardtyp zeigen Sie dem Aufrufer durch Ihren Funktionstyp an. Folgende Funktionstypen kann kann eine Funktion haben:
@Add( @Concat("1", "2"), 3.0) )
Die Funktion @Add verlangt per Definition als Argumente DoubleValues. Die Funktion @Concat ist aber vom Typ StringFunction, sie liefert also regelmäßig einen StringValue zurück.
Beim Aufruf der Funktion @Concat werden die beiden Texte "1" und "2" zu dem Text "12" zusammenkopiert und dann automatisch zu der Zahl 12. konvertiert. Damit kann dann die Funktion @Add die Summe bilden, als Ergebnis wird 15. zurückgeliefert.
Solle die Konvertierung nicht möglich sein, wird von der Funktion eine Fehlermeldung erzeugt. GGMan protokolliert diese dann in der LogDatei. Der Aufruf @Add( @Concat("a", "b"), 3.0) ) wird mit Fehlermeldungen quittiert, da die Funktion @Concat den Text "ab" nicht in eine Zahl umwandeln kann.
mathematische Funktionen | |
---|---|
grundsätzliche Operationen | |
Add | Berechnet die Summe von Werten |
Subtract | Berechnet die Differenz von Werten |
Multiply | Berechnet das Produkt von Werten |
Divide | Berechnet den Quotienten von zwei Werten |
Negate | Ändert das Vorzeichen eines Wertes |
Incr | Erhöht einen Wert |
Decr | Verringert einen Wert |
Vergleiche von Werten | |
Eq | Vergleicht zwei Werte, Gleich |
Lt | Vergleicht zwei Werte, Kleiner als |
LtEq | Vergleicht zwei Werte, KleinerGleich als |
Gt | Vergleicht zwei Werte, Größer als |
GtEq | Vergleicht zwei Werte, GrößerGleich als |
UnEq | Vergleicht zwei Werte, Ungleich |
DEq | Vergleicht zwei Fließkommazahlen mit anzugebender Genauigkeit |
Max | Gibt den größeren von zwei Werten zurück |
Min | Gibt den kleineren von zwei Werten zurück |
InList | Gibt an, ein Wert in einer Aufzählung enthalten ist |
InRange | Gibt an, ein Wert in einem Bereich enthalten ist |
Runden von Fließkommazahlen | |
Ceil | Berechnet den kleinsten Ganzzahlwert |
Floor | Berechnet den größten Ganzzahlwert |
Rint | Rundet einen Wert auf eine Ganzzahl |
Round | Rundet einen Wert auf Nachkommastellen |
Winkelfunktionen | |
Sin | Berechnet den Sinus eines Wertes |
ASin | Berechnet den Arcus Sinus eines Wertes |
Cos | Berechnet den Cosinus eines Wertes |
ACos | Berechnet den Arcus Cosinus eines Wertes |
Tan | Berechnet den Tangens eines Wertes |
ATan | Berechnet den Arcus Tangens eines Wertes |
ATan2 | Berechnet den Arcus Tangens aus kartesische Koordinaten |
ArcNorm | Normiert eine Winkelangabe |
weitere mathematische Funktionen | |
Pow | Berechnet die Potenz a hoch b |
Sqrt | Berechnet die Quadratwurzel eines Wertes |
Exp | Berechnet den Wert E hoch a |
NLog | Berechnet den natürlichen Logarithmus eines Wertes |
Abs | Berechnet den Absolutbetrag eines Wertes |
Mod | Berechnet den ganzzahligen Rest eines Quotienten |
Distance | Berechnet die Strecke zwischen Punkten |
Distance3D | Berechnet die dreidimensionale Strecke zwischen Punkten |
Rand | Berechnet eine Zufallszahl |
Sgn | Ermittelt das Vorzeichen eines Wertes |
Slope | Ermittelt die Neigung aus einer Höhendifferenz |
Operatoren | |
And | Logisches UND |
Not | Logisches NOT |
OR | Logisches OR |
Cond | Bedingte Wertzuweisung |
Zugriffe auf Arrays | |
A | Erzeugt einen neuen Array |
ArraySize | Gibt die Anzahl der im Array enthaltenen Values zurück |
AppendArray | Gibt einen um Werte erweiterten Array zurück |
ForArray | Iteriert über einen Array |
ArrayValue | Gibt einen Value aus einem Array zurück |
GetArrayValue | Gibt einen Value aus einem Array zurück |
SetArrayValue | Setzt einen Value in einem Array |
FilterArrayValue | Gibt einen durch einen Filter bestätigten Value aus einem Array zurück |
FilterArrayValues | Gibt die durch einen Filter bestätigten Values aus einem Array zurück |
SubArray | Gibt einen neuen Array aus Teilen eines Arrays zurück |
FilterArray | Gibt die Anzahl der Elemente eines Arrays zurück, die von einem Filter bestätigt werden |
GetArray | Stellt einen Array von Attributen von mehreren GeografElementen zusammen |
ArraySort | Sortiert einen Array |
ReverseArray | Kehrt die Reihenfolge in einem Array um |
ArrayEquals | Vergleicht die Elemente eines Arrays |
CloneArray | Erzeugt eine Kopie eines Arrays |
Zugriffe auf Attribute von Geograf-Elementen | |
CreateElement | Erzeugt ein neues Geografelement |
StoreElement | Speichert ein GeografElement |
AddSubElement | Fügt einem GeografElement ein SubElement hinzu |
GetSubElement | Holt ein SubElement aus einem GeografElement |
CountSubElemenets | Gibt die Anzahl der SubElemente eines GeografElements zurück |
Get | Holt ein Attribut aus einem Geografelement |
GetArray | Stellt einen Array von Attributen von mehreren GeografElementen zusammen |
Set | Setzt ein Attribut in einem Geograf-Element |
ExistData | Gibt an, ob eine Geograf-Element ein Sachdatensatz besitzt |
GetData | Holt einen Sachdatensatz aus einem Geograf-Element |
SetData | Speichert einen Sachdatensatz in ein Geograf-Element |
CreateData | Erzeugt einen Array mit der ElementAnzahl einer Sachdatendefinition |
Ablaufkontrolle | |
Aufruf und Abbruch von Routinen | |
Call | Ruft Funktionen auf |
Sub | Ruft eine Subroutine auf |
Return | Setzt den Rückgabewert eines Macros |
Break | Bricht die Funktionsaufrufe einer Factory ab |
Bedingte Ausführung | |
If | Bedingte Ausführung von Funktionen |
IfThenElse | Bedingte Ausführung von Funktionen |
Switch | Bedingte Ausführung von Funktionen |
While | Bedingte mehrmalige Ausführung von Funktionen |
String-Funktionen | |
Test von Zeichenketten | |
Equals | Vergleicht zwei Strings, Gleich |
UnEquals | Vergleicht zwei Strings, Ungleich |
EqualsIgnoreCase | Vergleicht zwei Strings, Groß- und Kleinschreibung wird ignoriert |
EqualsPattern | Vergleicht ein String mit einem Muster |
StartsWith | Prüft den Anfang eines Strings |
EndsWith | Prüft das Ende eines Strings |
HasString | Gibt an, ob ein String eine Zeichenkette enthält |
HasChars | Gibt an, ob ein String eine Auswahl an Zeichen enthält |
HasOnlyChars | Gibt an, ob ein String nur aus einer Auswahl aus Zeichen besteht |
HasLetter | Gibt an, ob ein String Buchstaben enthält |
HasNumber | Gibt an, ob ein String Ziffern enthält |
Length | Gibt die Länge eines Strings zurück |
IndexOf | Gibt die Position eines Teilstrings in einem SuchString zurück |
IndexOfChars | Gibt die Position des ersten gefundenen Zeichens aus einer Zeichenliste zurück |
IndexOfNumber | Gibt die Position der ersten gefundenen Nummer zurück |
IndexOfLetter | Gibt die Position des ersten gefundenen Buchstabens zurück |
IndexOfLower | Gibt die Position des ersten Kleinbuchstabens zurück |
IndexOfUpper | Gibt die Position des ersten Großbuchstabens zurück |
IndexOfNonNumber | Gibt die Position des ersten Zeichens zurück, welches keine Nummer ist |
IndexOfNonLetter | Gibt die Position des ersten Zeichens zurück, welches kein Buchstabe ist |
IndexOfNonLower | Gibt die Position des ersten Zeichens zurück, welches kein Kleinbuchstabe ist |
IndexOfNonUpper | Gibt die Position des ersten Zeichens zurück, welches kein Großbuchstabe ist |
LastIndexOf | Gibt die Position eines Teilstrings in einem SuchString zurück |
CountTokens | Zählt in einem String die Teilstrings |
IsNumber | Gibt an, ob ein String nur Ziffern enthält |
IsDigit | Gibt an, ob ein String eine Zahl enthält |
IsFormat | Gibt an, ob ein String einer Formatierung entspricht |
IsLetter | Gibt an, ob ein String nur Buchstaben enthält |
IsLowerCase | Gibt an, ob ein String nur Kleinbuchstaben enthält |
IsUpperCase | Gibt an, ob ein String nur Großbuchstaben enthält |
IsSpace | Gibt an, ob ein String nur Leerzeichen enthält |
IsVoid | Gibt an, ob ein String leer ist |
HasValue | Gibt an, ob ein String nicht leer ist |
Veränderung von Zeichenketten | |
Trim | Schneidet die Leerzeichen am Anfang und am Ende des Strings ab |
TrimSize | Formatiert einen String auf eine vorzugebende Länge |
ReplaceChar | Ersetzt einzelne Zeichen |
ReplaceString | Ersetzt eine Zeichenkette |
Encode | Ersetzt einzelne Zeichen anhand einer Codierungsvorschrift |
ToLowerCase | Wandelt einen String in Kleinbuchstaben |
ToUpperCase | Wandelt einen String in Großbuchstaben |
ToString | Konvertiert einen Value in einen String |
RomanToNumber | Konvertiert eine Römische Zahl in einen LongValue |
Format | Formatiert einen Zahlenwert |
Zusammenfügen von Zeichenketten | |
Concat | Setzt einen String aus mehreren Einzelstrings zusammen |
Extraktion aus Zeichenketten | |
CharAt | Gibt ein einzelnes Zeichen aus einem String zurück |
Letters | Holt alle Buchstaben aus einem String |
FirstLetters | Holt die ersten Buchstaben aus einem String |
LastLetters | Holt die letzten Buchstaben aus einem String |
Numbers | Holt alle Ziffern aus einem String |
FirstNumbers | Holt die ersten Ziffern aus einem String |
LastNumbers | Holt die letzten Ziffern aus einem String |
Digits | Holt alle Fließkommazahlen aus einem String |
FirstDigits | Holt die erste Fließkommazahl aus einem String |
LastDigits | Holt die letzte Fließkommazahl aus einem String |
Substring | Holt einen Teilstring aus dem String |
SubstringOf | Holt einen Teilstring aus dem String |
ToEncodeArray | Gibt ein Array mit den Zahlenwerten der Zeichen eines String zurück |
Token | Zerlegt den String in Teilstrings |
Extract | Holt Teilstrings aus einem String anhand von Trennzeichen |
Sectstring | Holt Teilstrings aus einem String anhand von Kennzeichen |
Arbeiten mit List, Map und Filter | |
Abfragen | |
Contains | Gibt wahr zurück, wenn ein Value in einem Container enthalten ist |
Filter | Gibt wahr zurück, wenn ein Value in einem Filter enthalten ist |
Size | Gibt die Anzahl der enthaltenen Objekte zurück |
Durchlaufen | |
HasMore | Gibt an, ob eine Collection über weitern Inhalt verfügt |
Next | Gibt den nächsten verfügbaren Wert einer Collection zurück |
Reset | Setzt den Zähler einer Collection oder eines CountFilters zurück |
Flush | Leert eine Collection |
Werte holen und eingeben | |
Put | Fügt Werte in einen Container ein |
Map | Holt einen Wert zu einem Schlüssel |
Match | Holt einen ähnlichen String aus einer Collection |
MatchList | Erzeugt einen sortierten Array mit ähnlichen String aus einer Collection |
Wandeln | |
ToList | Wandelt eine Collection in eine List um |
Wertkonvertierung | |
A | Erzeugt einen neuen Array aus Werten |
D | Konvertiert einen Wert in einen DoubleValue |
L | Konvertiert einen Wert in einen LongValue |
ToString | Konvertiert einen Value in einen String |
RomanToNumber | Konvertiert eine Römische Zahl in einen LongValue |
Eingaben, Ausgaben | |
Logging | |
Log | Schreibt eine Meldung in die LogDatei |
Konsole | |
Gibt einen Text auf der Konsole aus | |
PrintLine | Gibt eine Textzeile auf der Konsole aus |
PrintStack | Gibt den Java-Stacktrace in der Konsole aus |
Datei | |
ListFiles | Erzeugt einen Array mit den Dateinamen des aktuellen Verzeichnisses |
Open | Öffnet eine Datei zum Lesen oder Schreiben |
Read | Liest den nächsten verfügbaren Wert aus einer Datei |
Write | Schreibt einen Wert in eine Datei |
WriteLine | Schreibt eine Zeile in eine Datei |
Close | Schlißt eine Datei |
sonstiges | |
Counter | Ein Zähler |
Nbz | Erzeugt aus einem Koordinatenpaar den Nummerierungsbezirk |
CopyFile | Kopiert eine Datei |
FindFile | Sucht eine Datei im aktuellen Verzeichnis und im Java-Classpath |
Store | Speichert Werte in Variablen |
Swap | Tauscht den Inhalt von Variablen aus |
Global | Speichert Werte in globalen Variablen |
Exist | Gibt an, ob eine Variable verfügbar ist |
Clone | Eine Kopie von einem Objekt wird angelegt. |
ArrayFunction @A([ v1, ..., vn])
Erzeugt einen neuen Array und fügt die Values v1 bis vn hinzu. Wenn keine Werte angegeben werden, wird ein Array der Länge 0 erzeugt.
v : Werte, die dem Array hinzugefügt werden sollen
@A("aa", "bb", "cc")
aa, bb, cc
DoubleFunction @Abs(DoubleValue d)
Berechnet den Absolutbetrag eines Wertes. Alle Eingabewerte werden in einen positiven Zahlenwert gewandelt.
d : Wert, von dem der Absolutbetrag berechnet werden soll
@Abs(-1)
1.
DoubleFunction @ACos(DoubleValue d)
Berechnet den Arcus Cosinus eines Wertes
d : Wert, von dem der Arcus Cosinus berechnet werden soll
@ACos(1.)
0.0
DoubleFunction @Add(DoubleValue d1, d2[, ..., dn])
Berechnet die Summe von mehreren Werten
d1 ... dn : Werte, die aufsummiert werden sollen
@Add(1., 2.)
3.0
VoidFunction @AddSubElement(ObjectValue elem, ObjectValue sub1, ..., subn)
Fügt einem Geografelement ein oder mehrere SubElemente hinzu. Nur ausgewählte GeografTypen können SubElemente aufnehmen. So enthalten Texte (Typ TE) einzelne TextZeilen (Typ TA) als SubElemente. Die SubElemente können mit der Funktion CreateElement erzeugt und mit AddSubElement einem Element hinzugefügt werden.
elem : Ein GeografElement, welches die SubElemente aufnehmen soll.
sub1...subn : Die SubElemente, die hinzugefügt werden sollen.
@AddSubElement(@text, &zeile1, &zeile2)
Fügt einem TextElement zwei TextZeilen hinzu.
BooleanFunction @And(BooleanValue b1, b2[, ..., bn])
Logisches UND
b1 ... b1 : BooleanValues, @And gibt true zurück, wenn alle Argumente den Wert true besitzen. Die Auswertung wird beim ersten Argument abgebrochen, der den Wert false besitzt. In diesem Fall gibt @Add false zurück.
@And(@Equals(1., 1.), @Equals("text1", "text2"), @Equals("000", "111"))
false
ArrayFunction @AppendArray(ArrayValue a, Value v1[, ..., vn])
Gibt einen neuen Array erweiterten Array zurück. Es wird ein neuer Array mit den Elementen des Quellarrays a und den Elementen v1 bis v n zurück gegeben. Der neue Array hat die Länge @ArraySize(a) + n.
a : der Quellarray.
v1 ... bn : Values, die angehängt werden.
@AppendArray(&array, "A", "B")
Ein neuer Array mit den Elementen aus &array und die Werte "A" und "B".
DoubleFunction @ArcNorm(DoubleValue d [, StringValue s])
Normiert eine Winkelangabe
d : Wert, der normiert werden soll
s : Art der Winkelangabe:
@ArcNorm(4.5)
1.3584
@ArcNorm(500., "grad")
100.
BooleanFunction @ArrayEquals(ArrayValue a)
Gibt wahr zurück, wenn alle Elemente des Arrays gleich sind.
a : der zu untersuchende Array
@Equals($ebenenDerElemente)
false
LongFunction @ArraySize(ArrayValue a)
Gibt die Anzahl der im Array enthaltenen Values zurück.
a : der Array, dessen Größe zurückgegeben werden soll
@ArraySize(&outLines)
3
VoidFunction @ArraySort(ArrayValue a[, StringValue m])
Sortiert einen Array.
a : der Array, der sortiert werden soll
m : ein Zeichen, dass den Sortiermodus vorgibt:
Bei Angabe des jeweiligen Kleinbuchstabens wird die Sortierung umgekehrt.
@ArraySort(&testArray)
aa, ab, bb
ObjectFunction @ArrayValue(ArrayValue a, LongValue i)
Gibt einen Value aus dem Array a zurück.
a : der Array, aus dem ein Wert entnommen werden soll.
i : der Indes des Wertes, der aus dem Array entnommen werden soll. Die Zählung beginnt mit 0. Der Wert kann auch negativ angegeben werden, dann wird vom Ende aus gezählt
@ArrayValue(&outLines, 1)
einWert
DoubleFunction @ASin(DoubleValue d)
Berechnet den Arcus Sinus eines Wertes
d : Wert, von dem der Arcus Sinus berechnet werden soll
@ASin(1.)
1.5707
DoubleFunction @ATan(DoubleValue d)
Berechnet den Arcus Tangens eines Wertes
d : Wert, von dem der Arcus Tangens berechnet werden soll
@ATan(1.)
0.7853
DoubleFunction @ATan2(DoubleValue a, DoubleValue b)
Berechnet den Arcus Tangens eines Quotienten, der in der Regel aus kartesische Koordinaten gebildet wird
a : 1. Koordinatenkomponente, in der Regel Hochwertdifferenz
b : 2. Koordinatenkomponente, in der Regel Rechtswertdifferenz
@ATan2(1., 2.)
0.4636
VoidFunction @Break()
Bricht die Funktionsaufrufe einer Factory ab
@If("true", @Break())
@Log("Dieser Text wird nicht mehr dokumentiert")
ohne
VoidFunction @Call(VoidFunction f1[, ..., fn])
Ruft mehrere Funktionen auf
f1 ... fn : Funktionen, die nacheinander aufgerufen werden. Die Funktionen müssen vom Typ Void sein.
@Call(@Log("Dies"), @Log("ist ein Logtext"))
ohne
DoubleFunction @Ceil(DoubleValue d)
Berechnet den kleinsten Ganzzahlwert, der größer oder gleich dem Argument d ist
d : Wert, von dem der Ganzzahlwert berechnet werden soll
@Ceil(1.6)
2.0
StringFunction @CharAt(StringValue s, LongValue i)
Gibt ein einzelnes Zeichen aus einem String zurück
s : der String, aus dem das Zeichen entnommen wird
i : der Index des Zeichens, das erste Zeichen des Strings hat den Index 0
Es wird eine Exception ausgelöst, wenn der String kürzer ist, als i+1
@CharAt("Text", 1)
e
ObjectFunction @Clone(ObjectValue obj)
Legt eine Kopie eines Objektes an.
obj : die zu kopierende Objekt
Die Funktion Clone kann einen Fehler erzeugen, wenn das Objekt selbst keine Kopiermöglichkeit vorsieht.
@Clone(&ggPunkt)
Änderungen, die an der Kopie von ggPunkt vorgenommen werden, haben keine Auswirkung auf die Daten im Datenstrom, soweit das kopierte Objekt nicht explizit in den Ausgabestrom zurückgespeichert wird.
ArrayFunction @CloneArray(ArrayValue a)
Legt eine Kopie eines Arrays an. Dabei wird von allen ArrayInhalten auch eine Kopie angelegt.
a : der zu kopierende Array
Die Funktion CloneArray kann einen Fehler erzeugen, wenn eines der Objekte des Arrays selbst keine Kopiermöglichkeit vorsieht.
@Clone(&ggPunkte)
Änderungen, die an den Kopien von ggPunkte vorgenommen werden, haben keine Auswirkung auf die Daten im Datenstrom, soweit die kopierten Objekte nicht explizit in den Ausgabestrom zurückgespeichert werden.
VoidFunction @Close(ObjectValue file)
Schließt eine Datei.
file : die zu schließende Datei
@Close(&inFile)
StringFunction @Concat(StringValue s1, s2[,..., sn])
Setzt einen String aus mehreren Einzelstrings zusammen
s1 ... sn : die einzelnen Strings
@Concat("Das ", "ist ", "ein ", "Text.")
Das ist ein Text.
ObjectFunction @Cond(BooleanValue b, ObjectValue o1, ObjectValue o2)
Bedingte Wertzuweisung
b : Boolean, Wahrheitswert
o1 : wird zurückgegeben, wenn b wahr
o2 : wird zurückgegeben, wenn b unwahr
@Cond("true", 1., 2.)
1.
BooleanFunction @Contains(ObjectValue c, ObjectValue v)
Gibt wahr zurück, wenn der Value v in dem Container c enthalten ist
c : der ObjectValue muss einen ValueContainer (List, Map oder Filter) enthalten, es wird wahr zurückgegeben, wenn der Wert v in c enthalten ist
v : der gesuchte Wert
Es wird eine Exception ausgelöst, wenn das Objekt c kein ValueContainer ist
@Contains($longHash, 1)
true
VoidFunction @CopyFile(StringValue src, StringValue dst)
Kopiert eine Datei. Wenn die Zieldatei vorhanden ist, wird sie ohne Nachfrage überschrieben.
src : der vollständige Pfad der Quelldatei
dst : der vollständige Pfad der Zieldatei
@CopyFile("c:\daten.txt", "c:\sicherung.txt")
DoubleFunction @Cos(DoubleValue d)
Berechnet den Cosinus eines Wertes
d : Wert im Bogenmaß, von dem der Cosinus berechnet werden soll
@Cos(0.)
1.0
LongFunction @CountSubElements(ObjectValue o)
Gibt die Anzahl der SubElemente zurück, die in einem GeografElement enthalten sind.
o : das Objekt, dessen SubElemente gezählt werden
@CountSubElements(&inObject)
3
LongFunction @CountTokens(StringValue s, StringValue t)
Zählt in einem String s die Teilstrings. Als Trennzeichen dienen die Zeichen im String t.
s : der String, der zerlegt werden soll
t : Zeichen, die als Trenner dienen sollen.
@CountTokens("Eins|Zwei|Drei", "|")
3
ArrayFunction @CreateData(LongValue a])
Erzeugt einen leeren Sachdatensatz aufgrund einer Sachdatendefinition.
a : die Art-Nummer des Sachdatensatzes
@GetData(1)
ein Array mit der Elementanzahl der Sachdatendefinition 1
ObjectFunction @CreateElement(StringValue type)
Erzeugt ein neues Geografelement.
type : EinString mit der Kennung des Geograftyps. Die möglichen GeografTypen sind beim ElementIdFilter gelistet.
@Store(&ks, @CreateElement(pk))
In &ks wird ein neuer Punkt gespeichert.
DoubleFunction @D(ObjectValue o)
Konvertiert einen Wert in einen DoubleValue
Diese Konvertierung ist nur in Ausnahmefällen notwendig, da Funktionen die Argumente automatisch umwandeln
o : Wert, der als DoubleValue zurückgegeben werden soll
@D(1)
1.0
VoidFunction @Decr(ObjectValue v1[, DoubleValue d1[,...,ObjectValue vn, ObjectValue dn]] )
Verringert den Wert in v um den Wert d und speichert ihn. In der Variablen o muß ein Zahlenwert enthalten sein. Es können mehrere Variablen und Werte angegeben werden.
Ist nur die Variable v1 ohne dazugehörigen Wert d angegeben, wird die Variable um 1 verringert.
Eine Variablenbezeichner beginnt mit dem Zeichen '&'.
vn : Variablenbezeichner
on : Wert, um den der Inhalt in v erhöht wird
@Store(&fehlernummer, 5)
@Decr(&fehlernummer)
Die Variable &fehlernummer enthält 4
@Store(&index, 0, nextIndex, 5)
@Decr(&index, 1, &nextIndex, 3)
Die Variable &index enthält -1, &nextIndex enthält 2
BooleanFunction @DEq(DoubleValue a, DoubleValue b, DoubleValue dist)
Vergleicht zwei Fließkommawerte mit der anzugebenden Genauigkeit d
a :DoubleValue
b :DoubleValue
d :DoubleValue, DEq gibt true zurück, wenn a und b sich um weniger als den Betrag von d unterscheiden.
@Eq(10.00, 10.01, 0.05)
true
StringFunction @Numbers(StringValue s)
Holt alle Fließkommawerte aus dem String s. Es werden alle Ziffern, und die Zeichen '+-.,' aus dem String zusammengesetzt. Das Komma wird dabei als Punkt interpretiert. Die Funktion stellt nicht sicher, das der entstehende String als Zahl interpretiert werden kann. Sind mehrere Kommas oder Punkte enthalten, kann entstehende String nicht als DoubleValue benutzt werden.
s : der String, aus dem der Zahlenwert geholt werden soll
@Digits("Höhe 125,0 über DHHN")
125.0
@Digits("Dimension 12.0/15.2")
12.015.2
DoubleFunction @Distance(ArrayValue pn)
DoubleFunction @Distance(ObjectValue pa, ObjectValue pe)
DoubleFunction @Distance(DoubleValue ya, DoubleValue xa, DoubleValue ye, DoubleValue xe)
Berechnet die Strecke zwischen Punkten
pn : Ein Array, der GeografPunkte enthält. Es wird die Länge des Polygons über die enthaltenen Punkte bestimmt.
pa : Erster GeografPunkt.
pe : Zweiter GeografPunkt. Es wird die Strecke zwischen pa und pe bestimmt.
ya : Rechtswert des Anfangspunktes
xa : Hochwert des Anfangspunktes
ye : Rechtswert des Endpunktes
xe : Hochwert des Endpunktes. Es wird die Strecke zwischen yxa und yxe bestimmt.
@Distance(1000., 500., 1010., 500.)
10.0
DoubleFunction @Distance3D(ArrayValue pn)
DoubleFunction @Distance3D(ObjectValue pa, ObjectValue pe)
DoubleFunction @Distance3D(DoubleValue ya, DoubleValue xa, DoubleValue za, DoubleValue ye, DoubleValue xe, DoubleValue ze)
Berechnet die dreidimensionale Strecke zwischen Punkten. Wenn ein Punkt den z-Koordinate = 0.0 besitzt, wird die Länge 0 zurückgegeben.
pn : Ein Array, der GeografPunkte enthält. Es wird die 3D-Länge des Polygons über die enthaltenen Punkte bestimmt.
pa : Erster GeografPunkt.
pe : Zweiter GeografPunkt. Es wird die 3D-Strecke zwischen pa und pe bestimmt.
ya : Rechtswert des Anfangspunktes
xa : Hochwert des Anfangspunktes
za : Höhe des Anfangspunktes
ye : Rechtswert des Endpunktes
xe : Hochwert des Endpunktes.
ze : Höhe des Endpunktes. Es wird die 3D-Strecke zwischen yxza und yxze bestimmt.
@Distance(1000., 500., 50., 1010., 500., 60.)
14.142
DoubleFunction @Divide(DoubleValue a, DoubleValue b)
Berechnet den Quotienten von a / b
a : DoubleValue
b : DoubleValue
@Divide(1., 2.)
0.5
StringFunction @Encode(StringValue s, LongValue c1, c2[, ..., cn, cn+1])
Ersetzt im String s einzelne Zeichen. Es wird der veränderte String zurückgegeben.
s : der String, in dem die Zeichen ersetzt werden sollen
cn : der Zahlenwert des zu ersetzenden Zeichens
cn+1 : der Zahlenwert des Zeichens, das als Ersatz eingefügt wird
@Encode("Text", 120, 115)
Test
BooleanFunction @EndsWith(StringValue s1, StringValue s2)
Gibt wahr zurück, wenn der String s1 mit der Zeichenfolge s2 endet
s1 : der zu untersuchende String
s2 : die gesuchte Zeichenfolge
@EndsWith("Text", "xt")
true
BooleanFunction @Eq(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a gleich dem Wert b ist
a :DoubleValue
b :DoubleValue
@Eq(2., @Add(1., 1.))
true
BooleanFunction @Equals(StringValue s1, StringValue s2)
Gibt wahr zurück, wenn der String s1 mit der String s2 übereinstimmt
Groß- und Kleinschreibung wird unterschieden
s1 : der zu untersuchende erste String
s2 : der zu untersuchende zweite String
@Equals("Text", "TEXT")
false
BooleanFunction @EqualsIgnoreCase(StringValue s1, StringValue s2)
Gibt wahr zurück, wenn der String s1 mit der String s2 übereinstimmt
Groß- und Kleinschreibung wird ignoriert
s1 : der zu untersuchende erste String
s2 : der zu untersuchende zweite String
@EqualsIgnoreCase("Text", "TEXT")
true
BooleanFunction @EqualsPattern(StringValue pattern, StringValue s)
Ermöglicht einen Mustervergleich. Gibt wahr zurück, wenn der String s mit dem Muster pattern übereinstimmt.
pattern : das Suchmuster
folgende Zeichen sind dienen der Mustersuche:
* (Sternchen): beliebig viele Zeichen, auch keines
~ (Tilde): beliebig viele Zeichen, mindestens eines
? (Fragezeichen): ein beliebiges Zeichen
# (Hashzeichen): eine Ziffer
^ (Circumflex): ein beliebiger Buchstabe
< (kleiner als): ein beliebiger Kleinbuchstabe
> (größer als): ein beliebiger Großbuchstabe
alle anderen Zeichen im Muster müssen mit denen im Suchstring s übereinstimmen. Groß- und Kleinbuchstaben werden unterschieden.
s : der zu untersuchende String
@Equals("*flo?", "kopflos")
true
BooleanFunction @Exist(Value v1 [,..,vn])
Gibt true zurück, wenn die Variablen vn verfügbar sind
v : eine Variable
@If( @Exist(&text), @Log("Variable existiert"))
Variable existiert
BooleanFunction @ExistData(ObjectValue o, LongValue a)
Gibt true zurück, wenn ein Geografelement einen Sachdatensatz mit der Art a besitzt
o : ein ObjectValue der ein Geografelement enthalten muss
a : die Art des gefragten Sachdatensatzes
@If( @Exist(&p, 1), @Log("Punkt besitzt einen Sachdatensatz der Art 1"))
true
DoubleFunction @Exp(DoubleValue a)
Berechnet den Wert E hoch a, E ist die Basis des natürlichen Logarithmus
a : DoubleValue
@Exp(2.)
7.3890
StringFunction @Extract(StringValue s, StringValue t [, StringValue order])
Holt einen Teilstring aus dem String s. Als Trennzeichen dienen die Zeichen im String t. Mit order kann gesteuert werden, welcher Teilstring zurückgegeben wird.
s : der String, aus dem der Teilstring geholt werden soll
t : Zeichen, die als Trenner dienen sollen.
order : legt fest, welcher Teilstring zurückgegeben wird:
@Extract("Länge -25.55- ", "-")
25.55
@Extract("Länge -25.55- ", "-", EXTRACT_DELIMS)
-25.55-
BooleanFunction @Filter(ObjectValue f, ObjectValue o)
Gibt wahr zurück, wenn das Objekt o von dem Filter f bestätigt wird.
f : ObjectValue, muss einen Filter enthalten
o : ObjectValue, muss ein GeografElement enthalten
@Filter($punktFilter, &in)
true
LongFunction @FilterArray(ObjectValue f, ArrayValue a)
Gibt die Anzahl der Elemente des Arrays a zurück, die von dem Filter f bestätigt werden.
f : ObjectValue, muss einen Filter enthalten
o : ArrayValue, muss ein Array aus GeografElementen enthalten
@Filter($punktFilter, &outArray)
2
ObjectFunction @FilterArrayValue(ObjectValue f, ArrayValue a)
Gibt das erste Element des Arrays a zurück, das von dem Filter f bestätigt wurde.
f : ObjectValue, muss einen Filter enthalten
o : ArrayValue, muss ein Array aus GeografElementen enthalten
@FilterArrayValue($punktFilter, &outArray)
den ersten Punkt, der durch den punktFilter bestätigt wird
ArrayFunction @FilterArrayValues(ObjectValue f, ArrayValue a)
Gibt die Elemente des Arrays a zurück, das von dem Filter f bestätigt wurden.
f : ObjectValue, muss einen Filter enthalten
o : ArrayValue, muss ein Array aus GeografElementen enthalten
@FilterArrayValues($punktFilter, &outArray)
die Punkte, die durch den punktFilter bestätigt werden
StringFunction @FindFile(StringValue name)
Sucht eine Datei im aktuellen Verzeichnis und im Java-Classpath. Wenn eine Datei gefunden wurde, wird der vollständige Dateipfad zurückgegeben. Wenn keine Datei gefunden wurde, wird eine Fehlermeldung erzeugt.
name : Dateiname
@FindFile("params.txt")
c:\programme\ggman\params.txt
StringFunction @FirstDigits(StringValue s)
Holt die erste Fließkommazahl aus dem String s.
s : der String, aus dem die Nummern geholt werden sollen
@FirstDigits("-123.0aaa456")
-123.0
StringFunction @FirstLetters(StringValue s)
Holt die ersten Buchstaben aus dem String s.
s : der String, aus dem der Teilstring geholt werden soll
@FirstLetters("aaa123bbb")
aaa
StringFunction @FirstNumbers(StringValue s)
Holt die ersten Ziffern aus dem String s.
s : der String, aus dem die Nummern geholt werden sollen
@FirstNumbers("123aaa456")
123
DoubleFunction @Floor(DoubleValue a)
Berechnet den größten Ganzzahlwert, der nicht größer ist als das Argument a
a : DoubleValue
@Exp(1.7)
1.
VoidFunction @Flush(ObjectValue c)
Leert eine Collection um Speicher frei zu geben
c : der ObjectValue muss einen Collection enthalten, es wird der gesamte Inhalt geleert
Es wird eine Exception ausgelöst, wenn das Objekt c kein Collection ist
@Flush($collection)
VoidFunction @ForArray(ArrayValue a, StringValue n, VoidFunction f1[, ..., fn])
Iteriert über einen Array. Der jeweils aktuelle Value des Arrays wird unter dem Namen n gespeichert. Es werden nacheinander alle Funktionen f aufgerufen.
a : der Array, über den iteriert wird.
n : der Name, unter dem der jeweils aktuelle Value des Array gespeichert wird.
f1 ... fn : Funktionen, die auf jedes ArrayElement aufgerufen werden.
@ForArray(&punktArray, &einzelPunktDesArray, @Log("Der Punkt &einzelPunktDesArray wird dokumentiert") )
StringFunction @Format(StringValue f, ObjectValue o)
Formatiert einen Zahlenwert
f : FormatString, das Zeichen '#' gibt die Anzahl der Stellen an, das Zeichen '.' die Kommastelle
Wird keine Kommastelle angegeben, wird die Zahl ganzzahlig formatiert
o : der zu formatierende Zahlenwert
@Format("#.##", 1.234567)
1.23
@Format("#", 1.234567)
1
StringFunction @Get(ObjectValue o, StringValue s)
Holt ein Attribut aus einem Geografelement
o : ObjectValue, muss ein GeografElement enthalten,
aus diesem wird der Wert zum Attribut s geholt
s : das ElementAttribute
@Get(&in, "ebene")
50
ArrayFunction @GetArray(ArrayValue a, StringValue s)
Stellt einen Array von Attributen von mehreren GeografElementen zusammen. Die GeografElemente sollen in dem Array a vorliegen.
a : ArrayValue, muss ein GeografElemente enthalten. Aus jeden Element wird der Wert zum Attribut s geholt und in dem AusgabeArray gespeichert.
s : das ElementAttribute
@GetAttay(&inArray, "ebene")
ein Array mit den Ebenen der GeografElemente
ObjectFunction @GetArrayValue(ArrayValue a, LongValue i)
Diese Funktion ist identisch mit der Funktion @ArrayValue
Gibt einen Value aus dem Array a zurück.
a : der Array, aus dem ein Wert entnommen werden soll
i : der Indes des Wertes, der aus dem Array entnommen werden soll. Die Zählung beginnt mit 0. Der Wert kann auch negativ angegeben werden, dann wird vom Ende aus gezählt
@ArrayValue(&outLines, 1)
einWert
ArrayFunction @GetData(ObjectValue o[, LongValue a])
Holt ein Sachdatensatz aus einem Geografelement. Es wird ein Array aus dem Sachdatensatz zusammengestellt.
Die Function kann einerseits dazu benutzt werden, die Datensätze einer Sachdatendefinition (Element DDEF) zu holen. Dann muss in o eine DDEF-Element enthalten sein,
die Art a wird dann nicht angegeben.
Andererseits kann die Funktion dazu benutzt werden, den Inhalt eines Sachdatensatzes mit Art a aus einem Geografelement zu holen. Die Art a muss dann angegeben werden.
o : ObjectValue, muss ein GeografElement enthalten,
aus diesem wird der Sachdatensatz geholt
a : die Art-Nummer des Sachdatensatzes
@GetData(&in)
Dimension[d],Material[s5],Laenge[f],Gefaelle[s6]
@GetData(&in, 1)
200,STZ,12.2,1:530
ObjectFunction @GetSubElement(ObjectValue elem, LongValue idx)
Holt ein SubElement aus einem Geografelement
o : ObjectValue, muss ein GeografElement enthalten,
aus diesem wird das SubElement geholt
idx : Index des SubElements
@Get(&inText, 1)
TA(zweite Zeile)
VoidFunction @Global(ObjectValue v1, ObjectValue o1 [,...,ObjectValue vn, ObjectValue on] )
Speichert den Wert o in einer globalen Variablen v. Es können mehrere Variablen und Werte angegeben werden.
Eine Variablenbezeichner beginnt mit dem Zeichen '&'. Die Funktion @Global speichert die Variable objektübergreifend, sie kann in jeder folgenden Factory abgerufen werden.
vn : Variablenbezeichner
on : Wert, der der Variablen vn zugewiesen wird
@Global(&ErrorCount, 0)
Speichert den Wert 1 unter dem Bezeichner &ErrorCount
BooleanFunction @Gt(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a größer ist als der Wert b
a :DoubleValue
b :DoubleValue
@Gt(2., 1.)
true
BooleanFunction @GtEq(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a größer oder gleich dem Wert b ist
a :DoubleValue
b :DoubleValue
@GtEq(2., 1.)
true
BooleanFunction @HasChars(StringValue s, StringValue c)
Gibt an, ob im String s alle Zeichen aus c, unabhängig von ihrer Position, enthalten sind.
s : StringValue, der untersucht werden soll
c : Auswahl an Zeichen, die in s enthalten sein müssen
@HasChars("xyzABC012abc", "1A")
true
BooleanFunction @HasMore(ObjectValue c)
Gibt true zurück, wenn der Iterator einer Collection über ein weiteres Element verfügt.
c : ObjectValue, muss eine Collection enthalten
@If( @HasMore(&list), @Log(@Concat("Die Liste hat einen weiteren Wert:", @Next(&list) ) )
Die Liste hat einen weiteren Wert: wert
BooleanFunction @HasLetter(StringValue a)
Gibt wahr zurück, wenn der String a die Buchstaben enthält.
a :StringValue
@HasLetter("123a")
true
BooleanFunction @HasNumber(StringValue a)
Gibt wahr zurück, wenn der String a Ziffern enthält.
a :StringValue
@HasNumber("123a")
true
BooleanFunction @HasString(StringValue a, StringValue b1[, ..., bn])
Gibt wahr zurück, wenn der String a die Teilstrings bn enthält.
a :StringValue
bn :StringValue
@HasString("Das ist ein Text", "a", "Text")
true
BooleanFunction @HasOnlyChars(StringValue s, StringValue c)
Gibt an, ob der String s nur aus den Zeichen in c besteht.
s : StringValue, der untersucht werden soll
c : Auswahl an Zeichen
@HasChars("182.3", ".0123456789")
true
BooleanFunction @HasValue(StringValue s)
Gibt wahr zurück, wenn der String nicht leer ist (eine Länge größer 0 hat)
s : der zu untersuchende String
@HasValue("aaa")
true
VoidFunction @If(BooleanValue b, VoidFunction f1[, ..., fn])
Bedingte Ausführung von Funktionen
b : BooleanValue, Wahrheitswert
f1 ... fn : Funktionen, die nacheinander aufgerufen werden, wenn b wahr ergibt.
Die Funktionen müssen vom Typ Void sein.
@If( @Equals(&in, "test"), @Log("Die Variable 'in' hat den Wert 'test'") )
Die Variable 'in' hat den Wert 'test'
VoidFunction @IfThenElse(BooleanValue b, VoidFunction f1, VoidFunction f2)
Bedingte Ausführung von Funktionen
b : BooleanValue, Wahrheitswert
f1 : Funktionen, die aufgerufen wird, wenn b wahr ergibt
f2 : Funktionen, die aufgerufen wird, wenn b unwahr ergibt
Die Funktionen müssen vom Typ Void sein.
@If( @Equals(&in, "tttt"), @Log("Die Variable 'in' hat den Wert 'test'"), @Log("Die Variable 'in' hat NICHT den Wert 'test'") )
Die Variable 'in' hat den NICHT Wert 'test'
VoidFunction @Incr(ObjectValue v1[, DoubleValue d1 ,...,[ObjectValue vn, ObjectValue dn]] )
Erhöht den Wert in v um den Wert d und speichert ihn. In der Variablen o muß ein Zahlenwert enthalten sein. Es können mehrere Variablen und Werte angegeben werden.
Ist nur die Variable v1 ohne dazugehörigen Wert d angegeben, wird die Variable um 1 erhöht.
Eine Variablenbezeichner beginnt mit dem Zeichen '&'.
vn : Variablenbezeichner
on : Wert, um den der Inhalt in v erhöht wird
@Store(&fehlernummer, 5)
@Incr(&fehlernummer)
Die Variable &fehlernummer enthält 6
@Store(&index, 0, nextIndex, 5)
@Incr(&index, 1, &nextIndex, 3)
Die Variable &index enthält 1, &nextIndex enthält 8
LongFunction @IndexOf(StringValue s1, StringValue s2 [, LongValue i] )
Gibt die Position eines Teilstrings in einem SuchString zurück.
Es wird die erste Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn der Teilstring nicht gefunden wird, ergibt die Funktion -1
s1 : der zu untersuchende String
s2 : der zu suchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOf ab dem ersten Zeichen des Strings s1
@IndexOf("TestTest", "st")
2
@IndexOf("TestTest", "st", 4)
6
LongFunction @IndexOf(StringValue s1, StringValue s2 [, LongValue i] )
Gibt die Position des eines Zeichens zurück.
In dem String s1 wird nach allen Einzelzeichen gesucht, die in dem String s2 enthalten sind.
Es wird die erste Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn keines der angebotenen Zeichen gefunden wird, ergibt die Funktion -1
s1 : der zu untersuchende String
s2 : die zu suchenden Zeichen
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfChars ab dem ersten Zeichen des Strings s1
@IndexOfChars("TestTest", "te")
1
@IndexOf("TestTest", "te", 4)
5
LongFunction @IndexOfLetter(StringValue s [, LongValue i] )
Gibt die Position des ersten Buchstabens in einem SuchString zurück.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn kein Buchstabe gefunden wird, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfLetter ab dem ersten Zeichen des Strings s
@IndexOfLetter("11TestTest")
2
LongFunction @IndexOfLower(StringValue s [, LongValue i] )
Gibt die Position des ersten Kleinbuchstabens in einem SuchString zurück.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn kein Kleinbuchstabe gefunden wird, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfLower ab dem ersten Zeichen des Strings s
@IndexOfLower("TestTest")
1
@IndexOfLower("TestTest", 4)
5
LongFunction @IndexOfNonLetter(StringValue s [, LongValue i] )
Gibt die Position des ersten Zeichens in einem SuchString zurück, welches kein Buchstabe ist.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn nur Buchstaben gefunden werden, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfNonLetter ab dem ersten Zeichen des Strings s
@IndexOfNumber("Test1111")
4
LongFunction @IndexOfNonLower(StringValue s [, LongValue i] )
Gibt die Position des ersten Zeichens in einem SuchString zurück, welches kein Kleinbuchstabe ist.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn nur Kleinbuchstaben gefunden werden, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfNonLower ab dem ersten Zeichen des Strings s
@IndexOfNonLower("tesT")
3
LongFunction @IndexOfNonNumber(StringValue s [, LongValue i] )
Gibt die Position des ersten Zeichens in einem SuchString zurück, welches keine Nummer ist.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn nur Nummer gefunden werden, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfNumber ab dem ersten Zeichen des Strings s
@IndexOfNumber("1111Test")
4
LongFunction @IndexOfNonUpper(StringValue s [, LongValue i] )
Gibt die Position des ersten Zeichens in einem SuchString zurück, welches kein Großbuchstabe ist.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn nur Großbuchstaben gefunden werden, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfNonUpper ab dem ersten Zeichen des Strings s
@IndexOfNonUpper("Test")
2
LongFunction @IndexOfNumber(StringValue s [, LongValue i] )
Gibt die Position der ersten Nummer in einem SuchString zurück.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn keine Nummer gefunden wird, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfNumber ab dem ersten Zeichen des Strings s
@IndexOfNumber("Test1Test")
4
LongFunction @IndexOfLower(StringValue s [, LongValue i] )
Gibt die Position des ersten Großbuchstabens in einem SuchString zurück.
Es wird die erste gefundene Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn kein Großbuchstabe gefunden wird, ergibt die Funktion -1
s : der zu untersuchende String
i : Startindex, ab dem gesucht wird.
Dieses Argument ist optional, wenn es nicht angegeben wird, sucht @IndexOfUpper ab dem ersten Zeichen des Strings s
@IndexOfUpper("TestTest")
0
@IndexOfUpper("TestTest", 1)
4
BooleanFunction @InList(DoubleValue a, DoubleValue b1[, ..., bn])
Gibt wahr zurück, wenn der Wert a einem der Werte bn entspricht.
a :DoubleValue
bn :DoubleValue
@InList(2., 1., 2., 3.)
true
BooleanFunction @InRange(DoubleValue a, DoubleValue b1, DoubleValue b2)
Gibt wahr zurück, wenn der Wert a innerhalb bzw. auf dem Rand des Bereichs b1 - b2 liegt.
a :DoubleValue
b1, 2 :DoubleValue
@InRange(2., 1., 2.)
true
BooleanFunction @IsDigit(StringValue s)
Gibt wahr zurück, wenn der String eine Zahl enthält
s : der zu untersuchende String
@IsDigit("1234.12")
true
BooleanFunction @IsFormat(StringValue f, StringValue s)
f : ein FormatString entsprechend der Function @Format
s : der zu untersuchende String
@IsFormat("RO #0.00", "RO 125.12")
true
BooleanFunction @IsLetter(StringValue s)
Gibt wahr zurück, wenn der String nur Buchstaben enthält
s : der zu untersuchende String
@IsLetter("Test")
true
BooleanFunction @IsLowerCase(StringValue s)
Gibt wahr zurück, wenn der String nur Kleinbuchstaben enthält
s : der zu untersuchende String
@IsLowerCase("test")
true
BooleanFunction @IsNumber(StringValue s)
Gibt wahr zurück, wenn der String nur Ziffern enthält
s : der zu untersuchende String
@IsNumber("1234")
true
BooleanFunction @IsSpace(StringValue s)
Gibt wahr zurück, wenn der String nur Leerzeichen enthält
s : der zu untersuchende String
@IsUpperCase(" TEST ")
false
BooleanFunction @IsUpperCase(StringValue s)
Gibt wahr zurück, wenn der String nur Großbuchstaben enthält
s : der zu untersuchende String
@IsUpperCase("TEST")
true
BooleanFunction @IsVoid(StringValue s)
Gibt wahr zurück, wenn der String leer ist (die Länge 0 hat)
s : der zu untersuchende String
@IsVoid("")
true
DoubleFunction @L(ObjectValue o)
Konvertiert einen Wert in einen LongValue.
Diese Konvertierung ist nur in Ausnahmefällen notwendig, da Funktionen die Argumente automatisch umwandeln
o : Wert, der als LongValue zurückgegeben werden soll
@D(1.2)
1
LongFunction @LastIndexOf(StringValue s1, StringValue s2 [, StringValue s3] )
Gibt die Position eines Teilstrings in einem SuchString zurück.
Es wird die letzte Position im zu untersuchenden String zurückgegeben, die Zählung beginnt mit 0.
Wenn der Teilstring nicht gefunden wird, ergibt die Funktion -1
s1 : der zu untersuchende String
s2 : der zu suchende String
s3 : Endindex, bis zu dem gesucht wird.
Dieses Argument ist optional, wenn es angegeben wird, beendet @LastIndexOf die Suche beim Zeichen i
@LastIndexOf("TestTest", "st")
6
@LastIndexOf("TestTest", "st", 4)
2
StringFunction @LastDigits(StringValue s)
Holt die letzte Fließkommazahl aus dem String s.
s : der String, aus dem die Zahl geholt werden sollen
@LastNumbers("123aaa456,0")
456.0
StringFunction @LastLetters(StringValue s)
Holt die letzten Buchstaben aus dem String s.
s : der String, aus dem der Teilstring geholt werden soll
@LastLetters("aaa123bbb")
bbb
StringFunction @LastNumbers(StringValue s)
Holt die letzten Ziffern aus dem String s.
s : der String, aus dem die Nummern geholt werden sollen
@LastNumbers("123aaa456")
456
LongFunction @Length(StringValue s)
Gibt die Länge (Zeichenanzahl) eines String zurück.
s : der zu untersuchende String
@IndexOf("Test")
4
StringFunction @Letters(StringValue s)
Holt alle Buchstaben aus dem String s.
s : der String, aus dem der Teilstring geholt werden soll
@Letters("aaa123bbb")
aaabbb
ArrayFunction @ListFiles([StringValue e1, ..., en])
Gibt einen Array mit den Dateinamen des aktuellen Verzeichnisses zurück. Wenn Dateierweiterungen mit en vorgegeben werden, werden nur die entsprechenden Dateien gelistet.
en : Dateierweiterungen
@ListFiles("tfw")
[bild1.tfw, bild2.tfw]
VoidFunction @Log([StringValue e], [ObjectValue o] , StringValue t )
Schreibt eine Meldung in die LogDatei. Die Funktion @Log kann nur innerhalb einer Factory bzw. in einem in einer Factory eingebundenen Macro bzw. Sub aufgerufen werden.
e : Art der Meldung, es können folgende Werte angegeben werden:
o : ObjektValue, optionales Argument, wenn es angegeben wird, muss ein Geograf-Element enthalten sein.
Wenn das Argument angegeben wird, erzeugt GGMan einen Eintrag in der Geograf-Stapeldatei. Damit können in Geograf die Fehlermeldungen
Elementbezogen abgearbeitet werden.
t : Text der Meldung.
@Log(WARNING, &in, "Eine Warnmeldung")
WARNING: Eine Warnmeldung
BooleanFunction @Lt(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a kleiner ist als der Wert b
a :DoubleValue
b :DoubleValue
@Lt(1., 2.)
true
BooleanFunction @LtEq(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a kleiner oder gleich dem Wert b ist
a :DoubleValue
b :DoubleValue
@Lt(1., 2.)
true
ObjectFunction @Map(ObjectValue o, ObjectValue k)
Holt einen Wert zu einem Schlüssel
o : ObjectValue, muss eine Map enthalten. Es wird der Wert aus der Map geholt, der dem Schlüssel k zugeordnet ist.
k : Schlüssel
@Map($artMap, 101)
9123
StringFunction @Match(ObjectValue o, StringValue m)
Holt einen String aus einer Collection, der dem String m am ähnlichsten ist.
o : ObjectValue, muss eine Collection enthalten. Es wird der Wert aus der Collection geholt, der dem Wert m am ähnlichsten ist.
m : Vergleichswert
$dims = new List StringList
list = "50x2,0", "100x3,1", "200x4,2"
end
@Match($dims, 100x3,2)
100x3,1
ArrayFunction @MatchList(ObjectValue o, StringValue m [, LongValue c])
Holt eine Anzahl von Strings aus einer Collection, die dem String m am ähnlichsten ist. Die Strings werden nach Ähnlichkeit sortiert.
o : ObjectValue, muss eine Collection enthalten. Es werden die Werte aus der Collection geholt, die dem Wert m am ähnlichsten sind.
m : Vergleichswert
c : Elementanzahl des erzeugten Arrays. Wenn der Parameter nicht angegeben ist, wird ein Array der Länge 5 erzeugt.
DoubleFunction @Max(DoubleValue a, DoubleValue b)
Gibt den größeren der beiden Argumente a und b zurück.
a : DoubleValue
b : DoubleValue
@Max(1., 2)
2
DoubleFunction @Min(DoubleValue a, DoubleValue b)
Gibt den kleineren der beiden Argumente a und b zurück.
a : DoubleValue
b : DoubleValue
@Min(1., 2)
1
LongFunction @Mod(LongValue a, LongValue b)
Berechnet den ganzzahligen Rest des Quotienten von a / b
a : LongValue
b : LongValue
@Mod(12, 10)
2
DoubleFunction @Multiply(DoubleValue a, DoubleValue b)
Multipliziert die Argumente a und b
a : DoubleValue
b : DoubleValue
@Multiply(2., 4.)
8
LongFunction @Nbz(DoubleValue y, DoubleValue x)
Erzeugt aus dem Koordinatenpaar y,x den resultierenden 8-stelligen Nummerierungsbezirk
y : DoubleValue
x : DoubleValue
@Nbz(3479512.123, 5758543.210)
34795758
DoubleFunction @Negate(DoubleValue d)
Ändert das Vorzeichen eines Zahlenwertes
d : DoubleValue
@Negate(1.)
-1
ObjectFunction @Next(ObjectValue c)
Gibt den nächsten verfügbaren Wert einer Collection zurück.
c : ObjectValue, muss eine Collection enthalten
@If( @HasMore(&list), @Log(@Concat("Die Liste hat einen weiteren Wert:", @Next(&list) ) )
Die Liste hat einen weiteren Wert: wert
DoubleFunction @NLog(DoubleValue d)
Berechnet den natürlichen Logarithmus von d
d : DoubleValue
@NLog(2.)
0.3010
BooleanFunction @Not(BooleanValue b)
Logisches NOT
b : BooleanValue, der Wahrheitswert b wird umkekehrt
@Not(@Equals("Text", "Text"))
false
StringFunction @Numbers(StringValue s)
Holt alle Ziffern aus dem String s.
s : der String, aus dem die Nummern geholt werden sollen
@Numbers("123aaa456")
123456
ObjectFunction @Open(StringValue n [, StringValue mode])
Öffnet eine Datei mit den Namen n und gibt sie als ObjectValue zurück. Es kann der Zugriffsmodus vorgegeben werden.
n : der Dateiname
mode : Zugriffsmodus
@Store(&inFile, @Open("Textdatei.txt"))
BooleanFunction @Or(BooleanValue b1, b2[, ..., bn])
Logisches OR
b1 ... b1 : BooleanValues, @Or gibt true zurück, wenn eines der Argumente den Wert true besitzt. Die Auswertung wird beim ersten Argument abgebrochen, des den Wert true besitzt.
@Or(@Equals(1., 1.), @Equals("text1", "text2"), @Equals("000", "111"))
true
DoubleFunction @Pow(DoubleValue a, DoubleValue b)
Berechnet die Potenz a hoch b
a : DoubleValue
@Pow(2., 4.)
16.
VoidFunction @Print(StringValue s)
Gibt einen Text in der Konsole aus.
s : StringValue, der Text der ausgegeben werden soll.
@Print("ein Ausgabetext")
ein Ausgabetext
VoidFunction @PrintLine(StringValue s)
Gibt eine Textzeile in der Konsole aus.
s : StringValue, der Text der ausgegeben werden soll.
@Print("ein Ausgabetext")
ein Ausgabetext
VoidFunction @PrintStack([StringValue s])
Gibt den Java-Stacktrace in der Konsole aus. Diese Funktion dient der Fehlersuche beim Schreiben des Skripts.
s : StringValue, wird der Konsolenausgabe vorangestellt.
@PrintStack("ein Ausgabetext")
de.geocalc.ggman.functions.StackMessage: ein Ausgabetext
at de.geocalc.ggman.functions.PrintStack.call(PrintStack.java:33)
at de.geocalc.ggman.functions.FunctionVector.call(FunctionVector.java:77
VoidFunction @Put(ObjectValue c, ObjectValue o1[, ..., on])
VoidFunction @Put(ObjectValue c, ObjectValue o1, o2[, ..., on, on+1])
Fügt einen oder mehrere Werte in einen Container ein
c : der ObjectValue muss eine der Collections List oder Map enthalten. In diese Collection werden die folgenden Schlüssel bzw. Werte eingefügt.
o1 ... bn : die einzufügenden Werte,
Es wird eine Exception ausgelöst, wenn das Objekt c keine Collection ist.
Es wird eine Exception ausgelöst, wenn einer Map eine ungerade Anzahl von Werten übergeben wird.
@Put(&stringList, "aa", "bb", "cc")
Einer StringList werden die Werte 'aa', 'bb', 'cc' hinzugefügt.
@Put(&stringMap, "aa", 1, "bb", 2)
Einer StringMap werden die Schlüssel-Wert-Paare 'aa | 1' und 'bb | 2' hinzugefügt.
DoubleFunction @Rand([DoubleValue from] [, DoubleValue to])
gibt eine Zufallszahl im Bereich zwischen 0. und 1. zurück
from : ist der optionale Parameter from angegeben, wird eine Zufallszahl im Bereich zwischen from und from+1. zurückgegeben.
from : ist zusätzlich der optionale Parameter to angegeben, wird eine Zufallszahl im Bereich zwischen from und to. zurückgegeben.
@Rand(2., 3.)
2.1298
StringFunction @Read(ObjectValue file)
Liest den nächsten verfügbaren Wert aus einer Datei. Welchen Umfang der Rückgabewert hat, hängt vom Typ des Inputfiles ab.
file : der ObjectValue muss ein InputFile sein
Es wird eine Exception ausgelöst, wenn das Dateiende ereicht ist.
@Read(&file)
DateiInhalt
StringFunction @ReplaceChar(StringValue s, StringValue c1, c2[, ..., cn, cn+1])
Ersetzt im String s einzelne Zeichen. Es wird der veränderte String zurückgegeben.
s : der String, in dem die Zeichen ersetzt werden sollen
cn : das zu ersetzende Zeichen
cn+1 : Zeichen, das als Ersatz eingefügt wird
Es wird eine Exception ausgelöst, wenn c kein einzelnes Zeichen ist.
@ReplaceChar("Text", "x", "s")
Test
StringFunction @ReplaceString(StringValue s, StringValue from, StringValue to)
Ersetzt im String s den Teilstring from durch den Teilstring to. Ist der Teilstring from nicht im Original s enthalten, wird das Original zurückgegeben.
s : der String, in dem der Teilstring ersetzt werden sollen
from : der zu ersetzende Teilstring
to : der Teilstring, der als Ersatz eingefügt wird
@ReplaceString("Test", "est", "yp")
Typ
VoidFunction @Reset(ObjectValue c)
Setzt den Zähler einer Collection oder eines CountFilters zurück.
c : ObjectValue, muss eine Collection enthalten
@If( @Not( @HasMore(&list) ), @Reset(&list) )
ohne
VoidFunction @Return(Value v)
Die Funktion Return setzt den Rückgabewert innerhalb eines ValueMacros und unterbricht die Funktionsaufrufe.
v : Value, Rückgabewert
new Macro BooleanMacro
@Return("true")
end
Unterbricht das Macro und setzt den Rückgabewert auf "true"
ArrayFunction @ReverseArray(ArrayValue a)
Gibt einen Array zurück, der die umgekehrte Reihenfolge des Arrays a aufweist. Der Array a bleibt unverändert.
a : der umzukehrende Array
@ReverseArray(&ggPolygon)
DoubleFunction @Rint(DoubleValue d)
Berechnet den dem Argument d am nächsten gelegenen Ganzzahlwert. Wenn zwei Ganzzahlwerte gleich weit von d entfernt sind, wird der gerade Wert zurückgegeben.
d : DoubleValue
@Rint(2.5)
2.
LongFunction @RomanToNumber(StringValue s)
Konvertiert eine Römische Zahl s in einen LongValue
s : String mit einer römischen Zahl
Es wird eine Exception ausgelöst, wenn s nicht den Konventionen der römischen Zahlenschreibweise entspricht.
@RomanToNumber("XIV")
14
DoubleFunction @Round(DoubleValue d, DoubleValue n)
Rundet die Zahl d auf n Nachkommastellen.
d : wert der gerundet werden soll
n : Anzahl der Nachkommastellen
@Round(2.123456, 2)
2.1200
StringFunction @Sectstring(StringValue s, StringValue t1 [, StringValue t2][, StringValue order])
Holt einen Teilstring aus dem String s. Als Anfangskennzeichen dient der String t1. Optional kann das Endekennzeichen t2 angegeben werden. Mit order kann gesteuert werden, welcher Teilstring zurückgegeben wird.
s : der String, aus dem der Teilstring geholt werden soll
t1 : String, die als AnfangsTrenner dienen sollen.
t2 : String, die als EndeTrenner dienen sollen.
order : legt fest, welcher Teilstring zurückgegeben wird:
@Sectstring("Höhe OK45.55 über NN", "OK")
45.55 über NN
@Sectstring("Höhe OK45.55 über NN", "OK", " ")
45.55
@Sectstring("Höhe OK45.55 über NN", "OK", " ", REMAIN_FIRST)
Höhe
VoidFunction @Set(ObjectValue o, StringValue s1, ObjectValue v1[, ..., sn, vn] )
Setzt ein Attribut aus einem Geograf-Element
o : ObjectValue, muss ein GeografElement enthalten
aus diesem wird der Wert zum Attribut s geholt
sn : das ElementAttribute
vn : der zu setztende Wert
@Set(&in, "ebene", 1, "art", 101)
Setzt in dem GeografElement &in die ElementAttribute "ebene" auf 1 und "art" auf 101
VoidFunction @SetArrayValue(ArrayValue a, LongValue i, ObjectValue v)
Setzt in dem Array a an der Position i den Wert v.
a : der Array, in dem ein Wert gesetzt werden soll
i : der Index des Wertes, der in dem Array gesetzt werden soll. Die Zählung beginnt mit 0
v : der Wert, der im Array gespeichert werden soll
@SetArrayValue(&data, 1, "AA")
Setzt in &data am Index 1 (das zweite ArrayElement) den Wert auf "AA"
VoidFunction @SetData(ObjectValue o, ArrayValue array [, LongValue art])
Setzt die Elemente eines Sachdatensatzes zu einem Geografelement. Es wird ein Sachdatensatz aus dem Inhalt des Arrays array erzeugt.
Die Funktion kann dazu benutzt werden, die Datensätze einer Sachdatendefinition (Element DDEF) zu ändern. In o muss ein Element DDEF enthalten sein, art ist nicht anzugeben.
Die Funktion kann auch die Datensätze eines Sachdatensatzes zu einem Geografelement ändern bzw. soweit nicht vorhanden auch neu erzeugen. In o muss ein GeografElement (Punkt, Linie, Text oder Objekt) enthalten sein.
Die Art-Nummer des Sachdatensatzes muss angegeben werden. Ein existierender Sachdatensatz wird überschrieben. Wenn das Element noch keinen Sachdatensatz der Art art besitzt, wird ein neuer Sachdatensatz gespeichert.
Beim Speichern wird nicht geprüft, ob eine Sachdatendefinition vorliegt oder ob die Inhalte korrespondieren.
o : ObjectValue, muss ein GeografElement enthalten,
aus diesem werden die Werte des Arrays a gespeichert
array : der Array, aus dem die Sachdaten geholt werden
art : die Art-Nummer des Sachdatensatzes
@SetData(&ddef, @A(Dimension[d],Material[s5],Laenge[f],Gefaelle[s6]))
Speichert eine Sachdatendefinition
@SetData(&in, @A(200,STZ,12.2,1:530), 1)
Speichert zum Element &in den Sachdatensatz mit der Art 1
LongFunction @Sgn(DoubleValue d)
Stellt das Vorzeichen des Zahlenwertes d fest.
d : der auszuwertende Zahlenwert
@Sgn(-12.123)
-1
DoubleFunction @Sin(DoubleValue d)
Berechnet den Sinus eines Wertes
d : Wert im Bogenmaß, von dem der Sinus berechnet werden soll
@Sin(3.141592)
0.
LongFunction @Size(ObjectValue c)
Gibt die Anzahl der in einer Collection enthaltenen Objekte zurück.
c : der ObjectValue muss einen Collection enthalten,
@Size($elementCollection)
5
StringFunction @Slope(DoubleValue dh, DoubleValue dl [, StringValue m])
Ermittelt eine Neigungsangabe aus einer Höhendifferenz und der dazugehörigen Länge. Es wird ein formatierterStringValue erzeugt.
dh : die Höhendifferenz
dl : die dazugehörigen Länge
m : ein Angabe, die die Art der Neigungsangabe vorgibt.
@Slope(0.5, 113, NEIG)
1:230
DoubleFunction @Sqrt(DoubleValue d)
Berechnet die Quadratwurzel des Wertes d
d : Wert, von dem die Quadratwurzel berechnet werden soll
@Sqrt(4.)
2.
BooleanFunction @EndsWith(StringValue s1, StringValue s2)
Gibt wahr zurück, wenn der String s1 mit der Zeichenfolge s2 beginnt.
s1 : der zu untersuchende String
s2 : die gesuchte Zeichenfolge
@StartsWith("Text", "Te")
true
VoidFunction @Store(ObjectValue v1, ObjectValue o1 [,..., vn, on] )
Speichert den Wert o in einer Variablen v. Es können mehrere Variablen und Werte angegeben werden.
Eine Variablenbezeichner beginnt mit dem Zeichen '&'. Die Funktion @Store speichert die Variable in dem ihr umgebenden Objekt, dies wird in der Regel eine Factory sein.
vn : Variablenbezeichner
on : Wert, der der Variablen vn zugewiesen wird
@Store(&fehlernummer, 1)
Speichert den Wert 1 unter dem Bezeichner &fehlernummer
VoidFunction @StoreElement(ObjectValue elem1, ..., elemn)
Speichert ein Geografelement in den Ausgabedaten der aktuellen Pipline.
elem : Ein oder mehrere GeografElemente, die gespeichert werden sollen.
@StoreElement(@CreateElement(pk))
In wird ein neuer Punkt in den Ausgabedaten gespeichert.
ObjectFunction @Sub(ObjectValue sub [, Value vn, ...])
Ruft eine Subroutine auf und übergibt ihr die Werte vn
sub : eine Subroutine
vn : Die Werte, die an die Subroutine übergeben werden sollen. Die Anzahl der übergebenen Werte muss mit der Anzahl der bei der Subroutinendefinition vereinbarten Namen übereinstimmen.
$testSub = new Sub StringSub(&s1, &s2)
function = @Return(@Concat(&s1, " - ", &s2))
end
@Sub($testSub, "Text1", "Text2")
Text1 - Text2
ArrayFunction @SubArray(ArrayValue a, LongValue from [, LongValue to])
Holt einen TeilArray aus dem Array a. Der TeilArray wird mit den Indexwerten from und to angegeben. Die Zählung beginnt mit 0.
a : der Array, aus dem der TeilArray geholt werden soll
from : Startindex des TeilArrays, der erste Value im Array a hat den Index 0
to : Endindex des TeilArrays, wird das optionale Argument to nicht angegeben, wird der TeilsArray vom from-Index bis zum Ende des Arrays a zurückgegeben
Die beiden Werte from und to können auch negativ angegeben werden, dann wird der Index vom Arrayende an gerechnet.
@SubArray(&array, 1)
@Substring(&array, 1, 3)
StringFunction @Substring(StringValue s, LongValue from [, LongValue to])
Holt einen Teilstring aus dem String s. Der Teilstring wird mit den Indexwerten from und to angegeben. Die Zählung beginnt mit 0.
s : der String, aus dem der Teilstring geholt werden soll
from : Startindex des Teilstrings, das erste Zeichen im String s hat den Index 0
to : Endindex des Teilstrings, wird das optionale Argument to nicht angegeben, wird der Teilstring vom from-Index bis zum Ende des Strings s zurückgegeben
Die beiden Werte from und to können auch negativ angegeben werden, dann wird der Index vom Stringende an gerechnet.
@Substring("Test", 1)
est
@Substring("Test", 1, 3)
es
StringFunction @SubstringOf(StringValue s, StringValue first [, StringValue last])
Holt einen Teilstring aus dem String s. Der Teilstring wird durch die Strings from und to markiert.
s : der String, aus dem der Teilstring geholt werden soll
first : String, der den Anfang des Rückgabestrings markiert.
last : String, der das Ende des Teilstrings markiert. Wird das optionale Argument last nicht angegeben, wird der Teilstring bis zum Ende des Strings s zurückgegeben
@SubstringOf("Hier ist ein (Teil) angegeben", "(", ")")
Teil
@SubstringOf("Hier ist ein (Teil) angegeben", "(")
Teil) angegeben
DoubleFunction @Subtract(DoubleValue d1, d2[,..., dn])
Berechnet die Differenz von mehreren Werten.
d1 : Werte, von dem die Folgewerte abgezogen werden
... dn : Werte, die subtrahiert werden sollen
@Subtract(5., 2., 1.)
2.0
VoidFunction @Swap(ObjectValue v1, ObjectValue v2, ..., vn, vn+1)
Tauscht die Inhalte von jeweils zwei Variablen aus.
vn, vn+1 : die zu tauschenden Werte
@Swap(&punkt1, &punkt2)
Nach dem Aufruf sind die Inhalte von &punkt1 und &punkt2 getauscht.
VoidFunction @Switch(BooleanValue bed1, VoidFunction f1, ..., bedn, fn [,VoidFunction default])
Ermöglicht eine bedingte Ausführung von Funktionen. Es können mehrere Bedingungen festgelegt werden, der jeweils eine Funktion zugeodnet ist. Die erste erfüllte Bedingung führt die zugeordnete Funktion aus. Dann wird die Auswertung abgebrochen. Wird keine Bedingung erfüllt, wird die Default-Funktion ausgeführt, soweit sie definiert ist.
bedn : die n-te Bedingung
fn : die der Bedingung zugeordnete Funktion
default: die Funktion, die ausgeführt wird, wenn keine Bedingung erfüllt ist
@Switch(Equals(&in, 1), @Log("1"), @Equals(&in, 2), @Log("2"), @Log("anderer Wert")
DoubleFunction @Tan(DoubleValue d)
Berechnet den Tangens eines Wertes
d : Wert im Bogenmaß, von dem der Tangens berechnet werden soll
@Tan(1.)
0.0174
ArrayFunction @ToEncodeArray(StringValue s, [LongValue from [, LongValue to]])
Wandelt einen String in einen Array um. Dieser enthält die Zahlenwerte jedes einzelnen Zeichens. Mit den Indexwerten from und to kann ein Teilbereich des Strings angegeben werden. Die Zählung beginnt mit 0.
s : der String, aus dem der Array geholt werden soll
from : Startindex des TeilString, das erste Zeichen im String s hat den Index 0
to : Endindex des TeilStrings, wird das optionale Argument to nicht angegeben, wird der TeilsString vom from-Index bis zum Ende des Strings s zurückgegeben
Die beiden Werte from und to können auch negativ angegeben werden, dann wird der Index vom Stringende an gerechnet.
@ToEncodeArray("Text")
84,101,120,116
ObjectFunction @ToList(ObjectValue c [, StringValue typ [, StringValue mode]])
Wandelt eine Collection in eine List um
c : die Collection, die umgewandelt werden soll.
typ: ein Zeichen, dass den Typ der zu erzeugenden List
mode: Wenn eine Map umgewandelt werden soll, kann angegeben werden, ob die Schlüssel oder
die Werte in die zu erzeugende Liste eingetragen werden sollen.
@ToList($stringMap, S, VALUES)
StringFunction @Token(StringValue s, StringValue t, LongValue i)
Zerlegt den String s in Teilstrings. Als Trennzeichen dienen die Zeichen im String t. Es wird der i-te Teilstring zurückgegeben.
s : der String, aus dem der Teilstring geholt werden soll
t : Zeichen, die als Trenner dienen sollen.
i : Index des zurückzugebenden Teilstrings. Die Zählung beginnt mit 1.
@Token("Eins|Zwei|Drei", "|", 2)
Zwei
@Token("Eins|Zwei#Drei", "|#", 2)
Zwei
StringFunction @ToLowerCase(StringValue s)
Wandelt einen String in Kleinbuchstaben.
s : der String, der umgewandelt werden soll
@ToLowerCase("DasIstEinTest")
dasisteintest
StringFunction @ToString(Value v)
Wandelt einen Value in einen lesbaren String um. ArrayValues werden zu einer mit Kommas getrennten Liste zusammengestellt.
v : der Value, der umgewandelt werden soll
@ToValue(@GetArray(&outLines, "art"))
1001, 1050, 1089
StringFunction @ToUpperCase(StringValue s)
Wandelt einen String in Großbuchstaben.
s : der String, der umgewandelt werden soll
@ToLowerCase("DasIstEinTest")
DASISTEINTEST
StringFunction @Trim(StringValue s [, StringValue c])
Schneidet Leerzeichen oder andere Zeichen am Anfang und am Ende des Strings s ab.
s : der String, der umgewandelt werden soll
c : Mit dem String c kann ein Satz von Zeichen angegeben werden, die am Anfang und Ende des Strings s abgeschnitten werden sollen.
Wenn c nicht angegeben ist, werden nur Leerzeichen abgeschnitten.
@Trim(" Test Test ")
'Test Test'
@Trim("-Test-", "-")
'Test'
StringFunction @TrimSize(StringValue s, LongValue l [, StringValue ori [, StringValue c]])
Formatiert einen String s auf die Länge l. Hat der String s mehr als l Zeichen, wird der String abgeschnitten. Wenn der String s aus weniger Zeichen besteht, wird mit Leerzeichen aufgefüllt.
s : der String, der umgewandelt werden soll
l : die Länge des zu erzeugende Strings
ori : gibt die Orientierung des erzeugten Strings an.
c : ein Zeichen, mit dem der Leerraum aufgefüllt wird, als Standard wird das Lerzeichen die Länge des zu erzeugende Strings
@TrimSize("Test", 10)
'Test '
@TrimSize("Test", 10, "RIGHT")
' Test'
@TrimSize("Test", 10, "CENTER", _)
'___Test___'
BooleanFunction @UnEq(DoubleValue a, DoubleValue b)
Gibt wahr zurück, wenn der Wert a ungleich dem Wert b ist
a :DoubleValue
b :DoubleValue
@Eq(2., @Add(1., 1.))
false
BooleanFunction @UnEquals(StringValue s1, StringValue s2)
Gibt wahr zurück, wenn der String s1 mit der String s2 nicht übereinstimmt
Groß- und Kleinschreibung wird unterschieden
s1 : der zu untersuchende erste String
s2 : der zu untersuchende zweite String
@UnEquals("Text", "TEXT")
true
VoidFunction @While(BooleanValue b, VoidFunction f1 [, ..., fn])
Bedingte mehrmalige Ausführung von Funktionen, While führt die Funktionen f1...n solange nacheinander aus, wie der BooleanValue b wahr ergibt.
b : BooleanValue, Wahrheitswert
f1 ... fn : Funktionen, die nacheinander aufgerufen werden, wenn b wahr ergibt.
Die Funktionen müssen vom Typ Void sein.
@While( @HasMore(&list), @Print( @Next(&list) ) )
Ein Inhalt einer Liste wird in der Konsole ausgegeben.
VoidFunction @Write(ObjectValue file, ObjectValue o1 [, ..., ObjectValue on])
Schreibt Objekte in eine Datei.
file : der ObjectValue muss ein OutputFile enthalten.
on : die Objekte, die in die Datei geschrieben werden sollen. Je nach Dateityp werden verschiedene Ausgaben erzeugt.
@Write(&file, "Dieser Text wird in das File geschrieben")
ohne
VoidFunction @WriteLine(ObjectValue file, ObjectValue o1 [, ..., ObjectValue on])
Schreibt Objekte in eine Datei und fügt einen Zeilenumbruch hinzu.
file : der ObjectValue muss ein OutputFile enthalten.
on : die Objekte, die in die Datei geschrieben werden sollen. Je nach Dateityp werden verschiedene Ausgaben erzeugt.
@Write(&file, "Dieser Text wird in das File geschrieben")
ohne