AtRepl()
Search and replace sequences in a string
Syntax
AtRepl( <cStringToMatch>, <cString>, <cReplacement>, [<nCounter>], [<lMode>], [<nIgnore>] ) --> cString
Arguments
<cStringToMatch> is the substring searched for in <cString>
<cString> is the processed string
<cReplacement> is the replacement for sequences found
[<nCounter>] specifies the number of replacements Default: last occurence
[<lMode>] if set to .T., only the <nCounter>th sequence of <cStringToMatch> will be replaced, else all sequences will be replaced. Default: .F.
[<nIgnore>]) specifies how many characters in <cString> from the beginning should be ignored by the function Default: 0
Returns
<cString>
Description
The AtRepl() function searches and replaces sequences in a string. First, the function ignores the first <nIgnore> characters of <cString>. Then, if <lMode> is set to .T., it searches for the <nCounter>th occurence of <cStringToMatch> in <cString>. If successful, the sequence will be replaced with <cReplacement>. If <lMode> is set to .F., the same search is performed, but EVERY occurence of <cStringToMatch> till the <nCounter>th (inclusive) will be replaced with <cReplacement>. Note that, in this case, the replacements are performed even if the <nCounter>th occurence does not exist. By using the CSETATMUPA() switch you can decide whether the function restarts searching after a found sequence of after the first character of that sequence. The function allows the use of wildcards in <cStringToMatch> and looks for the settings of SETATLIKE().
Examples
? AtRepl( "ABC", "ABCDABCDABC", "xx" ) // --> "xxDxxDxx" ? AtRepl( "ABC", "ABCDABC", "ZYXW" ) // --> "ZYXWDZYXW" ? AtRepl( "ABC", "ABCDABCDABC", "xx", 2 ) // --> "xxDxxDABC" ? AtRepl( "ABC", "ABCDABCDABC", "xx", 2, .T. ) // --> "ABCDxxDABC"
Tests
AtRepl( "ABC", "ABCDABCDABC", "xx" ) == "xxDxxDxx" AtRepl( "ABC", "ABCDABC", "ZYXW" ) == "ZYXWDZYXW" AtRepl( "ABC", "ABCDABCDABC", "xx", 2 ) == "xxDxxDABC" AtRepl( "ABC", "ABCDABCDABC", "xx", 2, .T. ) == "ABCDxxDABC"
Compliance
AtRepl() is compatible with CT3’s AtRepl(). Note the new, 6th parameter !
Platforms
All
Files
Source is AtRepl.c, library is ct3.
Seealso
CSETATMUPA() SETATLIKE()
Pingback: Harbour String Functions | Viva Clipper !
Pingback: Harbour All Functions – A | Viva Clipper !