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