REPLLEFT()

REPLLEFT()

Replace certain characters at the left of a string

Syntax

      REPLLEFT( <cString>, <cReplace|nReplace>,
                                [<cSearch|nSearch>] ) -> cString

Arguments

<cString> [@] Designates the string that is processed.

<cReplace|nReplace> Designates the character that replaces the character in <cSearch|nSearch> at the beginning of the <cString>.

<cSearch|nSearch> Designates the character at the beginning of <cString> that is replaced by <cSearch|nSearch>. The default value is a

space, CHR(32).

Returns

The processed <cString> is returned.

Description

REPLLEFT() can be used to exchange all leading characters in a string for any other selected character.

Note

. The return value of this function can be suppressed by implementing CSETREF() to save space in working memory.

Examples

       .  Replace the leading spaces with zeros:
          ? REPLLEFT("  1234", "0")              // "001234"
       .  Replace the leading zeros with spaces:
          ? REPLLEFT("001234", " ", "0")         // "  1234"
       .  Replace only the leading spaces:
          ? REPLLEFT("  1    ", "0")             // "001   "

Compliance

REPLLEFT() is compatible with CT3’s REPLLEFT().

Platforms

All

Files

Source is replace.c, library is libct.

Seealso

REPLALL(), REPLRIGHT(), CSETREF(), Introduction

REPLALL()

REPLALL()

Replace certain characters at the left and right of a string

Syntax

      REPLALL( <cString>, <cReplace|nReplace>,
              [<cSearch|nSearch>] ) -> cString

Arguments

<cString> [@] Designates the string that is processed.

<cReplace|nReplace> Designates the character that replaces the character in <cSearch|nSearch> at the beginning and end of <cString>.

<cSearch|nSearch> Designates the character at the beginning and end of <cString> that is replaced by <cReplace|nReplace>. The default value designates a space, CHR(32).

Returns

The processed <cString> is returned.

Description

REPLALL() can be used to exchange all leading and trailing spaces in a character string for any other character. Notice that the first non- replaceable character in either direction causes REPLALL() to stop replacing characters on that side.

Note

. The return value of this function can be suppressed by implementing CSETREF() to save space in working memory.

Examples

      .  Replace spaces with dashes.  Replace the spaces 
         only on the side where the character was found:
         ? REPLALL("abcd  ", "-")           // "abcd--"
      .  Replace zeros with spaces:
         ? REPLALL("001234", " ", "0")      // "  1234"
      .  Replace the blanks with dashes on both sides:
         ? REPLALL("   d  ", "-")           // "---d--"
      .  Replace only continuous sequences of characters at the
         beginning and the end of the character string:
         ? REPLALL(" d d  ", "-")           // "-d d--"

Compliance

REPLALL() is compatible with CT3’s REPLALL().

Platforms

All

Files

Source is replace.c, library is libct.

Seealso

REPLLEFT(), REPLRIGHT(), CSETREF(), Introduction

REMRIGHT()

REMRIGHT()

Remove certain characters at the right of a string

Syntax

       REMRIGHT( <cString>, [<cSearch|nSearch>] ) -> cString

Arguments

<cString> Designates the string that is processed.

<cSearch|nSearch> Designates the character that is removed from the end of the <cString>. The default value is a space, CHR(32).

Returns

REMRIGHT() returns the modified <cString>.

Description

REMRIGHT() functions exactly like Harbour’s RTRIM(), with one exception. While this Harbour function can only remove spaces, REMRIGHT() can remove any character you choose. The character that is removed can be specified with the <cCharacter|nCharacter> parameter.

Note

. When the <cCharacter|nCharacter> parameter is not specified, spaces are removed.

Examples

       .  Remove the spaces:
              ? REMRIGHT("   abc   ")         // "   abc"
       .  Remove the character ".":
              ? REMRIGHT("..abc..", ".")      // "..abc"

Compliance

REMRIGHT() is compatible with CT3’s REMRIGHT().

Platforms

All

Files

Source is remove.c, library is libct.

Seealso

REMALL(), REMLEFT()

REMLEFT()

REMLEFT()

Remove certain characters at the left of a string

Syntax

       REMLEFT( <cString>, [<cSearch|nSearch>] ) -> cString

Arguments

<cString> Designates the string that is processed.

<cSearch|nSearch> Designates the character that is removed from the beginning of the <cString>. The default value is a space, CHR(32).

Returns

REMLEFT() returns the modified <cString>.

Description

REMLEFT() functions exactly like Harbour’s LTRIM(), with one exception. While this Harbour function can only remove spaces, REMLEFT() can remove any character you choose. The character that is removed can be specified with the <cSearch|nSearch> parameter.

Note

. When the <cSearch|nSearch> parameter is not specified, spaces are removed.

Examples

       .  Remove the spaces:
              ? REMLEFT("   123   ")       // "123   "
       .  Remove the character ".":
              ? REMLEFT("..123..", ".")    // "123.."

Compliance

REMLEFT() is compatible with CT3’s REMLEFT().

Platforms

All

Files

Source is remove.c, library is libct.

Seealso

REMALL(), REMRIGHT()

REMALL()

REMALL()

Remove certain characters at the left and right of a string

Syntax

       REMALL( <cString>, [<cSearch|nSearch>] ) -> cString

Arguments

<cString> Designates the string that is processed.

<cSearch|nSearch> Designates the character that is removed from the beginning and end of <cString>. The default value is a space, CHR(32).

Returns

