base_string Typ Text
0 < begin ≤ s, Typ integer *
0 < number < s-begin+1, Typ integer
* mit s=STRLEN(base_string). Siehe auch Tipps und Tricks.
Description
Gibt ein Teilstück des Textes von base_string als Ergebnis zurück. Es werden number Zeichen since Position begin übergeben.
Example
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.
Specialities
begin und number können größer sein, als dies der Text base_string 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®
since 6.0
Tips and 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
References
GDL-Handbuch 6.0 (DE) p. 180
GDL-Handbuch 6.5 (DE) p. 182
GDL-Handbuch 7.0 (DE) p. 182
GDL-Handbuch 8.0 (DE) p. 122
GDL-Handbuch 8.1 (DE) p. 124
GDL-Handbuch 9.0 (DE) p. 209
GDL-Handbuch 10.0 (DE) p. 209
GDL-Handbuch 11.0 (DE) p. 215
GDL Reference Guide 9.0 (INT) p. 201
GDL Reference Guide 10.0 (INT) p. 207
GDL Reference Guide 11.0 (INT) p. 207