【问题标题】:LUA read file from specific line to specific lineLUA 从特定行读取文件到特定行
【发布时间】:2017-02-13 16:45:55
【问题描述】:

我尝试让 lua 脚本读取文件

数据.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和person

我想做的是:

示例: 值 A =

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 字节,

抱歉我的解释不好

【问题讨论】:

  • 你没有解释你希望你的脚本实际做什么。输出应该是什么?
  • 你对“完整数据”的定义是什么?

标签: file lua


【解决方案1】:

我不确定你想要什么。但是问题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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多