udfStrStrip (3)
str udfStrStrip (str, str, int, bln)
;------------------------------------------------------------------------------------------------------------------------------------------
#DefineFunction udfStrStrip (strString, strStripChars, intBoundary, blnMatchCase)
If strString == "" Then Return strString
If strStripChars == "" Then Return strString
intBoundary = Min (Max (intBoundary, -1), 1) ; -1 = Left, 0 = Left+Right, 1 = Right.
Switch intBoundary
Case -1 ; Strip leading chars.
Case 0
   intLen = StrLen (strString) + 1
   intPos = 1
   While intPos < intLen
      If StrClean (StrSub (strString, intPos, 1), strStripChars, "", blnMatchCase, 1) != "" Then Break
      intPos = intPos + 1
   EndWhile
   strString = StrSub (strString, intPos, -1)
   If strString == "" Then Return ""
   Continue
Case 1 ; Strip trailing chars.
Case 0
   intLen = StrLen (strString)
   intPos = intLen
   While intPos > 0
      If StrClean (StrSub (strString, intPos, 1), strStripChars, "", blnMatchCase, 1) != "" Then Break
      intPos = intPos - 1
   EndWhile
   strString = StrSub (strString, 1, intPos)
EndSwitch
Return strString
;..........................................................................................................................................
; This UDF "udfStrStrip" returns a substring from the given strString.
;
; Depending on whether parameter "intBoundary" is -1 (left edge), 1 (right edge) or 0 (both edges),
; the leading, trailing, or both leading and trailing occurrences of "strStripChars"
; will be deleted and the result string will be returned.
;
; Depending on whether parameter "blnMatchCase" is @TRUE or @FALSE,
; character casing will be respected or not.
;..........................................................................................................................................
; Detlev Dalitz.20101219.20101221.
;..........................................................................................................................................
#EndFunction
;------------------------------------------------------------------------------------------------------------------------------------------


;------------------------------------------------------------------------------------------------------------------------------------------
#DefineFunction udfStrEscapeWB (strString)
Return StrReplace (StrReplace (StrReplace (StrReplace (strString, @CRLF, "@CRLF"), @CR, "@CR"), @LF, "@LF"), @TAB, "@TAB")
#EndFunction
;------------------------------------------------------------------------------------------------------------------------------------------


strText = @TAB : "  " : @CRLF : "  " : @CR : "This is the text" : @TAB : "  " : @CRLF : "  " : @CR

strResult11 = udfStrStrip (strText, " "  : @CRLF : @TAB,  0, @FALSE)      ; "|This is the text|"
strResult12 = udfStrStrip (strText, " T" : @CRLF : @TAB,  0, @TRUE)       ; "|his is the text|"
strResult13 = udfStrStrip (strText, " T" : @CRLF : @TAB,  0, @FALSE)      ; "|his is the tex|"

strResult21 = udfStrStrip (strText, " t" : @CRLF : @TAB, -1, @FALSE)      ; "|his is the text@TAB  @CRLF  @CR|"
strResult22 = udfStrStrip (strText, " T" : @CRLF : @TAB,  1, @FALSE)      ; "|@TAB  @CRLF  @CRThis is the tex"
strResult23 = udfStrStrip (strText, " t" : @CRLF : @TAB, -1, @TRUE)       ; "|This is the text@TAB  @CRLF  @CR|"
strResult24 = udfStrStrip (strText, " T" : @CRLF : @TAB,  1, @TRUE)       ; "|@TAB  @CRLF  @CRThis is the text"

