Платформа 3V/Выражение/Расчет выражений/Работа со строками: различия между версиями
< Платформа 3V | Выражение | Расчет выражений
Перейти к навигации
Перейти к поиску
Строка 52: | Строка 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
+ | |||
+ | <div align="right">'''''Реализовано в [[Описание_релизов/0.42.0_-_Уильям_Уоллес | версии 0.42]]'''''</div> | ||
+ | |||
+ | '''JPath()''' | ||
+ | Для того, чтобы вывести требуемые свойства из строки вида json следует использовать функцию JPath(<json>, <jpath>, <expression>), где | ||
+ | *json - объект json, из которого следует втянуть значения | ||
+ | *jpath - свойства json, значения которых будут выведены в результате. Задаются в строковом виде, либо в коллекции строк | ||
+ | *expression - объект json, из которого следует втянуть значения | ||
+ | <div style="width:700px;> | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | { | ||
+ | "expression": "JPath(ToString([0]), '$.rhumbs[*].'+[1],true)", | ||
+ | "operandValues": [ | ||
+ | { | ||
+ | "id": 0, | ||
+ | "value": "{'startPoint':[58.37194012413617,60.662785146257235],'skip':1,'rhumbs':[{'rhumb':'NW','angle':75,'distance':100},{'rhumb':'SW','angle':0,'distance':51},{'rhumb':'SW','angle':56,'distance':128},{'rhumb':'NW','angle':47,'distance':253},{'rhumb':'SE','angle':81,'distance':299}],'turningPointsIds':['7917fe71-372c-41d0-8ffc-6d97931e5a4e','24e963a2-797f-4060-8e6d-07b002e97b8b','88161be8-860e-4b48-ab3e-9c19dc51f948','5345d652-d0e6-45a1-b846-ee1d5add7378','cedbbd41-c214-448e-b07f-5f422ffff463'],'bindLineId':'cf1fa88b-669f-404f-9490-5488d2b980aa'}" | ||
+ | }, | ||
+ | { | ||
+ | "id": 1, | ||
+ | "value": "['rhumb', 'angle']" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | |||
+ | |||
+ | Результат: | ||
+ | <syntaxhighlight lang="JSON" line> | ||
+ | [ | ||
+ | "NW", | ||
+ | "SW", | ||
+ | "SW", | ||
+ | "NW", | ||
+ | "SE" | ||
+ | ] | ||
+ | </syntaxhighlight> |
Версия 08:33, 23 декабря 2021
Общие функции работы со строками
- Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк
- IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена
- Length([строка]) - возвращает длину строки
- Letter([целое число - индекс латинской буквы]) - возвращает букву от A до Z
- Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
- Substring([строка], [начальный индекс, начиная с 0], [кол-во символов])
Объединение и разбиение строк
- Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
- Join([0], [1]) - Объединяет коллекцию через разделитель в строку
Реализовано в версии 0.40
Replace() Заменять заданный текст можно с помощью функции Replace(<Source_String>, <Find_String>, <Replaced_String>), где
- Source_String - текст в котором требуется заменить строку
- Find_String - строка, которую требуется заменить
- Replaced_String - строка, которой будет заменена Find_String
1 {
2 "expression": "Replace('хо-хо', 'о', 'е')"
3 }
Format() Чтобы вставить в текст значения(??) следует использовать функцию формата Format(<Source_Template>, <Collection_Values>) или Format(<Source_Template>, <Value0>, <Value1>, <Value2>...), где
- Source_Template - шаблон для вставки, где вставка значения обозначается {0}
- Value - вставляемое значение. Счётчик идентификатора для значения начинается с 0.
1 {
2 "expression": "Format('{0} + {0} = {1}', '2', '5')"
3 },
4 {
5 "expression": "Format('{0} + {0} = {1}', ToList('2', '5'))"
6 }
Trim() Для того, чтобы убрать пробелы в начале и в конце строки следует использовать функцию Trim(<Source_String>), где
- Source_String - строка, в которой обрезаются пробелы в начале и в конце
1 {
2 "expression": "Trim(' пробелы между словами будут, а по краям нет ')"
3 }
Реализовано в версии 0.42
JPath() Для того, чтобы вывести требуемые свойства из строки вида json следует использовать функцию JPath(<json>, <jpath>, <expression>), где
- json - объект json, из которого следует втянуть значения
- jpath - свойства json, значения которых будут выведены в результате. Задаются в строковом виде, либо в коллекции строк
- expression - объект json, из которого следует втянуть значения
1 {
2 "expression": "JPath(ToString([0]), '$.rhumbs[*].'+[1],true)",
3 "operandValues": [
4 {
5 "id": 0,
6 "value": "{'startPoint':[58.37194012413617,60.662785146257235],'skip':1,'rhumbs':[{'rhumb':'NW','angle':75,'distance':100},{'rhumb':'SW','angle':0,'distance':51},{'rhumb':'SW','angle':56,'distance':128},{'rhumb':'NW','angle':47,'distance':253},{'rhumb':'SE','angle':81,'distance':299}],'turningPointsIds':['7917fe71-372c-41d0-8ffc-6d97931e5a4e','24e963a2-797f-4060-8e6d-07b002e97b8b','88161be8-860e-4b48-ab3e-9c19dc51f948','5345d652-d0e6-45a1-b846-ee1d5add7378','cedbbd41-c214-448e-b07f-5f422ffff463'],'bindLineId':'cf1fa88b-669f-404f-9490-5488d2b980aa'}"
7 },
8 {
9 "id": 1,
10 "value": "['rhumb', 'angle']"
11 }
12 ]
13 }
Результат:
1 [
2 "NW",
3 "SW",
4 "SW",
5 "NW",
6 "SE"
7 ]