mid

Назначение

Функция mid извлекает указанное количество символов из строкового или текстового значения.

Например, извлечем три символа из значения, начиная с четвертого. Если бы в значении было 10 символов, как в "HelloWorld", то 4-ым символом была бы вторая буква L. При этом будут извлечены 3 символа после L, включая саму букву L, т.е. "loW". Функция mid возвращает текстовое значение.

Синтаксис

mid(строка, число, число,[метка положения])

Аргументы

Функция mid принимает четыре аргумента. Первые три аргумента обязательные, четвертый аргумент не обязательный:

  1. строка, из которой извлекается подстрока;

  2. метка положения начальной точки подстроки;

  3. метка положения конечной точки подстроки;

  4. необязательный аргумент; состоит из двух букв:

    • первая буква определяет происхождение меток положения для начальной точки подстроки: l означает подсчет с левого конца строки, r - с правого конца строки;

    • вторая буква означает происхождение меток положения для конечной точки подстроки: l означает подсчет с левого конца строки, r - с правого конца строки, c - с начальной точки.

Метки положения начинаются с обоих концов исходной строки.

Если четвертый аргумент отсутствует, то функция mid выполняется так, как если бы данный аргумент имел значение lc. Другими словами, выражение mid(строка,число,число) эквивалентно выражению mid(строка,число,число,"lc").

Вы также можете использовать подстроки, которые определяют точку(точки), от которой (или между которыми) необходимо извлечь результат. Функция mid принимает сочетание индексов/подстрок. Правый числовой аргумент рассматривается как число символов (как в обычном режиме); если включается левая строка, то результат увеличивается на длину левой строки. Поиск правой строки выполняется с конца левой строки. См. примеры далее:

mid("gbcdefgh", "b", "g") возвращает "cdef"

mid("gbcdefgh", "b", "g", includeleft:=yes) возвращает "bcdef"

mid("gbcdefgh", "b", "g", includeright:=yes) возвращает "cdefg"

isnull(mid("abcdefgh", "x", "d", leftoptional:=no)) возвращает "yes"

isnull(mid("abcdefgh", "x", "y", rightoptional:=no)) возвращает "yes"

mid("abcdefgh", "x", "f", leftoptional:=yes) возвращает "abcde"

mid("ybcdefgh", "b", "y", rightoptional:=yes) возвращает "cdefgh"

mid("abcdefgh", "b", 4) возвращает "cdef"

mid("abcdefgh", "b", 4, includeleft:=yes) возвращает "bcdef" ("b" считается отдельно)

isnull(mid("abcdefgh", "x", 3, leftoptional:=no)) возвращает "yes"

isnull(mid("abcdefgh", "x", "y", rightoptional:=no)) возвращает "yes"

mid("abcdefgh", "x", 5, leftoptional:=yes) возвращает "abcde"

mid("gbcdefgh", 2, "g") возвращает "cdef"

mid("gbcdefgh", 2, "g", includeright:=yes) возвращает "cdefg"

isnull(mid("abcdefgh", -1, "d", leftoptional:=no)) возвращает "yes"

isnull(mid("abcdefgh", 2, "y", rightoptional:=no)) возвращает "yes"

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

Функция mid возвращает текстовое значение.

Если входное значение нулевое, то возвращается нулевое значение.

Примеры

mid ("USA", 1, 2) возвращает "SA"

Обратите внимание, что первая буква в слове USA - U. Первый символ появляется с отступом 0.

Второй символ - буква S, которая появляется с отступом 1. В нашем примере в качестве исходного отступа используется значение 1, поэтому возвращаемое значение начинается с S.

Затем считаются два символа, что указывается третьим аргументом, который использует значение 2. Это включает S и следующий за ним символ A. Таким образом, возвращаемым значением становится SA.

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

Если второй аргумент был бы не 1, а 5, что больше, чем общее количество символов в исходном значении, то отступ располагается после последнего символа в значении USA, длина которого составляет всего 3 символа, следовательно возвращается нулевое значение, поскольку в этом случае символы для возврата отсутствуют.

mid ("Japan", 1, 2) возвращает "ap"

mid("Abc ef hij.",2,9,"ll") возвращает "c ef hij"

mid("Abc ef hij.",1,9,"lr") возвращает "b"

mid("Abc ef hij.",2,9,"lc") возвращает "c ef hij."

mid("Abc ef hij.",9,2,"rl") возвращает "bc"

mid("Abc ef hij.",9,2,"rr") возвращает "bc ef hi"

mid("Abc ef hij.",2,1,"rc") возвращает "i"

В следующих примерах функция возвращает нулевое значение:

mid("abcdefgh",3,6,"lr") возвращает ""

mid("abcdefgh",3,-3,"lc") возвращает ""

mid("abcdefgh",4,6,"rr") возвращает ""

mid("abcdefgh",3,1,"ll") возвращает ""