ausgangstext Typ Text
0 < beginn ≤ s, Typ integer *
0 < anzahl < s-beginn+1, Typ integer
* mit s=STRLEN(ausgangstext). Siehe auch Tipps und Tricks.
Erläuterung
Gibt ein Teilstück des Textes von ausgangstext als Ergebnis zurück. Es werden anzahl Zeichen ab Position beginn übergeben.
Beispiel
ergebnis=STRSUB("aufteilen",4,4)
Siehe Abbildung.
auswahl="03-Klappladen"
zahl = STRSUB(auswahl,1,2)
thema = STRSUB(auswahl,4,STRLEN(auswahl)-4)
Analyse eines Eingabewertes.
Besonderheiten
beginn und anzahl können größer sein, als dies der Text ausgangstext eigentlich zulässt, doch ist das Ergebnis dann auch entsprechend beschränkt. Bis ArchiCAD® 9 zeigte sich die Syntax hier als tolerant.
ergebnis = STRSUB("teil",5,4)
liefert als Ergebnis einen Leerstring. Ebenso wie folgender Ausdruck: ergebnis = STRSUB("teil",3,0)
ergebnis = STRSUB("teil",2,10)
liefert als Ergebnis den Text "eil", also nur 3 Zeichen breit, auch wenn als Breite 10 Zeichen angegeben war.
ergebnis = STRSUB("teil",0,3)
ergebnis = STRSUB("teil",-3,3)
liefert als Ergebnis den Text "tei".
ArchiCAD®
ab 6.0
Tipps und Tricks
GDL liefert keine Funktion um Texteingaben in Groß- oder Kleinschrift zu wandeln. Mit folgender Routine ist dies mit STRSUB umzusetzen: quelle="teSTzeiLE 1;geMiSCHt."
ziel=""
klein=" abcdefghijklmnopqrstufwxyz"
gross=" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FOR i=1 TO STRLEN(quelle)
subT=STRSUB(quelle,i,1)
posT=STRSTR(klein,subT)
IF posT THEN
ziel=ziel+STRSUB(gross,posT,1)
ELSE
ziel=ziel+subT ! unverändert übernehmen.
ENDIF
NEXT i
PRINT ziel