kehuadong

[十万个为什么] [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

 

posted on 2024-07-29 16:21  kehuadong  阅读(3)  评论(0编辑  收藏  举报

导航