上传文件至 lib

This commit is contained in:
2025-12-21 05:30:01 +08:00
parent 2e758a7838
commit 07d81eb43b
2 changed files with 366 additions and 0 deletions

53
lib/ys.lua Normal file
View File

@@ -0,0 +1,53 @@
-- 压缩函数
function rleCompress(str)
local result = {}
local i = 1
while i <= #str do
local char = str:sub(i, i)
local count = 1
while i + count <= #str and str:sub(i + count, i + count) == char do
count = count + 1
end
if count > 2 then
table.insert(result, ("[%d]%s"):format(count, char))
else
table.insert(result, char:rep(count))
end
i = i + count
end
return table.concat(result)
end
-- 解压函数
function rleDecompress(str)
local result = {}
local i = 1
while i <= #str do
if str:sub(i, i) == "[" then
local j = str:find("]", i)
local num = tonumber(str:sub(i+1, j-1))
local char = str:sub(j+1, j+1)
table.insert(result, char:rep(num))
i = j + 2
else
table.insert(result, str:sub(i, i))
i = i + 1
end
end
return table.concat(result)
end
-- 测试
file = fs.open("1.bimg","r")
original = file.readAll()
file.close()
local compressed = rleCompress(original)
print("原始:", original)
print("压缩:", compressed)
print("解压:", rleDecompress(compressed))
file = fs.open("12.bimg","w")
file.write(compressed)
file.close()