Mòdul:Jmarchn/Proves

De Viquipèdia
Salta a la navegació Salta a la cerca
Icona de documentació de mòdul Documentació del mòdul [ mostra ] [ modifica el codi ] [ mostra l'historial ] [ refresca ]

Mòdul Jmarchn (codi · ús · discussió · tests · casos prova | subpàgines · enllaços)

A continuació es mostra la documentació transclosa de la subpàgina /ús. [salta a la caixa de codi]


Proves d'Usuari:Jmarchn a Usuari:Jmarchn/proves


local p = {}
local CFCM = require "Module:ComplForColorModules"

function trim1(s)
   return (s:gsub("^%s*(.-)%s*$", "%1"))
end

function p.CountChars(s)
    local n = 0
    s = trim1 (s)
    s = string.lower(s)
    ToDo = true
    while (ToDo) do
		local Pos = string.find (s, '--ref')
		if Pos then
	    	local ss = string.sub (s,1, Pos-8)
	    	s = ss..string.sub (s, Pos+23)
	    	n = n + 0.6
	    else
	    	ToDo = false
	    end
	end    
    local slen = string.len(s)
    --error (s..'->'..slen)
    local IsIntrawiki = false
    local IsWeb = false
    local IsWebTitle = false
    local IsBold = false
    local niw = 0
    local i = 1
    local Char = ''
    while (i <= slen) do
    	Char = string.sub (s,i,i)
		if Char == '[' then
    		if (i < slen) and (string.sub (s,i+1,i+1) == '[') then
				IsIntrawiki = true
	    		i = i + 2
    		else	
	    		IsWeb = true
	    		i = i + 1
    		end	
    	elseif Char == ']' then
    		if (i < slen) and (string.sub (s,i+1,i+1) == ']') then
    			IsIntrawiki = false
    			n = n + niw
    			niw = 0
	    		i = i + 2
	    	elseif IsWebTitle then
	    		IsWebTitle = false
    			n = n + niw
    			niw = 0
	    		i = i + 1
	    	end
    	elseif Char == "'" then
    		if ((i+1) < slen) and (string.sub (s,i+1,i+2) == "''") then  --IsBold
	    		i = i + 3
    		elseif (i < slen) and (string.sub (s,i+1,i+1) == "'") then	--Cursive
	    		i = i + 2
	    	else	
    			n = n + 0.5
    			i = i + 1
    		end	
    	else
    		if IsIntrawiki then
    			if Char == '|' then
    				niw = 0
    			else
    				niw = niw + 1
    			end	
	    	elseif IsWeb then
	    		if Char == ' ' then
	    			IsWeb = false
	    			IsWebTitle = true
	    		end	
    		else	
    			n = n + 1
    		end	
    		i = i + 1
    	end	
    end	
    return n
end

function countSubstring(s1, s2)
    return select(2, s1:gsub(s2, ""))
end

function LinPerCol(NLines, NCols)
	local Nums = {}
	local LinesPerCol = math.floor(NLines/NCols)
	local Rest = NLines%NCols
	for i = 1, NCols do
		table.insert (Nums, LinesPerCol)
	end	
	if Rest ~= 0 then
		for i = 1, Rest do
			Nums[i] = Nums[i] + 1
		end	
	end	
	return Nums
end	

function p.Alguna(frame)
	local NLines = tonumber(frame.args[1])
	local NCols = tonumber(frame.args[2])
	--return s..' => '..p.CountChars(s)
	return table.concat (LinPerCol(NLines, NCols), '-')
end

return p