strResult31 = udfStrStrip (strText, " exist"  : @CRLF : @TAB, -1, @TRUE)  ; "|This is the text@TAB  @CRLF  @CR|"
strResult32 = udfStrStrip (strText, " exist"  : @CRLF : @TAB, -1, @FALSE) ; "|his is the text@TAB  @CRLF  @CR|"
strResult33 = udfStrStrip (strText, " exist"  : @CRLF : @TAB,  1, @TRUE)  ; "|@TAB  @CRLF  @CRThis is th|"
strResult34 = udfStrStrip (strText, " EXIST"  : @CRLF : @TAB,  1, @FALSE) ; "|@TAB  @CRLF  @CRThis is th|"
strResult35 = udfStrStrip (strText, " exist"  : @CRLF : @TAB,  0, @TRUE)  ; "|This is th|"
strResult36 = udfStrStrip (strText, " exist"  : @CRLF : @TAB,  0, @FALSE) ; "|his is th|"
strResult37 = udfStrStrip (strText, " hexist" : @CRLF : @TAB,  0, @FALSE) ; "||"


strMsgTitle = "Demo udfStrStrip()"
strMsgText = "Text: " : @LF : "|" : udfStrEscapeWB (strText) : "|" : @LF : @LF
strMsgText = strMsgText : "Result11: " : @LF : "|" : udfStrEscapeWB (strResult11) : "|" : @LF
strMsgText = strMsgText : "Result12: " : @LF : "|" : udfStrEscapeWB (strResult12) : "|" : @LF
strMsgText = strMsgText : "Result13: " : @LF : "|" : udfStrEscapeWB (strResult13) : "|" : @LF
strMsgText = strMsgText : @LF
strMsgText = strMsgText : "Result21: " : @LF : "|" : udfStrEscapeWB (strResult21) : "|" : @LF
strMsgText = strMsgText : "Result22: " : @LF : "|" : udfStrEscapeWB (strResult22) : "|" : @LF
strMsgText = strMsgText : "Result23: " : @LF : "|" : udfStrEscapeWB (strResult23) : "|" : @LF
strMsgText = strMsgText : "Result24: " : @LF : "|" : udfStrEscapeWB (strResult24) : "|" : @LF
strMsgText = strMsgText : @LF
strMsgText = strMsgText : "Result31: " : @LF : "|" : udfStrEscapeWB (strResult31) : "|" : @LF
strMsgText = strMsgText : "Result32: " : @LF : "|" : udfStrEscapeWB (strResult32) : "|" : @LF
strMsgText = strMsgText : "Result33: " : @LF : "|" : udfStrEscapeWB (strResult33) : "|" : @LF
strMsgText = strMsgText : "Result34: " : @LF : "|" : udfStrEscapeWB (strResult34) : "|" : @LF
strMsgText = strMsgText : "Result35: " : @LF : "|" : udfStrEscapeWB (strResult35) : "|" : @LF
strMsgText = strMsgText : "Result36: " : @LF : "|" : udfStrEscapeWB (strResult36) : "|" : @LF
strMsgText = strMsgText : "Result37: " : @LF : "|" : udfStrEscapeWB (strResult37) : "|" : @LF

Pause (strMsgTitle, strMsgText)
ClipPut (strMsgTitle : @CRLF : @CRLF : StrReplace (strMsgText, @LF, @CRLF))

:CANCEL
Exit
;------------------------------------------------------------------------------------------------------------------------------------------
;   Demo udfStrStrip()
;
;   Text:
;   |@TAB  @CRLF  @CRThis is the text@TAB  @CRLF  @CR|
;
;   Result11:
;   |This is the text|
;   Result12:
;   |his is the text|
;   Result13:
;   |his is the tex|
;
;   Result21:
;   |his is the text@TAB  @CRLF  @CR|
;   Result22:
;   |@TAB  @CRLF  @CRThis is the tex|
;   Result23:
;   |This is the text@TAB  @CRLF  @CR|
;   Result24:
;   |@TAB  @CRLF  @CRThis is the text|
;
;   Result31:
;   |This is the text@TAB  @CRLF  @CR|
;   Result32:
;   |his is the text@TAB  @CRLF  @CR|
;   Result33:
;   |@TAB  @CRLF  @CRThis is th|
;   Result34:
;   |@TAB  @CRLF  @CRThis is th|
;   Result35:
;   |This is th|
;   Result36:
;   |his is th|
;   Result37:
;   ||
;------------------------------------------------------------------------------------------------------------------------------------------