diff --git a/fhem/FHEM/99_Utils.pm b/fhem/FHEM/99_Utils.pm index 49536c0ae..b3555370f 100644 --- a/fhem/FHEM/99_Utils.pm +++ b/fhem/FHEM/99_Utils.pm @@ -244,6 +244,27 @@ round($$) return sprintf("%.${n}f",$v); } +sub +sortTopicNum(@) +{ + my ($sseq,@nums) = @_; + + my @sorted = map {$_->[0]} + sort {$a->[1] cmp $b->[1]} + map {[$_, pack "C*", split /\./]} @nums; + + @sorted = map {join ".", unpack "C*", $_} + sort + map {pack "C*", split /\./} @nums; + + if($sseq eq "desc") { + @sorted = reverse @sorted; + } + + return @sorted; +} + + 1; =pod @@ -332,6 +353,11 @@ round($$) value yet for this key.
+
  • sortTopicNum("asc"|"desc",)
    + sort an array of numbers like x.x.x
    + (Forum #98578) +

  • + =end html