# String format
Formatuje tekst na podstawie wzorca z wejścia, podstawiając wartości w miejsce znaczników {}. Wyjście jest wstrzymane do momentu odebrania wzorca i wszystkich wymaganych wartości.
String format
P
1
2
3
4
T
# Wejścia
| ID | Skrót | Nazwa | Typ | Domyślnie | Opis |
|---|---|---|---|---|---|
pattern | P | Wzorzec | STRING | | Wzorzec formatowania tekstu. Użyj {} jako znacznika dla kolejnych wartości wejściowych (np. "Temperatura: {} C, Wilgotność: {} %"). Może być dostarczony przez blok Stała tekstowa. |
v1 | 1 | Wartość 1 | STRING | | Pierwsza wartość podstawiana do wzorca. |
v2 | 2 | Wartość 2 | STRING | | Druga wartość podstawiana do wzorca. |
v3 | 3 | Wartość 3 | STRING | | Trzecia wartość podstawiana do wzorca. |
v4 | 4 | Wartość 4 | STRING | | Czwarta wartość podstawiana do wzorca. |
# Wyjścia
| ID | Skrót | Nazwa | Typ | Domyślnie | Opis |
|---|---|---|---|---|---|
text | T | Tekst | STRING | | Sformatowany tekst z podstawionymi wartościami wejściowymi. |
# Konfiguracja
| ID | Nazwa | Typ | Domyślnie | Jednostka | Opis |
|---|---|---|---|---|---|
trigger_on_pattern | Wyzwól na wzorcu | BOOLEAN | false | Gdy włączone, zmiana wzorca wyzwala przeliczenie wyjścia. Gdy wyłączone, zmiana wzorca jest zapisywana bez wyzwalania. | |
trigger_on_v1 | Wyzwól na V1 | BOOLEAN | true | Gdy włączone, zmiana Wartości 1 wyzwala przeliczenie wyjścia. Gdy wyłączone, zmiana jest zapisywana bez wyzwalania. | |
trigger_on_v2 | Wyzwól na V2 | BOOLEAN | true | Gdy włączone, zmiana Wartości 2 wyzwala przeliczenie wyjścia. Gdy wyłączone, zmiana jest zapisywana bez wyzwalania. | |
trigger_on_v3 | Wyzwól na V3 | BOOLEAN | true | Gdy włączone, zmiana Wartości 3 wyzwala przeliczenie wyjścia. Gdy wyłączone, zmiana jest zapisywana bez wyzwalania. | |
trigger_on_v4 | Wyzwól na V4 | BOOLEAN | true | Gdy włączone, zmiana Wartości 4 wyzwala przeliczenie wyjścia. Gdy wyłączone, zmiana jest zapisywana bez wyzwalania. |
# Stan
| ID | Nazwa | Typ | Domyślnie | Jednostka | Opis |
|---|---|---|---|---|---|
has_pattern | Wzorzec odebrany | BOOLEAN | false | Śledzi, czy wejście wzorca zostało odebrane przynajmniej raz. | |
has_v1 | Wartość 1 odebrana | BOOLEAN | false | Śledzi, czy wejście v1 zostało odebrane przynajmniej raz. | |
has_v2 | Wartość 2 odebrana | BOOLEAN | false | Śledzi, czy wejście v2 zostało odebrane przynajmniej raz. | |
has_v3 | Wartość 3 odebrana | BOOLEAN | false | Śledzi, czy wejście v3 zostało odebrane przynajmniej raz. | |
has_v4 | Wartość 4 odebrana | BOOLEAN | false | Śledzi, czy wejście v4 zostało odebrane przynajmniej raz. |
# Kod źródłowy
Pokaż kod Volang
channel = input::channel()
if (channel == "pattern") {
state::set("has_pattern", true)
}
if (channel == "v1") {
state::set("has_v1", true)
}
if (channel == "v2") {
state::set("has_v2", true)
}
if (channel == "v3") {
state::set("has_v3", true)
}
if (channel == "v4") {
state::set("has_v4", true)
}
if (!state::get("has_pattern")) {
return
}
trigger = false
if (channel == "pattern" and config::get("trigger_on_pattern")) {
trigger = true
}
if (channel == "v1" and config::get("trigger_on_v1")) {
trigger = true
}
if (channel == "v2" and config::get("trigger_on_v2")) {
trigger = true
}
if (channel == "v3" and config::get("trigger_on_v3")) {
trigger = true
}
if (channel == "v4" and config::get("trigger_on_v4")) {
trigger = true
}
if (!trigger) {
return
}
pattern = input::get("pattern")
v1 = input::get("v1")
v2 = input::get("v2")
v3 = input::get("v3")
v4 = input::get("v4")
count = str::count(pattern, "{}")
if (count >= 1 and !state::get("has_v1")) {
return
}
if (count >= 2 and !state::get("has_v2")) {
return
}
if (count >= 3 and !state::get("has_v3")) {
return
}
if (count >= 4 and !state::get("has_v4")) {
return
}
if (count == 0) {
output::set("text", pattern)
} else if (count == 1) {
output::set("text", str::fmt(pattern, v1))
} else if (count == 2) {
output::set("text", str::fmt(pattern, v1, v2))
} else if (count == 3) {
output::set("text", str::fmt(pattern, v1, v2, v3))
} else {
output::set("text", str::fmt(pattern, v1, v2, v3, v4))
}
