lua分析文件

function startwith(str, substr)

if str == nil or substr == nil then

return nil, "the string or the sub-stirng parameter is nil"

end

if string.find(str, substr) ~= 1 then

return false

else

return true

end

end

function endwith( str, substr)

if str == nil or substr == nil then

return nil, "the string or the sub-string parameter is nil"

end

str_tmp = string.reverse(str)

substr_tmp = string.reverse(substr)

if string.find(str_tmp, substr_tmp) ~= 1 then

return false

else

return true

end

end

function split(str, sep)

local result = {}

if str == nil or sep == nil or type(str) ~= "string" or type(sep) ~= "string" then

return result

end

if string.len(sep) == 0 then

return result

end

local pattern = string.format("(\^%s+)", sep)

--print(pattern)

string.gsub(

str,

pattern,

function(c)

result#result + 1 = c

end

)

return result

end

local fileName = "d:\\1.txt"

print (fileName)

local file = io.open(fileName, "r")

local kfLines = {}

local lineIndex= 1

for line in file:lines() do

kfLineslineIndex = line

lineIndex = lineIndex+1

end

local pStartLine = 0

local pEndLine = 0

for i, line in ipairs(kfLines) do

--print(i, line)

if startwith(line, "xxxList") then

pStartLine = i + 1

end

if startwith(line, "xxxEnd") then

pEndLine = i-1

end

end

print("p info list:")

local x_y_table={}

for i = pStartLine, pEndLine do

local arr = split(kfLinesi, " ")

local x_y = arr2.."_"..arr3

if rawget(x_y_table, x_y) ~= nil then

x_y_tablex_y = x_y_tablex_y + 1

else

x_y_tablex_y = 1

end

--print("split result "..arr1.." "..x_y)

end

for k, v in pairs(x_y_table) do

print(k, v)

end

print("articleStartLine="..tostring(pStartLine))

print("articleEndLine="..tostring(pEndLine))

return x_y_table