我在 Lua 中将字符串写入二进制文件时遇到问题。有一个现有示例,我尝试修改它。看一看:
function StringToBinary()
local file = io.open("file.bin", "wb")
local t = {}
local u = {}
local str = "Hello World"
file:write("string len = " ..#str ..'\n')
math.randomseed(os.time())
for i=1, #str do
t[i] = string.byte(str[i])
file:write(t[i].." ");
end
file:write("\n")
for i=1, #str do
u[i] = math.random(0,255)
file:write(u[i].." ");
end
file:write("\n"..string.char(unpack(t)))
file:write("\n"..string.char(unpack(u)))
file:close()
end
file:write(t[i].."")
和 file:write(u[i].."")
用整数值写入两个表.然而,在我的最后两篇文章中:unpack(t)
显示原始文本,而 unpack(u)
显示二进制文件。
可能是 string.byte(str[i])
弄错了。我应该用什么来代替它?我错过了什么吗?
最佳答案
t[i] = string.byte(str[i])
错了,应该是:
t[i] = string.byte(str, i)
关于string - 在 Lua 中将字符串写入二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698504/