Клиппер 5. Справочник

особенно если кодирование осуществляется строкой


    особенно если кодирование осуществляется строкой с различными
    символами.
 
  Примечания
 
. Если обе символьные строки имеют одинаковую длину, то первый байт <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>.

Содержание раздела