Skip to content

Действия раздела «Строка»

Значок в палитре: ∅→a · даёт: текст · раздел «Строка» · default-if-empty · начинает схему

Считает пустотой отсутствие элемента, null и пустую строку; строка из пробелов сохраняется.

Фраза на фигуре у только что поставленного шага: если пусто, подставить значение

Пустотой считается отсутствие элемента, null и пустая строка. Строка из пробелов пустой не считается и проходит как есть.

СтрокаОбяз.ПринимаетЧто это
Что проверить (Значение)датекстПроверяемый текст.
Чем заменить пустоту (По умолчанию)датекстЧто вернуть вместо пустоты.
ИмяЧто на нём окажется
Значение—

Значок в палитре: a·b · даёт: текст · раздел «Строка» · join

Склеивает список в одну строку через разделитель.

Фраза на фигуре у только что поставленного шага: склеить в одну строку без разделителя

Обратное действие — «Разбить на части».

Разделителем часто служит  OR  — так собирают выражение условия для кода ПЛК.

СтрокаОбяз.ПринимаетЧто это
Значениядатекст—
ИмяЧто на нём окажется
Строка—

Разделитель — настройка разделитель, по умолчанию пусто

Например « OR » для выражения условия. Перевод строки — {перенос}, табуляция — {таб}.

Значок в палитре: a|b · даёт: список · раздел «Строка» · split-text · начинает схему

Разбивает текст на части по разделителю; со вторым разделителем — на строки с колонками.

Фраза на фигуре у только что поставленного шага: разбить на части по «,»

Заведён ради GAP.Afas.GetCauseEffectC_condition: список «силовых» типов приходит из ячейки строкой «Дымовой|Шаблон1|Шаблон2, Тепловой» — пункты через запятую, в пункте тип и его шаблоны через черту.

Пробелы по краям частей обрезаются, пустые части пропускаются — так разбирает GAP.

Со вторым разделителем каждая часть становится строкой с колонками, и пункт ищут теми же «Взять N-й» и «Найти», что и объекты: условие «колонка 1 равно type».

СтрокаОбяз.ПринимаетЧто это
ТекстдатекстТекст с разделителями: «Дымовой, Тепловой».
ИмяЧто на нём окажется
ЧастиЧасти по порядку; с разделителем внутри части — строки с полями «колонка 1», «колонка 2»…

Между частями — настройка между частями, по умолчанию ,

Чем части отделены друг от друга. Перевод строки — {перенос}, табуляция — {таб}.

Внутри части — настройка внутри части, по умолчанию пусто

Задан — каждая часть становится строкой с полями «колонка 1», «колонка 2»…: у «Дымовой|Шаблон1» колонка 1 — «Дымовой», колонка 2 — «Шаблон1». Пусто — части остаются текстом.

Значок в палитре: {…} · даёт: текст · раздел «Строка» · build-text · начинает схему

Собирает текст: {имя} — место для значения, вход блока либо поле объекта. {TAG}_qlty → P094TI5119_qlty.

Фраза на фигуре у только что поставленного шага: собрать «…»

Входы действие не объявляет заранее — их называет сам образец: каждое {имя} становится входом. Поэтому в схеме видно, что куда подключено, а не «1», «2», «3».

Это закрывает дыру, из-за которой GetCombinedString(str1, str2, str3, str4) не собирался вовсе: в один вход идёт одна связь, и четыре аргумента в «Склеить» было не завести.

Имя в скобках, к которому не подключён свой вход, читается как поле пришедшего объекта. Без этого имя ФБ из GetFbNameByAlias — три поля одного шаблона — собиралось четырьмя фигурами вместо одной.

Постоянных строк-входов нет. Входы появляются сами — по каждому {имя} в образце.

ИмяЧто на нём окажется
СтрокаСтрока, собранная по тексту с подстановками.

Текст с подстановками — настройка образец, обязательна, по умолчанию {значение}, заготовка: стёртая не возвращается

