StringSplit
Verfasst: 02.05.2007 23:39
Hallo,
ich habe ein StringSplit programmiert.
ich habe ein StringSplit programmiert.
Code: Alles auswählen
; 02.05.2007 Markus Maiwald
; StringSplit(Array(),text.s,trenntext.s)
; Array für die Rückgabe des aufgeteilten String
; text.s = Der Text
; trenntext.s = ein oder mehrere Zeichen, an der der Text getrennt wird.
;
; im Array(0) steht die Anzahl der trennungen. Wenn 0 steht wurde nichts gefunden.
; das LocalArray dienst als TMP-Array es muss mit der Procdure mit Kopiert werden.
;
;Groß-Klein Schreibung spiel keine rolle.
Global Dim localArray.s(0)
Global Dim buffer.s(100)
Procedure StringSplit(array.l,text.s,such.s)
; setze Arrayname localArray() auf das an 'array' übergebene
localArray() = array
l=Len(text.s) : l2=Len(such.s) : te=0 : start=1 : a_index=0
SSweiter:
For s=start To l ; loop text
a.b=Asc(Mid(text.s,s,1)) ; asc Zeichen Text
For t=1 To l2 ; loop suchtext
b.b=Asc(Mid(such.s,t+te,1)) ; asc Zeichen Suchtext
If a.b=b.b Or (a.b+32)=b.b Or (a.b-32)=b.b; Groß Klein Schreibung aufheben.
te=te+1 ; Anzahl der Treffer
If te=l2 ; Anzahl der Treffer mit Anzahl der SuchZeichen vergleichen
ok=ok+1 ; Anzahl der gfunden Texte die ersetzt wurden.
text1.s=Left(text.s,s-l2) ; Linke Textseite
text2.s=Right(text.s,l-s) ; Rechte Textseite
a_index=a_index+1
localArray(a_index) = text1.s
localArray(a_index+1) = text2.s
text.s=text2.s
l=Len(text.s) ; Neue Text Länge
start=1 ; Neuer Start berechnen.
te=0 ; Treffer auf null
Goto SSweiter
EndIf
Break
Else
te=0
EndIf
Next t
Next s
If a_index=0 : a_index=-1 : EndIf
localArray(0)=Str(a_index+1)
EndProcedure
Debug "-----------------------------------------------------------------------------------------------------------------------------------"
StringSplit(buffer(),"Hallo, es ist Heute der 03.05.2007. , die Routine ist fertig"," ")
anzahl=Val(Buffer(0))
For i=1 To anzahl
Debug buffer.s(i)
Next i
Debug "-----------------------------------------------------------------------------------------------------------------------------------"
StringSplit(buffer(),"$$aa$$11$$64$$cc$$FF$$aaaa$$aabbcc$$","$$")
anzahl=Val(Buffer(0))
For i=1 To anzahl
Debug buffer.s(i)
Next i
Debug "-----------------------------------------------------------------------------------------------------------------------------------"
StringSplit(buffer(),"Hallo, es ist Heute der 03.05.2007. , der Mittwoch ist fast um.","der")
anzahl=Val(Buffer(0))
For i=1 To anzahl
Debug buffer.s(i)
Next i
Debug "-----------------------------------------------------------------------------------------------------------------------------------"
StringSplit(buffer(),"Hallo, es ist Heute der 03.05.2007. , der Mittwoch ist fast um.","DER")
anzahl=Val(Buffer(0))
For i=1 To anzahl
Debug buffer.s(i)
Next i