2017-02-13 109 views
0

读取文件我尽量让LUA脚本读取文件LUA从具体线路具体线路

的data.txt

1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastName 
1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastNameH 

*这一切数据不相同的ID和个人

我想要什么尝试做的是:

例如: 值A = < 1点字节的数据至60>

1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 N 

因此行3是不完全的数据,所以我想数据行1和2,并跳过第3行

1626363 NameA LastNameB 
42342344 NameC LastNameD 

值B将与第3行开始直到结束

345345 NameE LastNameF 
87978987 NameG LastName 
1626363 NameA LastNameB 
42342344 NameC LastNameD 
345345 NameE LastNameF 
87978987 NameG LastNameH 

的每一个值最大60字节,

对不起,我的坏解释

+0

你不解释你想让你的脚本实际做什么。输出应该是什么? –

+0

您对“完整数据”的定义是什么? – tonypdmtr

回答

0

我不是确定你想要什么。但回答的问题read file from specific line to specific line

local function skip_n_lines(f, n) 
    while f:read('*l') do 
    n = n - 1 
    if n == 0 then break end 
    end 
    return n 
end 

local function read_n_lines(f, n) 
    local t = {} 
    for i = 1, n do 
    local s = f:read('*l') 
    if not s then break end 
    t[#t + 1] = s 
    end 
    return t 
end 

local f = io.open('test.txt', 'rb+') 
if 0 == skip_n_lines(f, 12) then 
    local data = read_n_lines(f, 4) 
end