2017-12-05 12 views
1

私はLuaにスクリプトを持っていますが、変数resを出力する必要がありますが、このプリントを行う方法はわかりません。私は結果を印刷したいルアのテーブルを印刷

function parseCSVLine(line) 
    local res = {} 
    local pos = 1 
    local sep = ',' 
    while true do 
    local c = string.sub(line,pos,pos) 
    if (c == "") then break end 
    if (c == '"') then 
     -- quoted value (ignore separator within) 
     local txt = "" 
     repeat 
      local startp,endp = string.find(line,'^%b""',pos) -- Digitos 
      txt = txt..string.sub(line,startp+1,endp-1) 
      pos = endp + 1 
      c = string.sub(line,pos,pos) 
      if (c == '"') then txt = txt..'"' end 
      -- check first char AFTER quoted string, if it is another 
      -- quoted string without separator, then append it 
      -- this is the way to "escape" the quote char in a quote. example: 
      -- value1,"blub""blip""boing",value3 will result in blub"blip"boing for the middle 
     until (c ~= '"') 
     table.insert(res,txt) 
--  assert(c == sep or c == "") 
     pos = pos + 1 
    else 
     -- no quotes used, just look for the first separator 
     local startp,endp = string.find(line,sep,pos) 
     if (startp) then 
      table.insert(res,string.sub(line,pos,startp-1)) 
      pos = endp + 1 
     else 
      -- no separator found -> use rest of string and terminate 
      table.insert(res,string.sub(line,pos)) 
      break 
     end 
    end 
    end 
    return res 
end 

ここでは一例

local result = parseCSVLine(line) 

印刷私がやってみたかった別の関数、関数の結果を得る

parseCSVLine

答えて

1

resを作成しているようですリストとして。だからこれを試してください:

for i,v in ipairs(result) do print(i,v) end