<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.helmstedt-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AMeasure</id>
	<title>Modul:Measure - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.helmstedt-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AMeasure"/>
	<link rel="alternate" type="text/html" href="https://www.helmstedt-wiki.de/index.php?title=Modul:Measure&amp;action=history"/>
	<updated>2026-05-04T09:58:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Helmstedt-Wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://www.helmstedt-wiki.de/index.php?title=Modul:Measure&amp;diff=22612&amp;oldid=prev</id>
		<title>Admin: AZ: Die Seite wurde neu angelegt:   local NoError, FormatNum = pcall( require, &quot;Module:FormatNum&quot; )     if type( FormatNum ) == &quot;table&quot; then       FormatNum = FormatNum.FormatNum()   else     return &#039;&lt;span class=&quot;error&quot;&gt;&lt;/span&gt;&#039;   end      local Measure = {}  	Measure.Convert = function (tArgs) 		--[=[ enthält die Umrechnung 		Inhalt von tArgs: 		tArgs.data      number	   Zu konvertierender Wert 		tArgs.unit      string     Vorgabe…</title>
		<link rel="alternate" type="text/html" href="https://www.helmstedt-wiki.de/index.php?title=Modul:Measure&amp;diff=22612&amp;oldid=prev"/>
		<updated>2024-05-27T04:55:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Hilfe:Zusammenfassung_und_Quellen&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Hilfe:Zusammenfassung und Quellen (Seite nicht vorhanden)&quot;&gt;AZ&lt;/a&gt;: Die Seite wurde neu angelegt:   local NoError, FormatNum = pcall( require, &amp;quot;Module:FormatNum&amp;quot; )     if type( FormatNum ) == &amp;quot;table&amp;quot; then       FormatNum = FormatNum.FormatNum()   else     return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;   end      local Measure = {}  	Measure.Convert = function (tArgs) 		--[=[ enthält die Umrechnung 		Inhalt von tArgs: 		tArgs.data      number	   Zu konvertierender Wert 		tArgs.unit      string     Vorgabe…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  local NoError, FormatNum = pcall( require, &amp;quot;Module:FormatNum&amp;quot; )&lt;br /&gt;
    if type( FormatNum ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
      FormatNum = FormatNum.FormatNum()&lt;br /&gt;
  else&lt;br /&gt;
    return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
    local Measure = {}&lt;br /&gt;
&lt;br /&gt;
	Measure.Convert = function (tArgs)&lt;br /&gt;
		--[=[ enthält die Umrechnung&lt;br /&gt;
		Inhalt von tArgs:&lt;br /&gt;
		tArgs.data      number	   Zu konvertierender Wert&lt;br /&gt;
		tArgs.unit      string     Vorgabeeinheit von data&lt;br /&gt;
		tArgs.unitL     string     etwaige, kleitere Einheit&lt;br /&gt;
		tArgs.unitU     string     etwaige, größere  Einheit&lt;br /&gt;
		tArgs.factorL   number     Faktor unit/unitL,    Null für keine Umrechnung&lt;br /&gt;
		tArgs.factorU   number     Faktor unitU/unit,    Null für keine Umrechnung&lt;br /&gt;
		tArgs.borderL   number     Schwellwert zur kleineren Einheit&lt;br /&gt;
		tArgs.borderU   number     Schwellwert zur größeren  Einheit&lt;br /&gt;
		tArgs.eps       number     Unsicherheit false für kein Wert&lt;br /&gt;
		tArgs.round     number     Nachkommastellen&lt;br /&gt;
		]=]&lt;br /&gt;
		tResult = {}&lt;br /&gt;
		if 	type(tArgs.data) ~= &amp;#039;number&amp;#039; or&lt;br /&gt;
				type(tArgs.borderL or 0) ~= &amp;#039;number&amp;#039; or&lt;br /&gt;
				type(tArgs.factorL or 0) ~= &amp;#039;number&amp;#039; or&lt;br /&gt;
				type(tArgs.borderU or 0) ~= &amp;#039;number&amp;#039; or&lt;br /&gt;
				type(tArgs.factorU or 0) ~= &amp;#039;number&amp;#039; or&lt;br /&gt;
				(tArgs.unit or &amp;quot;&amp;quot;) ==&amp;quot;&amp;quot;  then&lt;br /&gt;
			return false, tResult;&lt;br /&gt;
		end&lt;br /&gt;
		local IsMinus = tArgs.data  &amp;lt; 0;&lt;br /&gt;
		if IsMinus then&lt;br /&gt;
			tArgs.data = 0 - tArgs.data&lt;br /&gt;
		end&lt;br /&gt;
		tResult.data = tArgs.data&lt;br /&gt;
		tResult.unit = tArgs.unit&lt;br /&gt;
		if tonumber(tArgs.eps)  then&lt;br /&gt;
			tResult.eps  = tArgs.eps&lt;br /&gt;
		end&lt;br /&gt;
		if (tArgs.factorL or 0) ~= 0 then&lt;br /&gt;
			if tArgs.data &amp;lt; tArgs.borderL then&lt;br /&gt;
				tResult.data = tArgs.data * tArgs.factorL&lt;br /&gt;
				if type(tArgs.eps) == &amp;#039;number&amp;#039; then&lt;br /&gt;
					tResult.eps  = tArgs.eps * tArgs.factorL&lt;br /&gt;
				end&lt;br /&gt;
				tResult.unit = tArgs.unitL&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if (tArgs.factorU or 0)  ~= 0 then&lt;br /&gt;
			if tArgs.data &amp;gt;= tArgs.borderU then&lt;br /&gt;
				tResult.data = tArgs.data / tArgs.factorU&lt;br /&gt;
				if type(tArgs.eps) == &amp;#039;number&amp;#039; then&lt;br /&gt;
					tResult.eps  = tArgs.eps  / tArgs.factorU&lt;br /&gt;
				end&lt;br /&gt;
				tResult.unit = tArgs.unitU&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if IsMinus then&lt;br /&gt;
			tResult.data = 0 - tResult.data&lt;br /&gt;
		end&lt;br /&gt;
        if type(tArgs.round) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			tArgs.round = math.floor(tArgs.round);&lt;br /&gt;
			tResult.data = math.floor(tResult.data * 10^tArgs.round + 0.5)/10^tArgs.round ;&lt;br /&gt;
		end&lt;br /&gt;
		return true, tResult;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- AutoConvert: Wie Convert, jedoch mit den Schwellwerten 1 und factorU&lt;br /&gt;
	Measure.AutoConvert = function (tArgs)&lt;br /&gt;
		local tResult = {}&lt;br /&gt;
	    local IsOk = true;&lt;br /&gt;
		if type(tArgs.factorU or 0) ~= &amp;#039;number&amp;#039; then&lt;br /&gt;
			return false, tResult;&lt;br /&gt;
		end&lt;br /&gt;
		tArgs.borderL  = 1;               -- andere Werte werden hier einfach überschrieben.&lt;br /&gt;
		tArgs.borderU  = tArgs.factorU;   -- andere Werte werden hier einfach überschrieben.&lt;br /&gt;
		IsOk, tResult = Measure.Convert(tArgs)&lt;br /&gt;
		return IsOk, tResult;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	Measure.Format = function (tArgs,tPara)&lt;br /&gt;
	--[=[ enthält die Formatierung der Zeichenkette&lt;br /&gt;
		Inhalt von tArgs:&lt;br /&gt;
		tArgs.data      string	   Wert&lt;br /&gt;
		tArgs.unit      string     Einheit&lt;br /&gt;
		tArgs.eps       string     Unsicherheit&lt;br /&gt;
		Inhalt von tPara:&lt;br /&gt;
		tPara.fmt       string     Zahlenformat: &amp;#039;dewiki&amp;#039; oder &amp;#039;ch&amp;#039;&lt;br /&gt;
		tPara.kl        logical    true  -&amp;gt; &amp;#039;(10 ± 2) km&amp;#039;, false -&amp;gt; &amp;#039;10 ± 2 km&amp;#039;&lt;br /&gt;
		]=]&lt;br /&gt;
		local Text = &amp;quot;&amp;quot;&lt;br /&gt;
		if (tArgs.eps or &amp;quot;&amp;quot;) ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			if tPara.kl then&lt;br /&gt;
				Text = &amp;quot;(&amp;quot; .. tostring(tArgs.data) .. &amp;quot;&amp;amp;nbsp;&amp;amp;#177;&amp;amp;nbsp;&amp;quot; .. tostring(tArgs.eps) .. &amp;quot;)&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				Text = tArgs.data .. &amp;quot;&amp;amp;nbsp;&amp;amp;#177;&amp;amp;nbsp;&amp;quot; .. tostring(tArgs.eps)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			Text = tArgs.data&lt;br /&gt;
		end&lt;br /&gt;
		Text = Text .. &amp;quot;&amp;amp;nbsp;&amp;quot; .. tArgs.unit;&lt;br /&gt;
		return Text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Run enthält die Gemeinsamkeiten der Funktionen p.Mass und p.Masz&lt;br /&gt;
	local function Run (frame,fmt)&lt;br /&gt;
		local Text = &amp;quot; &amp;quot;&lt;br /&gt;
		local tData = {}&lt;br /&gt;
		local IsOk = true&lt;br /&gt;
		local tbl = {}&lt;br /&gt;
		local Para = &amp;quot;&amp;quot;;&lt;br /&gt;
		if tonumber(frame.args[1]) then&lt;br /&gt;
			tbl.data  =  tonumber(frame.args[1]);&lt;br /&gt;
		else&lt;br /&gt;
			Para =  &amp;quot;(&amp;quot;.. (frame.args[1]  or &amp;quot;&amp;quot;) .. &amp;quot;)&amp;quot;;&lt;br /&gt;
			Para = frame:callParserFunction{ name = &amp;#039;#expr&amp;#039;, args = Para }&lt;br /&gt;
			tbl.data  = tonumber(Para) or &amp;quot;&amp;quot;;&lt;br /&gt;
		end&lt;br /&gt;
		tbl.unit     =          frame.args[2] or &amp;quot;&amp;quot;;&lt;br /&gt;
		tbl.borderL  = tonumber(frame.args[3] or &amp;quot;&amp;quot;)&lt;br /&gt;
		tbl.unitL    =          frame.args[4] or &amp;quot;&amp;quot;;&lt;br /&gt;
		tbl.factorL  = tonumber(frame.args[5] or 0)&lt;br /&gt;
		tbl.borderU  = tonumber(frame.args[6] or &amp;quot;&amp;quot;)&lt;br /&gt;
		tbl.unitU    =          frame.args[7] or &amp;quot;&amp;quot;;&lt;br /&gt;
		tbl.factorU  = tonumber(frame.args[8] or 0)&lt;br /&gt;
		tbl.eps      = tonumber(frame.args.eps or &amp;quot;&amp;quot;)&lt;br /&gt;
		tbl.round    = tonumber(frame.args.round or &amp;quot;&amp;quot;)&lt;br /&gt;
		if type(tbl.data) ~= &amp;#039;number&amp;#039; then&lt;br /&gt;
			Text = tostring(frame.args[1] or &amp;quot;&amp;quot;) .. &amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;[[Vorlage:Maß/Wartung/Maßzahl nicht numerisch|dep1]]&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
			return false, Text&lt;br /&gt;
		end&lt;br /&gt;
		-- Sonderregelungen km und km²&lt;br /&gt;
		if tbl.unit  ==&amp;quot;km&amp;quot; and tbl.unitL==&amp;quot;&amp;quot; then&lt;br /&gt;
			tbl.borderL = 1;&lt;br /&gt;
			tbl.unitL   = &amp;quot;m&amp;quot;;&lt;br /&gt;
			tbl.factorL = 1000;&lt;br /&gt;
			if tbl.data  &amp;lt;10000 then&lt;br /&gt;
				fmt=&amp;quot;de&amp;quot;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if tbl.unit  ==&amp;quot;km²&amp;quot; and tbl.unitL==&amp;quot;&amp;quot; then&lt;br /&gt;
			tbl.borderL = 1;&lt;br /&gt;
			tbl.unitL   = &amp;quot;ha&amp;quot;;&lt;br /&gt;
			tbl.factorL = 100;&lt;br /&gt;
			if tbl.data  &amp;lt;10000 then&lt;br /&gt;
				fmt=&amp;quot;de&amp;quot;;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if tbl.unit  ==&amp;quot;&amp;quot; then&lt;br /&gt;
			tbl.borderL = 1;&lt;br /&gt;
			tbl.factorL = 0;&lt;br /&gt;
		end&lt;br /&gt;
		IsOk, tData = Measure.Convert(tbl)&lt;br /&gt;
		tData.data = frame:expandTemplate{title = &amp;#039;FormatNum&amp;#039;, args = {tData.data,fmt}}&lt;br /&gt;
        --tData.data = FormatNum.format(tData.data,fmt)&lt;br /&gt;
		if tonumber(tData.eps) then&lt;br /&gt;
		    tData.eps  = frame:expandTemplate{title = &amp;#039;FormatNum&amp;#039;, args = {tData.eps, fmt}}&lt;br /&gt;
            -- tData.eps  = FormatNum.format(tData.eps,fmt)&lt;br /&gt;
		end&lt;br /&gt;
		local tPar = {}&lt;br /&gt;
		tPar.kl = (frame.args.kl or &amp;quot;&amp;quot;) ~= &amp;quot;&amp;quot;&lt;br /&gt;
		tPar.fmt = fmt;&lt;br /&gt;
&lt;br /&gt;
		if not IsOk then&lt;br /&gt;
			Text = &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Unzulässige Werte bei Aufruf von Measure;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
			return false, Text&lt;br /&gt;
		end&lt;br /&gt;
		Text =  Measure.Format(tData,tPar);&lt;br /&gt;
		return true, Text&lt;br /&gt;
	end   -- Run&lt;br /&gt;
&lt;br /&gt;
	local p = {}&lt;br /&gt;
		function p.Masz(frame)&lt;br /&gt;
			local FR = frame:getParent()&lt;br /&gt;
			local IsOk, Out =  Run(FR,&amp;#039;dewiki&amp;#039;)&lt;br /&gt;
			return Out&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function p.Mass(frame)&lt;br /&gt;
			local FR = frame:getParent()&lt;br /&gt;
			local IsOk, Out =  Run(FR,&amp;#039;ch&amp;#039;)&lt;br /&gt;
			return  Out&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		function p.Measure()&lt;br /&gt;
			return Measure&lt;br /&gt;
		end&lt;br /&gt;
	return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>