FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: thiese am 24 Februar 2019, 09:04:55

Titel: [gelöst]tausender Trennzeichen userReadings
Beitrag von: thiese am 24 Februar 2019, 09:04:55
Hallo,

ich möchte ein userReadings "Entfernung" mit tausender Trennzeichen aus folgendem Reading erstellen.

ist:     MoonDistanceObserver =1234567890
soll:    Entfernung = 1.234.567.890

Hat jemand eine Idee?

Vielen Dank
Titel: Antw:tausender Trennzeichen userReadings
Beitrag von: CoolTux am 24 Februar 2019, 09:22:50
https://www.perl-community.de/bat/poard/thread/6064

http://www.perl-community.de/bat/poard/thread/5736

https://groups.google.com/forum/m/#!topic/de.comp.lang.perl.misc/09g9eW3yRoE

oder mit vorhandenen Perlmodul
https://packages.debian.org/de/jessie/libnumber-format-perl
Titel: Antw:tausender Trennzeichen userReadings
Beitrag von: thiese am 24 Februar 2019, 10:08:45
Danke für die Tipps. Ich komm aber leider nicht weiter.

Habe es so versucht. Läuft aber auf einen Fehler.
Entfernung {my $MoonDistanceObserver = (-?\d+)(\d{3})/$1.$2/;}
Titel: Antw:tausender Trennzeichen userReadings
Beitrag von: CoolTux am 24 Februar 2019, 10:14:55
Ist ja auch falsch.
Es scheint der erste Link zu sein. Da sind im übrigen noch mehr Links.

Aber bleiben wir beim Beispiel des ersten Links. Du hast falsch abgeschrieben und nicht nachgedacht. Beides kann Dir Probleme bereiten. Das ganze Prinzip basiert auf RegEx. Testen kannst du es hier
regex101.com

Und Du musst natürlich richtig abschreiben oder am besten kurz versuchen nach zu vollziehen was da passieren soll und warum Deine Lösung absolut falsch sein muss.
Titel: Antw:tausender Trennzeichen userReadings
Beitrag von: KernSani am 24 Februar 2019, 10:16:25
Da fehlt auch zumindest ein /s. Google mal nach Suchen und ersetzen mit perl.


Kurz, weil mobil
Titel: Antw:tausender Trennzeichen userReadings
Beitrag von: thiese am 24 Februar 2019, 11:08:33
Dank für den Hinweis.

Hier die Lösung:
Entfernung { my$val=ReadingsVal("$name", "MoonDistanceObserver",0);;1 while $val =~ s/^(-?\d+)(\d{3})/$1.$2/;; return $val;;}
Titel: Antw:[gelöst]tausender Trennzeichen userReadings
Beitrag von: CoolTux am 24 Februar 2019, 11:13:33
Super gemacht. Danke das Du die Lösung gepostet hast.

Schönen Sonntag gewünscht.
Titel: Antw:[gelöst]tausender Trennzeichen userReadings
Beitrag von: thiese am 24 Februar 2019, 11:18:51
Danke. Wünsche ich auch.