Применение этой функции облегчает использование
задающий обрабатываемую символьную строку.
<nValue> - числовое значение, добавляемое к ASCII-коду символов.
<nPosition> - необязательный числовой параметр, задающий позицию
символа, к ASCII-коду которого добавляется <nValue>. По умолчанию
позиция последнего символа.
Возвращаемое значение
cAddString - модифицированная символьная строка <cString>.
Описание
Применение этой функции облегчает использование макросов, т.к.
позволяет изменить строку, не прибегая к функциям типа LEFT(),
RIGHT(), ASC() или SUBSTR() (см. Примеры). Функция производит
преобразование символа по следующей формуле:
CHR((ASC(<Символ>) + <nValue>) % 256)
Функция позволяет выполнять и вычитание, но для этого требуется
дополнительное преобразование. Параметр <nValue> должен при этом,
учитывая предыдущую формулу, иметь значение:
<nValue> = 256 - <значение, вычитаемое из ASCII-кода>
Примечания
. Если <nPosition> находится вне строки <cString>, то строка остается
неизменной.
. Параметр <cString> может быть передан по ссылке. При этом вызов
CSETREF(.T.), подавляющий возвращение функцией результата, позволяет
уменьшить потребности в рабочей памяти.
Примеры
. Добавление 1 к коду предпоследнего, а затем к коду последнего
символа в строке (CHR(ASC("2")+1) дает код символа "3" и т.д.):
? ADDASCII("macro21", 1, 6) // "macro31"
? ADDASCII("macro21", 1) // "macro22"
. Вычитание 32 для преобразования латинских строчных букв в
прописные по формуле CHR((ASC("m") + 256 - 32) % 256):
? ADDASCII("macro21", 224, 1) // "Macro21"