Текст, в котором {имя} — место для значения: «{TAG}_qlty» даёт «P094TI5119_qlty». Имя без своего входа читается как поле пришедшего объекта. Это не регулярное выражение: образцы — у «Заменить по образцу». Сама скобка пишется дважды: {{ и }}. Перевод строки — {перенос}, табуляция — {таб}.

Если значения нет — настройка если значения нет, по умолчанию ничего не собирать

ЗначениеПояснение под пунктом
ничего не собиратьобъект не нашёлся или шаг выше ничего не дал — дальше пустота
оставить место пустымсобрать строку с пустым местом, как делает GAP

Объект — настройка объект

Чьи поля подставлять: пришедшего по связи объекта, строки, для которой считается ячейка, или её ПЛК.

ЗначениеПояснение под пунктом
эта строкаколонки строки, для которой считается ячейка: Units, TAG…
ПЛК этой строкиопции ПЛК этой строки: SplitRegex, ComposeRegex, defaultTAMap…

Значок в палитре: a→b · даёт: текст · раздел «Строка» · replace-text · начинает схему

Заменяет в тексте одно на другое: подстрокой либо по регулярному выражению.

Фраза на фигуре у только что поставленного шага: заменить … на пусто

Искомое и замена бывают известны заранее — тогда их пишут настройкой, — а бывают приходят из той же ячейки, что и сам текст: в GAP так устроен TransformString(input, pattern, replacement).

В палитре два пункта на одно действие: «Заменить» и «Заменить по образцу». Это тот же вид блока с заранее выбранным видом замены — сохранённые схемы от этого не меняются.

ПунктЧто делаетВстаёт с настройками
ЗаменитьЗаменяет в тексте одно на другое: подстрокой либо по регулярному выражению.по умолчанию
Заменить по образцуЗаменяет по регулярному выражению; на группы в замене ссылаются $1, $2.вид замены = образец
СтрокаОбяз.ПринимаетЧто это
Значениедатекст—
ЧтонеттекстЧто искать значением. Не подключён — берётся настройка.
НанеттекстЧем заменить значением. Не подключён — берётся настройка.
ИмяЧто на нём окажется
СтрокаТекст после замены.

Что заменить — настройка что

Пусто — искомое приходит по входу «Что».

На что — настройка на

Пусто — вхождения просто убираются. В виде «образец» на группы ссылаются $1, $2 — не \1. Перевод строки — {перенос}, табуляция — {таб}. Подключён список — текст на каждое значение.

Вид замены — настройка вид замены, по умолчанию текст

ЗначениеПояснение под пунктом
текстищется как есть, заменяются все вхождения
образецрегулярное выражение; в замене на группы ссылаются как $1, $2

Значок в палитре: /… · даёт: текст · раздел «Строка» · path-part · начинает схему

Берёт из пути к файлу имя файла, имя без расширения, расширение или папку.

Фраза на фигуре у только что поставленного шага: взять из пути имя файла

Заведён ради MakeThresholdFeedbackText и MakeModuleDiagnosticText: GAP берёт путь шаблона через Path.GetFileNameWithoutExtension. Без этого шага имя файла вынималось образцом ^.*[\\/]|\.[^.\\/]*$ — инженер такое не напишет и, увидев на схеме, не прочтёт.

СтрокаОбяз.ПринимаетЧто это
ПутьдатекстПолный путь к файлу — обычно из шага выше.
ИмяЧто на нём окажется
ЧастьВыбранная часть пути; её нет — пустая строка.

Какая часть — настройка какая часть, по умолчанию имя файла

ЗначениеПояснение под пунктом
имя файлаC:\Шаблоны\Base.jsm → Base.jsm
имя без расширенияC:\Шаблоны\Base.jsm → Base
расширениеC:\Шаблоны\Base.jsm → .jsm
папкаC:\Шаблоны\Base.jsm → C:\Шаблоны

Значок в палитре: ≡→ · даёт: текст · раздел «Строка» · lookup-table · начинает схему

