local d = {}
local 简文件库 = require("lfs")
local ffi = require("ffi")
--~ 排
--~ 办排中值的能
--~ 入参2
--~ 入参3
--~ 入参4
function d.历排(o1_0, o1, o2_0, o3_0, o4_0)
local k1_0
--~ 集排
k1_0 = {}
for o2 = 1, #o1_0 do
k1_0[#k1_0 + 1] = o1(o1_0[o2], o2_0, o3_0, o4_0)
end
return k1_0
end
--~ 文
--~ 历文的能
--~ 入参2
--~ 入参3
function d.历文(o1, o2, o1_0, o2_0)
local k1_0
--~ 集排
k1_0 = {}
for o3_0 in o2(o1, o1_0, o2_0) do
k1_0[#k1_0 + 1] = o3_0
end
return k1_0
end
--~ 排
--~ 能
function d.历排取一(o1_0, o1)
local k1
for o2 = 1, #o1_0 do
--~ 值
k1 = d.历排取一的模(k1, o1_0[o2], o1)
end
return k1
end
--~ 值
--~ 排中值
function d.历排取一的模(o1, o2, o3)
if o1 == nil then
return o2
elseif o3(o1, o2) then
return o2
else
return o1
end
end
--~ 对
--~ 能
function d.历对取一(o1_0, o1)
local k1, k2
for o2, o2_0 in pairs(o1_0) do
--~ 键
--~ 值
k1, k2 = d.历对取一的模(k1, k2, o2, o2_0, o1)
end
return k1, k2
end
function d.历对取一的模(o1, o2, o3, o4, o5)
if o1 == nil then
return o3, o4
elseif o5(o1, o2, o3, o4) then
return o3, o4
else
return o1, o2
end
end
function d.历对(o1_0, o1, o2)
local k1
local k1_0, k2_0
--~ 对
k1_0 = {}
for o3, o2_0 in pairs(o1_0) do
--~ 键
--~ 值
k1, k2_0 = o1(o3, o2_0, o2)
if k1 then
k1_0[k1] = k2_0
else
end
end
return k1_0
end
--~ 排中值
--~ 值类
--~ 办值的能
function d.操类(o1_0, o1, o2)
if type(o1_0) == o1 then
return o2(o1_0)
else
return o1_0
end
end
--~ 排中文
--~ 入参2
--~ 入参3
--~ 入参4
function d.全筛文(o1, o2, o3, o4)
if string.find(o1, o2, o3, o4) then
return o1
end
end
--~ 文
--~ 前缀
function d.加前缀(o1, o2)
return (o2 or "") .. o1
end
--~ 文
--~ 后缀
function d.加后缀(o1, o2)
return o1 .. (o2 or "")
end
--~ 令
function d.办令(o1)
print(o1)
os.execute(o1)
end
--~ 文
--~ 前缀
function d.全筛前缀(o1, o2)
if string.sub(o1, 1, #o2) == o2 then
return o1
end
end
--~ 文
--~ 后缀
function d.全筛后缀(o1, o2)
if string.sub(o1, -#o2) == o2 then
return o1
end
end
--~ 目对
function d.用令行工具操文件(o1_0)
local k1_9
--~ 令行排
k1_9 = d.历文(o1_0.文件目, 简文件库.dir)
k1_9 = d.历排(k1_9, d.全筛后缀, o1_0.文件类)
for o1 = 1, #k1_9 do
k1_9[o1] = d.加前缀(k1_9[o1], o1_0.文件目)
k1_9[o1] = d.加前缀(k1_9[o1], [["]])
k1_9[o1] = d.加后缀(k1_9[o1], [["]])
k1_9[o1] = d.加前缀(k1_9[o1], o1_0.令行前缀)
d.办令(k1_9[o1])
end
end
--~ 文件路
--~ 式
function d.读文件(o1, o2)
local k1
local k1_3
--~ 文件
k1_3 = io.open(o1, o2 or "r")
--~ 文
k1 = k1_3:read("a")
k1_3:flush()
k1_3:close()
return k1
end
--~ 常量排
function d.加对限(o1_0)
table.insert(o1_0, 1, "local k1_0 = {}")
table.insert(o1_0, "return k1_0")
return table.concat(o1_0, "\n")
end
--~ 文
--~ 文件路
--~ 式
function d.写文件(o1, o2, o3)
local k1_3
--~ 文件
k1_3 = io.open(o2, o3 or "w")
k1_3:write(o1)
k1_3:flush()
k1_3:close()
end
--~ 文
function d.删左右空白(o1)
o1 = string.gsub(o1, "^%s+", "")
return string.gsub(o1, "%s+$", "")
end
--~ 对
--~ 对
function d.连两对(o1_0, o2_0)
for o3_0, o4_0 in pairs(o2_0) do
o1_0[o3_0] = o4_0
end
return o1_0
end
--~ 键
--~ 值
function d.修对类(o1_0, o2_0)
if tonumber(o1_0) then
return tonumber(o1_0), o2_0
else
return o1_0, o2_0
end
end
do
--~ 加数
local k1 = 0
function d.递增()
k1 = k1 + 1
return k1
end
end
--~ 左加数
--~ 右加数
function d.加法(o1, o2)
return o1 + o2
end
--~ 左减数
--~ 右减数
function d.减法(o1, o2)
return o1 - o2
end
--~ 左乘数
--~ 右乘数
function d.乘法(o1, o2)
return o1 * o2
end
--~ 左除数
--~ 右除数
function d.除法(o1, o2)
return o1 / o2
end
--~ 左数
--~ 右数
function d.位和(o1, o2)
return bit.band(o1, o2)
end
--~ 数
--~ 右移几位
function d.位右移(o1, o2)
return bit.rshift(o1, o2)
end
--~ 键
--~ 最大值
--~ 键
--~ 值
function d.筛对中最大值(o1, o2, o3, o4)
if o2 < o4 then
return true
end
end
--~ 最短键
--~ 值
--~ 键
--~ 值
function d.筛对中最短键(o1, o2, o3, o4)
if #o1 > #o3 then
return true
end
end
--~ 最短文
--~ 值
function d.筛排中最短文(o1, o2)
if #o1 > #o2 then
return true
end
end
--~ 内数
function d.to_uint64(o1)
local uint64_pointer = ffi.new("uint64_t[1]", o1)
return uint64_pointer[0]
end
--~ 键
--~ 值
--~ 要找的值
function d.全等筛对中值(o1, o2, o3)
if o2 == o3 then
return o1, o2
else
end
end
return d