[十万个为什么] [lua] packfield
local function print_pack_field(s)
local cnt = s:byte(5)
for i = 1, #s do
if i == 1 then
io.write(" size: ")
elseif i == 5 then
io.write("\n cnt: ")
elseif i == 7 then
io.write("\n name_ref: ")
elseif i == 9 then
io.write("\nbdin_skip: ")
elseif i == 11 then
io.write("\ntype_skip: ")
elseif i == 13 then
io.write("\n tag: ")
elseif cnt > 4 and i == 15 then
io.write("\n tag4: ")
elseif cnt > 5 and i == 17 then
io.write("\n tag5: ")
elseif cnt > 6 and i == 19 then
io.write("\n tag6: ")
elseif i == 7 + cnt * 2 then
io.write("\nname_size: ")
elseif i == 11 + cnt * 2 then
io.write("\n name: ")
end
io.write(string.format("%02X ", s:byte(i)))
end
io.write("\n\n\n")
end