Name
STRSUB

Syntax
STRSUB (ausgangstext, beginn, anzahl)

Aufklappen Wertebereiche
ausgangstext Typ Text
0 < beginn ≤ s, Typ integer *
0 < anzahl < s-beginn+1, Typ integer

* mit s=STRLEN(ausgangstext). Siehe auch Tipps und Tricks.

Aufklappen Erläuterung
Gibt ein Teilstück des Textes von ausgangstext als Ergebnis zurück. Es werden anzahl Zeichen ab Position beginn übergeben.

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

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

Aufklappen Tipps und Tricks
GDL lieferte in früheren Versionen keine Funktion, um Texteingaben in Groß- oder Kleinschrift zu wandeln. Mit folgender Routine war dies aber 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

Aufklappen ArchiCAD
ab 6.0