Import 在lua中读取具有长行的文件

Import 在lua中读取具有长行的文件,import,io,lua,ods,Import,Io,Lua,Ods,我想在Windows上使用lua逐行阅读.ods文件。我以前的代码在另一个平台上运行,但在Windows上失败。因此,我更改了代码以查看发生了什么: local fhandler = io.open(path,"r") print(pcall(fhandler.read,fhandler,"*l")) print(pcall(fhandler.read,fhandler,"*l")) print(pcall(fhandler.read,fhandler,"*l")) 我得到的输出如下: tru

我想在Windows上使用lua逐行阅读
.ods
文件。我以前的代码在另一个平台上运行,但在Windows上失败。因此,我更改了代码以查看发生了什么:

local fhandler = io.open(path,"r")
print(pcall(fhandler.read,fhandler,"*l"))
print(pcall(fhandler.read,fhandler,"*l"))
print(pcall(fhandler.read,fhandler,"*l"))
我得到的输出如下:

true <?xml version="1.0" encoding="UTF-8"?>
false function: 0x003d39e0
true :tc:opendocument:xmlns:script:1.0" [...] office:version="1.2">
但这在这里没有帮助,因为它然后以2048字节的块导入文件,并且不会在一行末尾停止。因此,您需要解析导入的数据并查找换行符等


最后,我的问题是:是否有一个lua内部缓冲区,用于一次可以读取的长度,可以设置为1024字节?您如何更改此缓冲区的大小?

如果运行第二行时没有
pcall
您看到的是哪种错误?
*l
应接受任意长度的行。Lua使用
fgets
读取
BUFSIZ
的数据块,直到看到行的末尾,然后将所有内容合并成一个字符串。请参见.Try
local fhandler=io.open(路径,“rb”)
更改为“rb”很遗憾并没有解决问题。我不是直接运行lua脚本,而是通过LuaInterface运行。如果我在没有pcall的情况下执行,我会得到以下错误:在LuaInterface.dll aufgetreten中有一个典型的“LuaInterface.Exceptions.LuaScriptException”。在LuaInterface.dll aufgetreten中的Ausnahmefehler des Typs“LuaInterface.Exceptions.LuaScriptException”中。Zusätzliche Informationen:function您在哪种应用程序或框架中使用Lua?通常,
pcall
的第二个返回值是一个字符串,如果第一个返回值是
false
——这就是错误消息,实际上从来不是函数。
fhandler:read(2048,"*l")