REMALL() returns the modified <cString>.

Description

REMALL() functions exactly like Harbour’s ALLTRIM(), with one exception. While this Harbour function can only remove spaces, REMALL() can remove any character you choose. The character that is removed can be specified with the <cSearch|nSearch> parameter.

Note

. When the <cSearch|nSearch> parameter is not specified, spaces are removed.

Examples

       .  Remove the spaces:
            ? REMALL("  1  2  3  ")         // "1  2  3"
       .  Remove the character "0":
            ? REMALL("007007   ", "0")      // "7007   "

Compliance

REMALL() is compatible with CT3’s REMALL().

Platforms

All

Files

Source is remove.c, library is libct.

Seealso

REMLEFT(), REMRIGHT()

RANGEREPL()

RANGEREPL()

Replace characters within a certain ASCII range from a string

Syntax

       RANGEREPL( <cChar1|nChar1>, <cChar2|nChar2>,
           <[@]cString>, <cReplacementChar|nReplacementChar> ) 
           -> cString

Arguments

<cChar1|nChar1> and <cChar2|nChar> Designate the first and the last character of the character range.

<cString> [@] Designates the string that is processed.

<cReplacementChar|nReplacementChar> Designates the single character that replaces those characters in <cString> that are within the specified range.

Returns

The processed character string is returned.

Description

All characters that are in a particular range can be replaced by a new character. For example, you could replace all control characters with spaces. The designated range can also run from “back to front”, meaning that <cChar2|nChar2 can have a lower value than <cChar1|nChar1. In such a case the range extends from the larger value to 255 and from 0 to the smaller value.

Notes

. The length of <cString> remains unaffected by this function. . The return value of this function can be suppressed by implementing CSETREF() to save room in working memory.

Examples

        . ? rangerepl( "0", "9", "year2002.dbf", "?" )
                              // "year????.dbf", replace all digits
        . ? rangerepl( "9", "0", "year2002.dbf", "?" )
                  // "????2??2????", testing replacement from
                  // "9" to chr(255) and from chr(0) to "0"
        . ? rangerepl( "0", "9", "yearcurr.dbf", "?" )
                  // "yearcurr.dbf", test leaving string untouched
        .  Exchange all control characters in a character string for the
              character ".":
              cString  :=  "a" + CHR(5) + "b" + CHR(9)
              ? RANGEREPL(CHR(0), CHR(31), cString, ".")   // "a.b."
        .  A null string can be specified, instead of CHR(0).  The
           following example exchanges all characters with a code < "A" for
           the number "0".  Of course, the number "0" remains the number "0":
           ? RANGEREPL("", CHR(65), "123400", "0")      // "000000"
        .  All characters in the range "0" to "8" are exchanged for the
           number "9":
           ? RANGEREPL("0", "8", "0212 - 78 67 43", "9")
                                                        // "9999 - 99 99 99"
        .  With the exception of upper case letters, all characters are
           exchanged for dashes.  The optimum call is in conjunction with
           CSETREF():
           CSETREF(.T.)
           cString  :=  "A()&BC/?D"
           RANGEREPL(91, 64, @cString, "-")             // "A--BC--D"

Tests

       rangerepl( "0", "9", "year2002.dbf", "?" ) == "year????.dbf"
       rangerepl( "9", "0", "year2002.dbf", "?" ) == "????2??2????"
       rangerepl( "0", "9", "yearcurr.dbf", "?" ) == "yearcurr.dbf"

Compliance

RANGEREPL() is compatible with CT3’s RANGEREPL().

Platforms

All

Files

Source is range.c, library is libct.

Seealso

RANGEREM(), POSREPL(), CHARREPL(), CSETREF(), Introduction

RANGEREM()

RANGEREM()

Remove characters within a certain ASCII range from a string

Syntax

       RANGEREM( <cChar1|nChar1>, <cChar2|nChar2>, <cString> ) -> cString

Arguments

<cChar1|nChar1> and <cChar2|nChar2> Designate the first and the last character of the character range.

<cString> Designates the character string that is edited.

Returns

The function returns the modified character string.

Description

RANGEREM() allows you to delete all characters that are in a particular ASCII range. For example, you could delete all control characters in a character string. The designated range can run “back to front”, meaning <cChar2|nChar2> can have a lower value than <cChar1|nChar1>. In such a case the range extends from the larger value to 255 and also from 0 to the smaller value.

Note

. Since the length of the character string is changed, passing by reference will not work here as it does with RANGEREPL().

Examples

        . ? rangerem( "0", "9", "year2002.dbf" )
                            // "year.dbf", remove all digits
        . ? rangerem( "9", "0", "year2002.dbf" )
                           // "22", testing removal from "9" to chr(255)
                           // and from chr(0) to "0"
        . ? rangerem( "0", "9", "yearcurr.dbf" )
                           // "yearcurr.dbf", test leaving string untouched
        .  Delete all control characters:
              cString   :=  RANGEREM(0, 31, cString)
        .  Delete all characters that are not upper case, alpha characters:
              cString   :=  RANGEREM(91, 64, cString)

Tests

       rangerem( "0", "9", "year2002.dbf" ) == "year.dbf"
            rangerem( "9", "0", "year2002.dbf" ) == "22"
            rangerem( "0", "9", "yearcurr.dbf" ) == "yearcurr.dbf"

Compliance

RANGEREM() is compatible with CT3’s RANGEREM().

Platforms

All

Files

Source is range.c, library is libct.

Seealso

RANGEREPL()