モジュール:CSV

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

この説明文は 『 モジュール:CSV/doc 』 から呼び出されています。

require('CSV:Module').csv2tbl({'A,B\nC,D'}) --> { {'A', 'B', lf='\n'}, {'C', 'D'} }
local p = {}
function p.csv2tbl(args)
  local csv = args[1]
  if csv == nil then return {} end
  local tbl = {}
  local row = {}
  local rowIdx = 1
  for line, lf in csv:gmatch '([^\n]+)(\n*)' do
    row.lf = lf
    local colIdx = 1
    local isLast = false
    for cell, comma in line:gmatch '([^,]*)(,?)' do
      -- セルの情報をrowに溜める
      if not isLast then row[colIdx] = cell end
      isLast = #comma == 0
      colIdx = colIdx + 1
    end
    -- 1行分の情報をtblの末尾に追加
    if 0 < #row then table.insert(tbl, row) end
    row = {}
    rowIdx = rowIdx + 1
  end
  return tbl
end

return p