使用Lua解析文本文件并输出表

时间:2013-11-02 16:58:04

标签: parsing lua

我是Lua的新手,需要帮助解析文本文件并将数据输出为表格格式。

文本文件在表示的列中设置 GroupID IndividualID Name Status并包含以下内容:

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)

提前感谢您的帮助!

1 个答案:

答案 0 :(得分: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