Ищет символьное выражение (подстроку), заданное вторым аргументом, в поле типа мемо или в символьном выражении (строке), заданном первым аргументом и заменяет каждое найденное вхождение подстроки в строку значением символьного выражения или поля типа memo, заданного третьим аргументом. Вы можете указать порядковый номер вхождения подстроки в строку, начиная с которого будет осуществляться замена, а также количество производимых замен.

STRTRAN(cSearched, cExpressionSought [, cReplacement]
[, nStartOccurrence] [, nNumberOfOccurrences] [, nFlags])

Парметры

cSearched
Указывает символьное выражение (строку), в котором производится поиск. cSearched может быть полем типа memo.
cExpressionSought
Указывает символьное выражение (подстроку) для поиска в строке. По умолчанию поиск чувствителен к регистру символов.  cExpressionSought может быть полем типа memo.
[, cReplacement]
Указывает символьное выражение для замены каждого вхождения подстроки cExpressionSought в строку cSearched. При опускании параметра cReplacement каждое вхождение будет заменяться пустой строкой (т.е. найденные вхождения будут удалены из исходной строки - прим. переводчика).
[, nStartOccurrence]
Указывает номер вхождения подстроки в строку cExpressionSought, начиная с которого будет производиться замена. Например, если nStartOccurrence равно 4, замена начнется с четвертого по порядку вхождения подстроки cExpressionSought в строку cSearched, а три первых найденных вхождения останутся неизменными. По умолчанию при опущенном параметре nStartOccurrence замена начнется с первого найденного вхождения.
[, nNumberOfOccurrences]
Указывает количество замен найденных вхождений в просматриваемую строку cSearched. По умолчанию при опущенном параметре nNumberOfOccurrences заменяются все найденные вхождения, начиная с указанного параметром nStartOccurrence.
[, nFlags]
Указывает, должен ли быть поиск чувствителен к регистру символов.
Замечание:
Если вам нужно указать только параметр nFlags, то предшествующие ему необязательные параметры можно опустить, заменяя каждый из них на -1. (В Visual FoxPro при обращении к функциям не разрешается опускать параметры, сохраняя только разделяющие их запятые - прим. переводчика).

В следующей таблице перечислены допустимые значения параметра nFlags:

nFlags Описание

0 или -1

Поиск, чувствительный к регистру символов и замена каждого найденного вхождения строкой, в точности совпадающей с cReplacement (По умолчанию).

Замечание:
Это значение определяет поведение функции STRTRAN( ) в соответствии с принятым в версиях Visual FoxPro 7.0 и младше. Вы можете также указать такое поведение, задав значение параметра равным -1 (в версии Visual FoxPro 09.00.0000.2412 значение -1 приводит к ошибке - прим. переводчика).

1

Поиск, нечувствительный к регистру символов и замена каждого найденного вхождения строкой, в точности совпадающей с cReplacement.

2

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

3

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

Замечание:
Регистр символов строки, заданной параметром cReplacement, изменяется только в том случае, если найденная подстрока находится целиком на верхнем регистре (uppercase), нижнем регистре (lowercase) или каждое слово в которой начинается с символа на верхнем регистре, а все прочие символы находятся на нижнем регистре (propercase).

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

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

Пример

В следующем примере строка "abracadabra" помещается в переменную gcString посредством команды  STORE. Функция STRTRAN( ) замещает все вхождения символа "a" на символ "z" и отображает полученную строку "zbrzczdzbrz" используя команду ?. Затем при помощи функции STRTRAN( ) три вхождения символа "a", начиная со второго вхождения, заменяются символом "q" и полученный результат  "abrqcqdqbra" отображается.

  Скопировать код
STORE 'abracadabra' TO gcString
? STRTRAN(gcString, 'a', 'z')
? STRTRAN(gcString, 'a', 'q', 2, 3)

См.также