>* FUNCTION SUBSTRCI >* A case-insensitive SUBSTR(). In other words, characters in either the >* searched string or the string searched for are matched regardless of case, and >* the replacement string inserted. > >* Parameters are in the same format as SUBSTR: >* TYPE REQ/OPT >* tcSearched C REQ >* tcSearchfor C REQ >* tcReplace C OPT > >* Although some parameters are identified as required, >* the routine recovers gracefully if they are of a different data type. >* The developer may want to add notification in these cases > >* The function returns the value of the string as converted by the function. > >FUNCTION SUBSTRCI >PARAMETERS tcSearched, tcSearchfor, tcReplace >LOCAL llContinue, lcReturn, lcReplace, lnSearchForSize > >lcReturn = IIF (VARTYPE (tcSearched) = "C", tcSearched, "") >IF NOT EMPTY (tcSearchFor) AND VARTYPE (tcSearchFor) = "C" > llContinue = .T. > lcReplace = IIF (VARTYPE (tcReplace) = "C", tcReplace, "") > lnSearchForSize = LEN (tcSearchFor) > > DO WHILE llContinue > lnStart = ATC (tcSearchfor, lcReturn) > llContinue = (lnStart > 0) > IF llContinue > lcReturn = LEFT (lcReturn, lnStart-1) + lcReplace + SUBSTR (lcReturn, lnStart + lnSearchForSize) > ENDIF > ENDDO >ENDIF >RETURN lcReturn > >