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].." ")
両方のテーブルに整数値を書き込みます。ただし、最後の 2 つの書き込みでunpack(t)
は、元のテキストをunpack(u)
表示し、バイナリを表示します。
それはきっとstring.byte(str[i])
間違っている。何と交換すればよいですか?何か不足していますか?