有人可以解释一下当我删除行
时io.write无效的原因io.write(inshort ..“\ n”)?
io.output没有第二个定义。 代码是否嵌套,io.output在某些状态下无效?
我知道doSomething被正确调用了......
function findpos(arg0, arg1,argf)
io.input(arg0)
io.output("that.txt")
posicounter =0
posibuffer=""
if not arg0 then return 99 end
counter = 1
while true do
local line = io.read("*line")
if line == nil then break end
for k, searchstring in ipairs(arg1) do
found = string.find(line, searchstring)
if found ~=nil then
inshort = string.sub(line, found)
io.write(inshort.."\n")
if(inshort==posibuffer) then
posicounter=posicounter+1
elseif posicounter >0 then
io.write("before")
node = doSomething()
io.write("after")
posicounter=0
else
posicounter=0
posibuffer=inshort
end
end
argf(timestamp, string.sub(line, 24))
counter = counter +1
end
end
答案 0 :(得分:2)
请注意,您要移除的行是唯一输出\n
字符的行。您可能遇到的问题是您的环境中的i / o系统(操作系统,终端或shell)推迟输出,直到它看到\n
字符。即,输出是行缓冲的。