2013-11-02 63 views
2

我是Lua的新手,需要一些幫助來解析文本文件並將數據輸出爲表格格式。使用Lua解析txt文件並輸出表格

文本文件是建立在代表 GroupIDIndividualIDNameStatus和列包含以下內容:

100 1 AAA 1 
100 2 BBB 2 
100 3 CCC 0 
200 4 DDD 1 
200 5 EEE 1 

我想輸出顯示爲:

100 2 
200 2 

當第二列是完全符合非零狀態的。這是我到目前爲止的代碼:

function readText ("sample.txt") 
    local file = io.open("sample.text", "r") 
      if file then 
      for line in file:lines() do 
       local group, individual, name, status = line:split(" ") 
        local count = 0 
        if status ~= "0" then count = count + 1 
          table.insert (group, count) 
        print (group, count) 
    end 
    file:close() 
else 
end 
end 

爲了輸出計數第二GroupID,我需要提前使用

if group ~= group then 
table.insert (group, count) 

感謝您的幫助!

回答

0

嘗試這個內循環:

local last=nil 
local count=0 
for line in ifile:lines() do 
    local group,status=line:match("^(%S+)%s.*%s(%S+)$") 
    if group~=last then 
     if count>0 then 
      print(last,count) 
     end 
     count=0 
     last=group 
    end 
    if status~="0" then 
     count=count+1 
    end 
end 
if count>0 then 
    print(last,count) 
end 
+0

狀態= 10將被讀取爲狀態= 0 –

+0

@EgorSkriptunoff,固定,感謝爲察覺此。 – lhf