Задание диапазона может осуществляться от
<cReplaceChar> - символьный параметр, задающий заменяющий символ.
Возвращаемое значение
cReplString - модифицированная строка <cString>.
Описание
Функция заменяет все символы с ASCII-кодами, принадлежащими диапазону
от <cChar1|nChar1> до <cChar2|nChar2>. Таким образом можно, например,
все управляющие символы в строке заменить на пробелы.
Задание диапазона может осуществляться от конца к началу, тогда
значение ASCII-кода для <cChar2|nChar2> должно быть меньше, чем для
<cChar1|nChar1>. В этом случае диапазон располагается от
<cChar1|nChar1> до 255 и от 0 до <cChar2|nChar2>.
Примечания
. Функция не изменяет длину строки.
. Параметр <cString> может быть передан по ссылке. При этом вызов
CSETREF(.T.), подавляющий возвращение функцией результата, позволяет
уменьшить потребности в рабочей памяти.
Примеры
. Замена всех управляющих символов в строке на ".":
cString := "a" + CHR(5) + "b" + CHR(9)
? RANGEREPL(CHR(0), CHR(31), cString, ".") // "a.b."
. Замена всех символов с кодами меньше, чем у "A", на "0" (сам
символ "0" не изменяется). Вместо CHR(0) можно указывать пустую
строку:
? RANGEREPL("", CHR(65), "123400", "0") // "000000"
. Все символы от "0" до "8" заменяются на "9":
? RANGEREPL("0", "8", "0212 - 78 67 43", "9") // "9999 - 99 99 99"
. Замена всех символов, кроме прописных латинских букв, на "-".
Оптимально вызывать эту функцию совместно с CSETREF(.T.):
CSETREF(.T.)
cString := "A()&BC/?D"
RANGEREPL(91, 64, @cString, "-") // "A--BC--D"