StringFieldChain()
Verfasst: 30.06.2011 19:32
Leider kann das Trennzeichen bei StringField nur ein Zeichen lang sein.
Daher hab ich hier mal eine Möglichkeit erstellt um Zeichenketten als Trennzeichen zu verwenden.
Daher hab ich hier mal eine Möglichkeit erstellt um Zeichenketten als Trennzeichen zu verwenden.
; Syntax
; Ergebnis$ = StringFieldChain(String$, Index, Trennzeichen$ [, Modus])
;
; Beschreibung
; Gibt den Feldinhalt des 'String$' an der angegebenen Stelle 'Index' zurück.
; Ein 'Trennzeichen$' (bestehend aus einem oder mehreren Zeichen) wird zur Aufteilung des Strings benutzt.
; Die erste 'Index'-Position ist 1.
; 'Modus' ist ein optionaler Parameter und kann folgenden Wert annehmen:
; #PB_String_NoCase : Suchen/Entfernen unabhängig von Groß-/Kleinschreibung
Code: Alles auswählen
Procedure.s StringFieldChain(String$, Index, Trennzeichen$,Modus=0)
back$ = ""
IndexX.l = 1
zeichen.l = Len(Trennzeichen$)
If Modus = #PB_String_NoCase
Trennzeichen$ = LCase(Trennzeichen$)
TestString$ = LCase(String$)
Else
TestString$ = String$
EndIf
If Index > 0
For a.l = 1 To Len(String$)
x1$ = Mid(String$,a,1)
If Mid(TestString$,a,Len(Trennzeichen$)) = Trennzeichen$
If IndexX = Index
Break
EndIf
IndexX.l = IndexX.l +1
x1$ = ""
back$ = ""
a = a + zeichen.l -1
EndIf
back$ = back$ + x1$
Next a
If IndexX < Index
back$ = ""
EndIf
EndIf
ProcedureReturn back$
EndProcedure
Code: Alles auswählen
; Beispiel:
Text$ = "Als Trennzeichen können hier auch zeichenketten angegeben werden."
Debug StringFieldChain(Text$, 1, "können")
Debug StringFieldChain(Text$, 2, "TrennZEICHEN ",#PB_String_NoCase)
Text$ = "abc#*#def#*#ghi#*#jkl#*#mno#*#pqr"
For k=1 To 6
Debug "Teil " + Str(k) + "= "+ StringFieldChain(Text$, k, "#*#")
Next