* 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