особенно если кодирование осуществляется строкой
особенно если кодирование осуществляется строкой с различными
символами.
Примечания
. Если обе символьные строки имеют одинаковую длину, то первый байт <cString1> связывается с первым байтом <cString2>, второй байт <cString1> - со вторым байтом <cString2> и т.д.
. Если <cString2> короче, чем <cString1>, то операция будет продолжаться опять с первого байта <cString2> по достижении ее конца. Если <cString1> короче, чем cString2>, то работа функции прекратится по достижении конца <cString1>.
. Результат сложения кодов, превышающий 255, преобразуется по формуле:
(ASC(<символ 1>) + ASC(<символ 2>)) % 256
. Параметр <cString1> может быть передан по ссылке. При этом вызов CSETREF(.T.), подавляющий возвращение функцией результата, позволяет уменьшить потребности в рабочей памяти.
Примеры
. Прибавление 1 к коду каждого символа:
? CHARADD("01234", CHR(1)) // "12345"
. Прибавление 255 к коду каждого символа соответствует
вычитанию 1:
? CHARADD("12345", CHR(255)) // "01234"
See Also: ADDASCII()
CSETREF()
CHARAND()
Логически умножает ASCII-коды символов двух строк.
------------------------------------------------------------------------------
Синтаксис
CHARAND([@]<cString1>,<cString2>) --> cString
Параметры
[@]<cString1> - символьный параметр, допускающий передачу по ссылке
и задающий строку, значения ASCII-кодов символов которой логически
умножаются на значения ASCII-кодов символов строки <cString2>.
<cString2> - символьный параметр, задающий строку, значения кодов
символов которой используются для модификации <cString1>.
Возвращаемое значение
cString - модифицированная строка <cString1>.