PBXB64 String-Operationen
30+ Funktionen
Standard
Vollständiger ANSI- und WSTRING-Support mit 30+ eingebauten String-Funktionen. WSTRING-Intrinsics (WLEN, WLEFT$, WRIGHT$, WMID$), MID$-Zuweisung, INSTR, UCASE$, LCASE$, TRIM$, LSET, RSET und mehr. BYREF-String-Parameter sind vollständig unterstützt mit korrektem Lebenszyklus-Management.
ANSI String-Funktionen
ANSI String-Operationen
FUNCTION PBMAIN() AS LONG
LOCAL s AS STRING
LOCAL t AS STRING
s = " Hello World "
PRINT "LEN: "; LEN(s) ' 15
PRINT "TRIM$: "; TRIM$(s) ' "Hello World"
PRINT "LCASE$: "; LCASE$(s) ' " hello world "
PRINT "UCASE$: "; UCASE$(s) ' " HELLO WORLD "
t = LEFT$(s, 7) ' " Hello"
t = RIGHT$(s, 6) ' "orld "
t = MID$(s, 5, 3) ' "lo "
PRINT "INSTR: "; INSTR(s, "World") ' 9
' Zuweisung via MID$
MID$(s, 9, 5) = "Universe"
PRINT "After: "; s ' " Hello Universe"
FUNCTION = 0
END FUNCTION
Vollständige ANSI-String-API: LEN, LEFT$, RIGHT$, MID$, INSTR, UCASE$, LCASE$, TRIM$, LTRIM$, RTRIM$, SPACE$, STRING$, CHOOSE$, FORMAT$, STR$, VAL, HEX$, OCT$, BIN$.
WSTRING - Wide-Character-Strings
Vollständiger Unicode-Support mit WSTRING-Intrinsics. UTF-16-Encoding, korrekte Längen-Zählung und BYREF-Übergabe.
WSTRING Unicode-Operationen
FUNCTION PBMAIN() AS LONG
LOCAL ws AS WSTRING
ws = "Hello World"
PRINT "WLEN: "; WLEN(ws) ' 11
PRINT "WLEFT$: "; WLEFT$(ws, 5) ' "Hello"
PRINT "WRIGHT$: "; WRIGHT$(ws, 5) ' "World"
PRINT "WMID$: "; WMID$(ws, 7, 3) ' "Wor"
' Unicode-Inhalt
ws = "Grüße"
PRINT "WLEN: "; WLEN(ws) ' 5 (Zeichen, nicht Bytes)
FUNCTION = 0
END FUNCTION
WSTRING-Intrinsics: WLEN, WLEFT$, WRIGHT$, WMID$, WINSTR, WUCASE$, WLCASE$, WTRIM$. Korrekte Zeichen-Zählung (nicht Byte-Zählung) für UTF-16-Inhalt.
LSET / RSET - Feste-Breiten-Auffüllung
Links-/Rechts-Auffüllung
FUNCTION PBMAIN() AS LONG
LOCAL s AS STRING
s = SPACE$(20)
LSET s = "Hello" ' Links-bündig, rechts aufgefüllt
PRINT "LSET: |"; s; "|"
s = SPACE$(20)
RSET s = "Hello" ' Rechts-bündig, links aufgefüllt
PRINT "RSET: |"; s; "|"
FUNCTION = 0
END FUNCTION
LSET und RSET sind echte Implementierungen (keine Stubs), die links-bündige und rechts-bündige Festbreiten-Strings erzeugen. Auch: CSET/CSET$ für Zentrierung.
BYREF-String-Parameter
Strings, die BYREF übergeben werden, werden korrekt behandelt mit caller-owned Lebenszyklus und GEP-basiertem Adressieren.
BYREF-String-Modifikation
FUNCTION ModifyString(BYREF s AS STRING) AS LONG
s = "Modified"
FUNCTION = 0
END FUNCTION
FUNCTION PBMAIN() AS LONG
LOCAL msg AS STRING
msg = "Original"
ModifyString(msg)
PRINT msg ' "Modified"
FUNCTION = 0
END FUNCTION
BYREF-String-Parameter übergeben die Adresse (nicht den Wert), sodass der Callee den String des Callers modifizieren kann. String-Cleanup ist caller-owned, verhindert Double-Free.