Таблица готовых ответов: значение → ответ, первая подошедшая строка сверху. Без шагов — для перевода кодов.

Фраза на фигуре у только что поставленного шага: подставить по списку — список пуст

Это то, что в GAP написано switch’ем: Дымовой→0, Тепловой→1, Пламени→2. Развилкой такое не пишется — она задаёт один вопрос и даёт два ответа, а здесь ответов столько, сколько строк.

Список правится в самом шаге и виден целиком — ради этого действие и заведено. Строки переставляются, у каждой свой вид сравнения.

Признаков у таблицы бывает несколько — столбцы, каждый со своим входом, и строка подходит, когда сошлись все её непустые клетки. Ответ — текст с местами подстановки: {tagFeedback}_qlty. Оба ради GetTagFeedback: его switch «тип × качество» собирался в одиннадцать фигур.

Строка отдаёт и несколько ответов — отдельными столбцами. Следующий шаг берёт нужный столбец как «шаг 2 · на что».

Строки бывают и значением: вход «Пары» принимает то, что дал «Разобрать на пары» или словарь объекта. Связь сильнее вписанной таблицы.

СтрокаОбяз.ПринимаетЧто это
ЗначениедатекстТо, что переводят по списку.
Пары (Список)нетсловарьСтроки списка парами: от «Разобрать на пары» или словарь объекта. Не подключён — берётся таблица на фигуре.
ИмяЧто на нём окажется
ЗначениеТо, во что превратилось пришедшее.

Значок в палитре: a=b · даёт: пары · раздел «Строка» · split-pairs · начинает схему

Разбирает текст вида «1=Открыт|0=Закрыт» на пары «ключ → значение» для «Подставить по списку».

Фраза на фигуре у только что поставленного шага: разобрать на пары: «|» между парами, «=» между ключом и значением

Заведён ради GAP.ScadaProjectBase.General.GetMappedValue: список соответствий приходит из ячейки строкой 1=Открыт|0=Закрыт|<any>=?, у каждой ячейки свой.

Про особые ключи GAP (<any>, <empty>, <null>) шаг не знает: для него это ключи как ключи. Что они значат, знает «Подставить по списку».

СтрокаОбяз.ПринимаетЧто это
ТекстдатекстТекст с парами: «1=Открыт|0=Закрыт».
ИмяЧто на нём окажется
ПарыСловарь «ключ → значение»: по одному на каждый пришедший текст.

Между парами — настройка между парами, по умолчанию |

Чем пары отделены друг от друга.

Ключ от значения — настройка ключ от значения, по умолчанию =

Чем в паре ключ отделён от значения.

Негодный текст — настройка негодный текст, по умолчанию оборвать

Пустой текст, кусок без разделителя или с двумя — как GAP, негоден весь текст.

ЗначениеПояснение под пунктом
оборватьсчёт обрывается и называет кусок
пустые парыпар нет — отвечает «остальное» списка

Значок в палитре: a≠a · даёт: значения · раздел «Строка» · distinct

Оставляет только разные значения: «mb_p071» и «MB_P071 » — одно, пустые выбрасываются.

Фраза на фигуре у только что поставленного шага: убрать повторы

Сравнение как у остальных действий: без учёта регистра и без пробелов по краям — mb_p071 и MB_P071  одно и то же. Пустые значения выбрасываются.

Отдельное действие, а не настройка «Взять поле»: повторы убирают из любого списка — и из частей строки после «Разбить», и из значений поля, и из пришедшего вызовом схемы.

СтрокаОбяз.ПринимаетЧто это
ЗначениядатекстЗначения, среди которых остаются только разные.
ИмяЧто на нём окажется
Без повторовТе же значения без повторов; пустые выброшены.

Порядок — настройка порядок, по умолчанию как пришли

ЗначениеПояснение под пунктом
как пришлив порядке прихода: вставили строку в книгу — порядок поехал
по алфавитупо алфавиту, числа по значению: MB_2 раньше MB_10