从文件读入并将第一个单词设置为表中的键

我能够从文件中读入并设置一张表,但是如何使得每个新表格槽的第一个单词成为键?

-- 检查文件是否存在
function file_exists(file)
  local f = io.open("data.txt", "rb")
  if f then f:close() end
  return f ~= nil
end

-- 从文件中获取所有行,如果文件不存在则返回一个空列表/表
function lines_from(file)
  if not file_exists(file) then return {} end
  lines = {}
  for line in io.lines("data.txt") do
    lines[#lines + 1] = line
  end
  return lines
end

local lines = lines_from(file)

-- 打印所有行号和它们的内容
for k,v in pairs(lines) do
  print('line[' .. k .. ']', v)
end
点赞
用户2196426
用户2196426

这取决于你如何定义单词。如果它是英文字母序列,则可以使用以下内容:

function lines_from(file)
  if not file_exists(file) then return {} end
  lines = {}
  for line in io.lines("data.txt") do
    first_word = string.match(line, "%a+") -- word
    lines[first_word] = line
  end
  return lines
end
2016-03-28 07:24:21