gpt4 book ai didi

insert - Lua:防止二进制代码中的回车

转载 作者:行者123 更新时间:2023-12-04 21:44:46 24 4
gpt4 key购买 nike

我正在尝试从二进制文件中读取一个块。这工作正常,但是,每当代码中有 0x0A 时,Lua 就会插入 0x0D 并将其转换为换行符,这会导致文件乱码。我怎样才能防止这种情况?我检查了几个用于编写二进制文件的源代码,它们使用与我相同的 io.write() 函数。我还是 Lua 的新手,所以可能我错过了一些东西。这是我的代码:

file=io.open(filepath,'rb')
file:seek("set")
file:seek("cur",startoffset)
filecontent=file:read(endoffset-startoffset)
io.output(test.tmp)
io.write(filecontent)

最佳答案

I checked out several source codes for writing binary files and they use the same io.write()-function I do.



不,他们没有。他们使用 file:write .有区别。一个适用于给定的文件句柄。另一个适用于“默认输出文件”,该文件始终以文本形式打开。

你想要的正确的 Lua 代码是这样的:
local file = assert(io.open(filepath, "rb"), "Could not open file for reading.")
local filecontent = file:read("*a")
file:close()
file = assert(io.open("temp.tmp", "wb"), "Could not open file for writing.")
file:write(filecontent)
file:close()

关于insert - Lua:防止二进制代码中的回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com