
Code: Select all
Procedure.s CutOut(String$, CutStart$, CutEnd$)
Protected.i Pos1, Pos2, CutEndLen
CutEndLen = Len(CutEnd$)
Pos1 = FindString(String$, CutStart$)
While Pos1
Pos2 = FindString(String$, CutEnd$, Pos1)
If Pos2
String$ = Left(String$, Pos1 - 1) + Mid(String$, Pos2 + CutEndLen)
Else
Break
EndIf
Pos1 = FindString(String$, CutStart$, Pos1)
Wend
ProcedureReturn String$
EndProcedure
Procedure.s RemoveMarks(String$, CutStart$, CutEnd$)
Protected.i Pos1, Pos2, CutStartLen, CutEndLen
CutStartLen = Len(CutStart$)
CutEndLen = Len(CutEnd$)
Pos1 = FindString(String$, CutStart$)
While Pos1
Pos2 = FindString(String$, CutEnd$, Pos1)
If Pos2
String$ = Left(String$, Pos2 - 1) + Mid(String$, Pos2 + CutEndLen)
String$ = Left(String$, Pos1 - 1) + Mid(String$, Pos1 + CutStartLen)
Else
Break
EndIf
Pos1 = FindString(String$, CutStart$, Pos1)
Wend
ProcedureReturn String$
EndProcedure
Txt$ = "abc} {?913} --- {?9745} } } } {?xyz"
Debug RemoveMarks(Txt$, "{?", "}")
Txt$ = "{}{-first}1{-two}2{-three}3{-hello}{-last}{keep}"
Debug CutOut(Txt$, "{-", "}")