Lua:
Làm việc với CSV

Làm Thế Nào:

Hãy đọc và viết các tệp CSV bằng Lua. Chúng tôi sẽ xử lý một ví dụ cơ bản mà không cần thư viện bên ngoài.

Đọc một tệp CSV:

function read_csv(filepath)
  local results = {}
  local file = assert(io.open(filepath, "r"))
  
  for line in file:lines() do
    table.insert(results, line:split(","))
  end
  
  file:close()
  return results
end

-- Một hàm trợ giúp để tách chuỗi
function string:split(delimiter)
  local result = {}
  local from = 1
  local delim_from, delim_to = self:find(delimiter, from, true)
  while delim_from do
    table.insert(result, self:sub(from, delim_from - 1))
    from = delim_to + 1
    delim_from, delim_to = self:find(delimiter, from, true)
  end
  table.insert(result, self:sub(from))
  return result
end

Viết vào một tệp CSV:

function write_csv(filepath, data)
  local file = assert(io.open(filepath, "w"))
  
  for _, row in ipairs(data) do
    file:write(table.concat(row, ",") .. "\n")
  end
  
  file:close()
end

-- Dữ liệu mẫu
local data = {
  { "Tên", "Tuổi", "Thành Phố" },
  { "Alice", "30", "New York" },
  { "Bob", "25", "Los Angeles" }
}

write_csv("output.csv", data)

Sâu Hơn

Lịch sử của CSV có từ những ngày đầu của công nghệ thông tin, nơi sự đơn giản là chìa khóa. Mặc dù JSON và XML hiện cung cấp các cấu trúc dữ liệu phong phú hơn, CSV vẫn được ưa chuộng do khả năng đọc và dễ dàng chỉnh sửa bằng phần mềm bảng tính. Khi triển khai, hãy chú ý đến các trường có dấu phẩy, dòng mới hoặc dấu nháy – những trường đó nên được đặt trong dấu nháy và/hoặc được thoát ra một cách thích hợp.

Xem Thêm