From ca5b53bddd23caad160f910e40093e33a6d2a9ae Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 16 Aug 2015 09:24:40 +0000 Subject: [PATCH] fhem.pl: add Each userlevel function (Forum #40022) git-svn-id: https://svn.fhem.de/fhem/trunk@9077 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 5596f3659..de9f8e417 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -54,6 +54,7 @@ sub DoSet(@); sub Dispatch($$$); sub DoTrigger($$@); sub EvalSpecials($%); +sub Each($$;$); sub FileRead($); sub FileWrite($@); sub FmtDateTime($); @@ -4330,4 +4331,19 @@ fhemFork() return 0; } +sub +Each($$;$) # can be used e.g. in at, Forum #40022 +{ + my ($dev, $string, $sep) = @_; + return "" if(!$defs{$dev}); + my $idx = ($defs{$dev}{EACH_INDEX} ? $defs{$dev}{EACH_INDEX} : 0); + $sep = "," if(!$sep); + my @arr = split($sep, $string); + + $idx = 0 if(@arr <= $idx); + $defs{$dev}{EACH_INDEX} = $idx+1; + + return $arr[$idx]; +} + 1;