Примеры вычисления полей в VBScript
Используйте опцию VBScript для параметра Тип выражения инструмента Вычислить поле или Вычислить поля (несколько), если у вас есть опыт работы с VBA или VBScript и вы знакомы с синтаксисом скриптов. Эта опция также поддерживает прежние модели или скрипты из ArcGIS Desktop, которые используют инструмент Вычислить поле с вычислениями в VBScript.
Внимание:
В Windows 11 версии 24H2 VBScript становится доступным по запросу и требует наличия функции VBScript.
Чтобы продолжить использовать опцию VBScript, выполните одно из следующих действий:
Измените тип выражения на Python, Arcade или SQL.
Включите дополнительную функцию VBScript в системных настройках Windows.
Более подробную информацию см. в разделе Уведомления об удалении и устаревании.
Этот раздел описывает примеры VBScript для Вычисления поля. Чтобы узнать больше о примерах Python, см. Примеры Python для инструмента Вычислить поле. Более подробно о выражениях Arcade см. в Руководстве ArcGIS Arcade. Более подробно о выражениях SQL см. в разделе Вычислить значения полей.
Примечание:
VBScript не позволяет в явном виде задавать тип данных; все переменные имеют неявный тип данных Variant. Выражения наподобие Dim x as String надо удалить или упростить до Dim x.
Простые вычисления
Ряд вычислений можно производить, используя только короткое выражение.
Строковые функции VBScript
Строки поддерживаются несколькими строковыми функциями VBScript, в том числе Left, InStr и Chr. Ниже приведено несколько примеров VBScript для часто используемых в Калькуляторе поля строковых функций:
Используйте функцию Left, чтобы получить указанное количество символов из левой части исходной строки.
Expression:
Left([MyField], 1)
Используйте функцию Right, чтобы получить указанное количество символов из правой части исходной строки.
Expression:
Right([MyField], 1)
Используйте функцию Mid, чтобы получить указанное число символов из строки, используя начальное положение и, дополнительно, число символов.
Expression:
Mid([MyField], 14, 4)
Используйте функцию InStr, чтобы получить местоположение первого вхождения одной строки в другую.
Expression:
InStr([MyField], " ")
Используйте функцию Replace, чтобы получить строку, в которой указанная подстрока заменена другой подстрокой.
Expression:
Replace([MyField], "#", "!")
Используйте функцию Chr, чтобы получить символ, связанный с указанным кодом символа.
В следующем примере символ возврата каретки заменяется восклицательным знаком.
Expression:
Replace([MyField], Chr(13), "!")
Используйте оператор & для соединения двух значений полей.
Expression:
[MyField1] & " " & [MyField2]
Простые математические примеры
VBScript предоставляет следующие инструменты для обработки чисел:
|
Оператор |
Объяснение |
Пример |
Результат |
|---|---|---|---|
|
x + y |
x плюс y |
1,5 + 2,5 |
4.0 |
|
x – y |
x минус y |
3,3 – 2,2 |
1.1 |
|
x * y |
x умножить на y |
2,0 * 2,2 |
4.4 |
|
x / y |
x разделить на y |
3 / 2 |
1.5 |
|
x \ y |
x разделить на y (целочисленное деление) |
3 \ 2 |
1 |
|
x MOD y |
x по модулю y |
8 MOD 3 |
2 |
|
x ^ y |
x возвести в степень y |
2 ^ 3 |
8 |
Умножить значения поля на 2.
[Rank] * 2
Вычисления в полях с использованием логики VBScript
Логические структуры могут быть включены в блок кода через выражения If, ElseIf и Else.
Классифицировать на основании значений поля.
Expression:
density
Code Block:
Dim density
If [POP90_SQMI] < 100 Then
density = "low"
ElseIf [POP90_SQMI] < 300 Then
density = "medium"
Else
density = "high"
End If