Возвращает подстроку из заданного символьного выражения или поля типа memo, начиная с указанной позиции в этом символьном выражении или поле типа memo и содержащую указанное количество символов.

SUBSTR(cExpression, nStartPosition [, nCharactersReturned])

Параметры

cExpression
Указывает символьное выражение или имя поля типа memo, из которого извлекается подстрока.
nStartPosition
Указывает позицию символа в символьном выражении или в поле типа memo, начиная с которого извлекается подстрока. Нумерация символов в строке cExpression начинается с 1.
Замечание:
Если значение nStartPosition превышает количество символов в строке cExpression, функция SUBSTR( ) возвращает пустую строку ("").

[nCharactersReturned]
Указывает количество символов в возвращаемой из cExpression подстроке. Если вы опустите этот параметр, будут возвращены все символы, оставшиеся до конца исходной строки.

Возвращаемое значение

Символьное. Функция SUBSTR( ) возвращает символьную строку.

Замечание:
Функция SUBSTR( ) не возвращает значение поля типа memo, если она введена в окне отладки Debug. Для того, чтобы вернуть значение из поля типа memo в окне отладки, используйте имя такого поля в качестве аргумента функции ALLTRIM( ) и поместите функцию ALLTRIM( ) внутри функции SUBSTR( ).

Примечания

Когда функция SUBSTR( ) используется с полями типа memo в команде SQL SELECT, применяйте функцию PADR( ) внутри функции SUBSTR( ) с тем, чтобы получить правильный результат в случае, когда возвращается пустое значение или строка недостаточной длины.

Пример

В следующем примере строка 'abcdefghijklm' запоминается в переменной myString с помощью команды STORE. Команда CLEAR очищает главное окно Visual FoxPro. Функция SUBSTR( ) в соответствии со значением параметра nStartPosition = 1, начиная с первого символа исходной строки, извлекает подстроку abcde'  и выбирает 5 символов в соответствии со значением параметра nCharactersReturned = 5. Полученная подстрока отображается при помощи команды ?.Затем функция SUBSTR( ) извлекает подстроку 'fghijklm', начиная с символа, указанного параметром nStartPosition = 6 и до конца исходной строки, поскольку параметр nCharactersReturned опущен.

  Скопировать код
STORE 'abcdefghijklm' TO myString
CLEAR
? SUBSTR(myString, 1, 5)
? SUBSTR(myString, 6)

См.также