CharRelRep()

CHARRELREP()

Replaces characters in a string depending on their correlation

Syntax

       CHARRELREP(<cSearchFor1>,<cString1>,<cSearchFor2>,
              <cString2>,<cReplaceExpression>) --> cString

Arguments

<cSearchFor1> Designates one or more characters within <cString1> for which to search.

<cString1> Designates the character string where <cSearchFor1> is found. <cSearchFor2> Designates one or more characters within <cString2> for which to search.

<cString2> [@] Designates the character string where <cSearchFor2> is found.

<cReplaceExpression> Designates one or more characters to replace those at the established corresponding position within <cString2>.

Returns

The processed <cString2> is returned.

Description

This function is easier to use than it seems. If we proceed on the assumption that both search expressions and the replacement expression are only one character long, then the following steps occur: . All positions are determined where <cSearchFor1> is found within <cString1>. . All positions are found where <cSearchFor2> is found within <cString2>. . The character in the <cString2> string is replaced by the character in the <cReplaceExpression>. This function can be used to simplify work with variables that contain screen memory. If cPict1 contains the character “|”at position 34 and cPict2 contains the character “-” at the same position, then this position within cPict2 can be replaced with a new character, “+”‘, which represents the combination of the two. Multiple Exchanges Both search expressions and the replacement expression can be longer than one character. The previously described exchange procedure occurs repeatedly — initially with the first character in the three character strings, then with the second, and so on. The number of iterations is regulated by the length of <cSearchFor1>. If <cSearchFor2> or the <cReplaceExpression> are shorter, then the last byte is used again.

Notes

. The length of <cString2> determines the number of search procedures at any one time. The length of <cSearchFor1> determines the number of possible exchanges. . The return value of this function can be suppressed by implementing CSETREF() to save space in working memory. . A use for multiple replacement using CHARRELREP() can be found in the accompanying sample programs.

Example

       Determine every position where a "b" occurs in the first string and a
           "1" occurs in the second string.  The respective character is then
           exchanged for the one designated as the fifth parameter.
           ? CHARRELREP("b", "b b b b", "1", "bbb11111", "x")
                                                             //"bbb1x1x1"

See also

CHARRELA(), CSETREF(), Introduction

Advertisements

2 responses to “CharRelRep()

  1. Pingback: Harbour String Functions | Viva Clipper !

  2. Pingback: Harbour All Functions – C | Viva Clipper !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s