Guten morgen,
Ich sitze mal wieder vor einem Problem und weiß nicht wo ich die Lösung nach googeln kann.
Vielleicht kann mir jmd nen Tipp geben.
1. Wie kann ich folgenden String-Wert ändern/anpassen
DE7414578307
Im ersten Schritt sollte nach der 4. Stelle ein Bindestrich und nach der 10. Stelle ein Doppelpunkt eingefügt werden.
-> DE74-145783:07
Im zweiten Schritt sollte nach einem Leerzeichen der Text einer Variablen angefügt werden.
-> DE74-145783:07 varText
Die neue Zeichenfolge sollte dann so auf der Sitemap angezeigt werden.
2. Wie kann man bei einem Wert die führenden Null weglassen
08576IZ47512
-> 8576IZ47512
Gruß
DIRK
String-Wert ändern/anpassen
-
- Beiträge: 143
- Registriert: 18. Jan 2018 16:38
String-Wert ändern/anpassen
openHab4 (v. 4.1.0) Docker auf Synology DS920+ 

- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: String-Wert ändern/anpassen
Ein String ist ein String. Du musst den String in Teilstrings zerlegen und anschließend wieder zusammenfügen. Die entsprechende Funktion heißt substring(start,end) und erwartet zwei Integer. Für die Teilstrings sähe das so aus:
Bei der zweiten Frage möchte ich nochmal darauf hinweisen, dass es sich um einen String handelt. Wenn Du die Null weg haben möchtest, musst Du den String daraufhin prüfen, ob er mit einer Null anfängt, und gegebenenfalls den String entsprechend bearbeiten. Dabei gibt es kein "Abziehen" von Zeichen. Auch beim Trim-Befehl (Entfernen von führenden und abschließenden Leerzeichen) wird von der Funktion letztlich auf das erste und letzte "Nicht-Leerzeichen" hin durchsucht, anschließend wird der Bereich ausgeschnitten und als String zurückgeliefert.
Code: Alles auswählen
var String strAnotherString = "Irgendein Test"
rule "format string"
when
Item MyInputString changed
then
// val String strIn = MyInputString.state.toString
val String strIn = "DE7414578307" // zum Testen
val String strPart1 = strIn.substring(0,3)
val String strPart2 = strIn.substring(4,9)
val String strPart3 = strIn.substring(10,11)
val String strOut = strPart1+"-"+strPart2+":"+strPart3+" "+strAnotherString
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 143
- Registriert: 18. Jan 2018 16:38
Re: String-Wert ändern/anpassen
Hallo Udo,
Habe den ersten Teil bis zu deinem Post wie folgt umgesetzt bekommen.
Hat es Vor/-Nachteile wenn ich nicht über die Variablen gehe, sondern direkt am Item?
Habe den ersten Teil bis zu deinem Post wie folgt umgesetzt bekommen.
Code: Alles auswählen
itemNeu.postUpdate(itemAlt.state.toString.substring(0,4) + "-" + itemAlt.state.toString.substring(4,10) + ":" + itemAlt.state.toString.substring(10,12) + " (aktuell)")
openHab4 (v. 4.1.0) Docker auf Synology DS920+ 

- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: String-Wert ändern/anpassen
Na ja, Wenn Du Dir die Zeile anschaust, siehst Du schon einen Nachteil... es ist unübersichtlich. Solange Du damit klar kommst, kannst Du machen, was Du willst
Für die Ausführung spielt es hingegen keine Rolle, der Code wird sozusagen kompiliert (wobei das der falsche Ausdruck ist...)

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet