ein Code-Beispiel für ein StringReplace. Die Procedure durchsucht
den String nach der Angebenen Zeichenkette (suchstring$), wird der
gesuchte String gefunden (groß-klein Schreibung wird nicht beachtet) ,
ersetzt die Procedure die übereinstimmenden Zeichen durch den in ersetz$
angegebenen Zeichen. Wenn im String mehrere Übereinstimmungen
gefunden werden, so können alle durch den ersetzt$ ersetzt werden.
Ich verwenden die Procedure für HTML Codierung!
Durch den Parameter "er" kann die Anzahl der "Ersetzungen" bestimmt werden. Wird 1 angegeben, wird nur die erste Übereinstimmung ersetzt,
bei 0 werden alle Übereinstimmungen ersetzt.
Parameter "ab_gefunden" ersetzt erst ab dem x gefundene
Übereinstimmung den String.
Wen der Parameter "returnfalse" auf 1 steht und es wird keine
Übereinstimmung gefunden wird im Rückgabestring "FALSE"
zurückgegeben.
Code: Alles auswählen
Procedure.s StringReplace(text$,suchstring$,ersetz$,er=99999,ab_gefunden=0,returnfalse=0)
If er=0 :er=99999:EndIf : tr=0
Protected startx=1
Repeat
Protected l=Len(text$)
Protected ls=Len(suchstring$)
Protected ler=Len(ersetz$)
Protected textk$=LCase(text$)
Protected suchk$=LCase(suchstring$)
x=FindString(textk$,suchk$,startx)
If x>0
If ab_gefunden=0
left$=Left(text$,x-1)
right$=Right(text$,l-x-ls+1)
text$=left$+ersetz$+right$
tr+1
Else
ab_gefunden-1
startx=x+ls
EndIf
EndIf
If tr=er :Break: EndIf
Until x=0
If tr=0 And returnfalse=1
ProcedureReturn "FALSE"
Else
ProcedureReturn text$
EndIf
EndProcedure
a$="Purebasic ist toll"
A$=StringReplace(a$,"toll","super")
debug a$
; Debug --> Purebasic ist super