2015-08-14 62 views
1

我想在lua中定期分割一個字符串,並在新行上顯示每個新字符串。我的問題是分割應該發生在任意用戶定義的字符數之後,而不是任何特殊字符。目前,我的代碼是:在任意點分割字符串lua

logfile = io.open("input.txt","r") 
inputstring = logfile:read("*all") 
for word in string.gmatch(inputstring, "TERRAIN_%a*") do 
j=1 
if j <= 64 then 
    io.write(word) 
j=j+1 
else 
io.write(word,"\n") 
    j=1 
end 

我的本意是,每次string.gmatch找到一個匹配,就會寫出來一個新的字符串和遞增計數器。當計數器達到64時,它將插入一條新的線。我預計比賽的長度是不規則的。

我不確定它的行爲如預期,或者這是格式化字符串的最佳方法,就像我想要的。 Id感謝任何幫助。

回答

1

請注意,您必須在循環之外初始化計數器。

local logfile = io.open("input.txt","r") 
local inputstring = logfile:read("*all") 
local j = 0; 
for word in string.gmatch(inputstring, "TERRAIN_%a*") do 
    j = j + 1; 
    io.write(word); 
    if j == 64 then 
     io.write'\n'; 
     j = 1 -- reset the counter 
    end 
end 
+0

哈 - 謝謝。輸出看起來更接近我期待的。 – mwir