中文
English
查看“模块:TWRVersionCheck”的源代码
←
模块:TWRVersionCheck
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:writer
您可以查看和复制此页面的源代码。
local p = {} function p.split (inputstr, sep) if sep == nil then sep = "%s" end local t={} for str in string.gmatch(inputstr, "([^"..sep.."]+)") do table.insert(t, str) end return t end function p.parseNumberVersion(inputstr) local rt=p.split(inputstr,"\\.") for i, v in ipairs( rt ) do rt[i]=tonumber(v); end return rt end function p.isNum(inputstr) if inputstr==nil then return 0 end local mst=string.sub(inputstr,1,1) local lv=string.byte(mst)-48 if lv>=0 and lv<=9 then return 1 end return 0 end function p.parseSubVersion(inputstr) local ext=0 local ver="" local t={} for i=1,string.len(inputstr) do local mst=string.sub(inputstr,i,i) local lv=string.byte(mst)-48 if lv>=0 and lv<=9 then ext=i break end ver=ver..mst end t.ver=p.parseNumberVersion(string.sub(inputstr,ext)) t.type=ver return t end function p.parseFullVersion(inputstr) local ss=p.split (inputstr,"-") local t={} local subs={} t.ver=p.parseNumberVersion(ss[1]) for i=2,#ss do subs[i-1]=p.parseSubVersion(ss[i]) end t.sub=subs return t end function p.compareNumberVersion(t1,t2) local len=math.min(#t1,#t2) for i=1,len do if t1[i]>t2[i] then return 1 elseif t1[i]<t2[i] then return -1 end end return 0 end p.types={} p.types.pre=-1 p.types.rc=0 p.types.stable=1 p.types.hf=2 function p.compareSubVersion(t1,t2) local p1=p.types[t1.type] local p2=p.types[t2.type] if p1>p2 then return 1 elseif p1<p2 then return -1 end return p.compareNumberVersion(t1.ver,t2.ver) end function p.compareFullVersion(t1,t2) local mv=p.compareNumberVersion(t1.ver,t2.ver) if mv~=0 then return mv end if #t1.sub==0 then if #t2.sub~=0 then if t2.sub[1].type~="pre" then return -1 end return 1 end return 0 end if #t2.sub==0 then if t1.sub[1].type=="pre" then return -1 end return 1 end local len=math.min(#t1.sub,#t2.sub) for i=1,len do local mv2=p.compareSubVersion(t1.sub[i],t2.sub[i]) if mv2~=0 then return mv2 end end if #t2.sub>#t1.sub then if t2.sub[#t1.sub+1].type=="pre" then return 1 end return -1 elseif #t2.sub<#t1.sub then if t1.sub[#t2.sub+1].type=="pre" then return -1 end return 1 end return 0 end function p.compareVersion(s1,s2) if p.isNum(s1)~=1 then return -1 elseif p.isNum(s2)~=1 then return 1 end return p.compareFullVersion(p.parseFullVersion(s1),p.parseFullVersion(s2)) end function p.WikiCompareVersion(frame) if p.compareVersion(frame.args.ver1,frame.args.ver2)>=0 then return 1 end end return p;
该页面使用的模板:
模块:TWRVersionCheck
(
查看源代码
)
模块:TWRVersionCheck/doc
(
查看源代码
)
返回至“
模块:TWRVersionCheck
”。
导航菜单
个人工具
创建账户
登录
名字空间
模块
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
中文 WIKI
群峦:救援
冬季救援
WIKI 编辑相关
Wiki编辑指南
审核和评级
综合申请
English WIKI
Terra Firma Rescue
The Winter Rescue
工具
链入页面
相关更改
特殊页面
页面信息