2013-04-28 81 views
0

我正在嘗試爲ComputerCraft製作一個自定義打印程序,它可以通過一條命令創建更多副本,並且出現問題。每次將文件放入它時,都不會斷行,並將?放在換行符爲(\n)的地方。我如何正確地做到這一點?ComputerCraft:自定義打印機軟件

問題應該是這裏的某個地方:

for i=1,copyNumber do 
    printer.newPage(); 
    printer.setPageTitle(pageLabel); 
    local h = fs.open(filePath, "r"); 
    local text = h.readAll(); 
    print("Tisknu:"); 
    write(text.."\n"); 
    printer.write(text); 
    h.close(); 
    printer.endPage(); 
end 
+0

也許,你應該設置使用'printer.setCursorPos新的光標位置(1,LINE_NO)'寫文本到新的前線。 – 2013-04-28 09:25:25

+0

您正在以文本模式打開文件,然後在一次操作中將其讀入緩衝區。這會產生一個由'\ n'字符分隔的行。如果您的打印機需要CRLF序列作爲行結束符,那麼您應該喜歡一次讀取一行文件並根據需要插入正確的行尾,或者如Egor所述操作打印機光標。我不會做我的世界,只能對其他事情的Lua邊緣說話。 – RBerteig 2013-04-29 22:46:21

回答

0

試試這個:

for i=1,copyNumber do 
    printer.newPage(); 
    printer.setPageTitle(pageLabel); 
    local h = fs.open(filePath, "r"); 
    local text = h.readLine(); --Read one line 
    while(text != nil) --If line isn't nill 
     printer.write(text); --Write the line 
     _,y = printer.getCursorPos() --Get the current cursor pos. 
     printer.setCursorPos(1,y+1); --Move one line down 
     text = h.readLine(); --Read the next line 
    end 
    h.close(); --Close the file 
    printer.endPage(); --End the page 
end