- 论坛徽章:
- 5
|
本帖最后由 starwing83 于 2012-10-20 20:23 编辑
回复 40# __BlueGuy__
输出是一串数字?不是二进制的文件?
下面的程序直接输出那堆文本的数字:- local input = io.read "*a"
- :gsub("^char%s*%w+%b[]%b[]%s*=%s*", "")
- local res = assert(load("return "..input))()
- --[[
- -- write to file
- local function write_short(n)
- io.write(("%c%c"):format(math.floor(n/256)%256, n%256))
- end
- local function write_byte(n)
- io.write(("%c"):format(n%256))
- end
- --]]
- local t = {}
- local function write_short(n)
- t[#t+1] = math.floor(n/256)%256
- t[#t+1] = n%256
- end
- local function write_byte(n)
- t[#t+1] = n%256
- end
- write_short(#res)
- for i, v in ipairs(res) do
- write_short(#v)
- for i, v in ipairs(v) do
- write_byte(v)
- end
- end
- for i, v in ipairs(t) do
- io.write(("%02d"):format(v))
- if i % 16 == 0 then
- io.write '\n'
- elseif i % 2 == 0 then
- io.write ' '
- end
- end
- io.write '\n'
- -- cc: run+='< in.txt'
复制代码 |
|