Für so kleine Dinge...
Code
Declare string S
Declare string arr[]
// Bearbeite einen String als Array
arr[] = Explode( S )
'
' Bearbeitung
'
'S = Implode( arr[] )
Clear S : WhileLoop 0, SizeOf(arr[]) - 1 : S = S + a1[&loop] : EndWhile
Alles anzeigen
...hätte ich schon oft eine Implode()-Funktion gebraucht.
Jetzt habe ich einfach eine gebastelt. Wie bei Explode() können auch hier Trennzeichen mit angegeben werden.
Code: Implode_Test.prf
Proc Implode
Declare int PC,i, string S
PC = %PCount
Clear S
If PC = 1
Parameters string a1[]
WhileLoop 0, SizeOf(a1[]) - 1
S = S + a1[&loop]
EndWhile
Else
Parameters string a2[], string glue
Case SizeOf(a2[0]) > 0 : S = a2[0]
WhileLoop 1, SizeOf(a2[]) - 1
S = S + glue + a2[&loop]
EndWhile
EndIf
Return S
EndProc
Proc ReverseStr$
Parameters string S
Declare string a[], t
Declare int i,j,k
a[] = Explode(S)
k = Len(S) - 1
j = k
Clear i
While i < j
t = a[i]
a[i] = a[j]
a[j] = t
Inc i
Dec j
EndWhile
Return Implode(a[])
EndProc
Proc ReverseStr_mit_Kleber
Parameters string S
Declare string a[], t
Declare int i,j,k
a[] = Explode(S)
k = Len(S) - 1
j = k
Clear i
While i < j
t = a[i]
a[i] = a[j]
a[j] = t
Inc i
Dec j
EndWhile
Return Implode(a[]," ")
EndProc
cls
var string S = "Dies ist ein kleiner Teststring."
Print S
S = ReverseStr$(S)
Print S
S = ReverseStr$(S)
Print S
Print "\n"; S
Print ReverseStr_mit_Kleber(S)
S = ReverseStr$(S)
Print ReverseStr_mit_Kleber(S)
WaitEnd
Alles anzeigen