Modul:Benutzer:Kpfiwa/Testc
Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Kpfiwa/Testc/Doku erstellt werden
--[[ Offen:
1. Zahlen formatieren mit 0000
2. Zahlen formatieren mit Breite
3. Zahlen formatieren mit +1000000 ... beo minus?
2. mit img testen
--]]
local ERROR ='';
local lang=mw.language.getContentLanguage() -- wichtig!!
--local l2=mw.getContentLanguage()
local yyy =lang:getCode()
local text=''
local TEST='TEST = '
-- Generell zum Einlesen beliebiger Texte muss gegen wikifunktion ersetzt werden
-- Initialisierungen
local p = {}
-------- Eigentliches Programm ----
function printtab(tabl)
local ret,vat='',''
for ka, va in pairs(tabl) do
-- ret=ret .. ka .. ". VAL=" .. vat .. "<br>"
ret=ret .. ". VAL=" .. ka .. "<br>"
end
return ret
end
function nullern(nr, bd, ad, ds)
local ret = tostring(nr) -- falls numerisch, dann string
if not ad then
ad = 0
end
if not bd then
bd = 7
end
bd = bd + ad + 1
if ds and ds ~= "." then
ds = "KOMMA" -- locale sprache irgendwo auslesen
end
local form = "%0" .. bd .. "." .. ad .. "f"
local zahl = string.format(form, nr)
local r = string.gsub(zahl, "^0(0+)", '<span style="visibility:hidden;">%1</span>')
r = string.gsub(r, "0</span>$", "</span>0")
r = string.gsub(r, "0</span>%.", "</span>0.")
r = string.gsub(r, '<span style="visibility:hidden;"></span>', "")
return r
end
local function tonum(nr, bd, ad) -- egal was kommt, Stringverarbeitung Nummernausgabe
local ret = tostring(nr) -- falls numerisch, dann string
if not ad then ad = 0 end
if not bd then bd = 7 end
local len=10^bd -- als multiplikator
bd = bd + ad + 1 --(Gesamtlänge incl. Komma)
local form = "%0" .. bd .. "." .. ad .. "f" -- bastelt das format mit gesamtlänge und nachkomma
-- Alle Gruppentrenner raus, das letzte Zeichen ist Dezimaltrenner
ret = string.gsub(string.reverse(ret), "[%.,]+", "QIX", 1) -- Letzten Ersetzen mit QIX
ret = string.gsub(ret, "[%.,%s%']+", "") -- allr Zeichen raus
ret = string.reverse(string.gsub(ret, "QIX", ".")) -- QIX wird Dezipunkt
local zahl = string.format(form, ret)
-- Jetzt durch die Internationalisierung jagen
local x = lang:formatNum(math.abs(tonumber(zahl)))
local z1=#x
local z2=z1-bd
zahl = tonumber(zahl)
if zahl < 0 then zahl = lang:formatNum(zahl-len)
else zahl = lang:formatNum(zahl + len) end
--[[
mit string.sub(s, i [, j]) operieren. 2 Teile, 1, Teil 1
Teil 1 kommt in <span style="visibility:hidden;">%1</span>
Teil 2 klebt dran
--]]
return zahl .. '=' .. z1 ..'/'.. z2
end
function formnum(nr, bd, ad)
if not ad then ad = 0 end
if not bd then bd = 7 end
-- Nummer bereinigen, Dezimalpunkt festlegen
bd = bd + ad + 1
if ds and ds ~= "." then
ds = "KOMMA" -- locale sprache irgendwo auslesen
end
local form = "%0" .. bd .. "." .. ad .. "f"
local zahl = string.format(form, nr)
local r = string.gsub(zahl, "^0(0+)", '<span style="visibility:hidden;">%1</span>')
r = string.gsub(r, "0</span>$", "</span>0")
r = string.gsub(r, "0</span>%.", "</span>0.")
r = string.gsub(r, '<span style="visibility:hidden;"></span>', "")
return r
end
local function linkexE(txt)-- verarbeitet die externen Links
-- Suchmuster für externe Links:
such = '%[((%S+)%s*(.*))]' -- magic characters are ( ) . % + - * ? [ ^ $
lnk = '[https://gadacz.de/gene#Start Start in die Gene-Datenbank]'
return txt
end -- linkexE
-----------------
function p.f(frame)
frame = frame:getParent()
for key, val in pairs(frame.args) do
end
local q1='\n{| class="wikitable sortable"'
q1=q1 .. "\n! A !! B"
--q1= q1 .. string.format ("\n|-\n|Preceding with blank||%10.2f", 19.77)
--q1=q1 .. string.format ("\n|-\n|Preceding with zeros|| %010.2f", 19.77)
--q1=q1 .. string.format ("\n|-\n|floats|| %14.2f %+.0f %-4.2f %-4.2f", 3.1416, 3.1416, -3.1416, 3.1416)
--q1=q1 .. "\n|-\n|123||!1234567890!"
--q1=q1 .. "\n|-\n|000||!0000000000!"
--q1=q1 .. '\n|-\n|nbs||style="white-space: pre"|! !'
--q1=q1 .. '\n|-\n|nbs+lz||style="white-space: pre"|! !'
--q1=q1 .. '\n|-\n|lz pre-wrap||style="white-space: pre-wrap"|! !'
--q1=q1 .. '\n|-\n|nullern||'.. nullern(123456.4,10,2)
q1=q1 .. '\n|-\n|tonum(1236.887)||'.. tonum(1236.887,5,2)
q1=q1 .. '\n|-\n|tonum(-1236.887)||'.. tonum(-1236.887,5,2)
q1=q1 .. '\n|-\n|tonum("1.236,887")||'.. tonum("1.236,887",8,2)
--[[q1=q1 .. '\n|-\n|formnum10 ||' .. lang:formatNum( 12345487.999 )
q1=q1 .. '\n|-\n|formatNum12 || style="width:120px;" |' .. lang:formatNum( 12345487.999 )
q1=q1 .. '\n|-\n|formatNum20 || X<span style="width:100em;">' .. lang:formatNum( 12345487.999 ) .. '</span>X'
q1=q1 .. '\n|-\n|formatNum000||'.. lang:formatNum( 00012345487.99 )
q1=q1 .. '\n|-\n|formatNum++000||'.. lang:formatNum( -00012345487.9879 )
-- q1=q1 .. '\n|-\n|l2||'.. printtab(l2) --]]
q1 = q1 .. "\n|}"
return q1
end -- p.f function
return p