Lua:
CSV এর সাথে কাজ করা
কিভাবে:
Lua এ, CSV ফাইলের সাথে কাজ করা ভাষাটি দ্বারা প্রদত্ত মৌলিক ফাইল IO অপারেশন ব্যবহার করে করা যেতে পারে, সহজ কাজের জন্য বাহ্যিক লাইব্রেরিগুলির প্রয়োজন ছাড়াই। আরও জটিল অপারেশনের জন্য, যেমন বিশেষ ক্ষেত্রগুলি সামলানো (উদাহরণস্বরূপ, মানের মধ্যে কমা), lua-csv
মতো তৃতীয় পক্ষের লাইব্রেরিগুলি ব্যবহার করা উপকারী হতে পারে।
একটি CSV ফাইল পড়া
এখানে একটি সহজ উদাহরণ দেওয়া হল যেভাবে লাইন অনুযায়ী একটি CSV ফাইল পড়তে হয়, প্রতিটি লাইনকে কমা বিভাজকের ভিত্তিতে মানে বিভক্ত করে।
function parseCSVLine(line)
local result = {}
local from = 1
local sep = ","
local field
while true do
local start, finish = string.find(line, sep, from)
if not start then
table.insert(result, string.sub(line, from))
break
end
field = string.sub(line, from, start - 1)
table.insert(result, field)
from = finish + 1
end
return result
end
local file = io.open("example.csv", "r")
for line in file:lines() do
local values = parseCSVLine(line)
for i, v in ipairs(values) do
print(i, v)
end
end
file:close()
নমুনা আউটপুট (সামগ্রী “name,age\newlineJohn Doe,30\newlineJane Doe,32” সহ একটি example.csv
-এর জন্য):
1 name
2 age
1 John Doe
2 30
1 Jane Doe
2 32
একটি CSV ফাইল লেখা
একটি CSV ফাইল তৈরি করতে, আপনি কেবল কমা-বিভক্ত মানের স্ট্রিংগুলি নির্মাণ করে এবং সেগুলি লাইন অনুযায়ী ফাইলে লেখেন।
local data = {
{"name", "age"},
{"John Doe", "30"},
{"Jane Doe", "32"}
}
local file = io.open("output.csv", "w")
for _, v in ipairs(data) do
file:write(table.concat(v, ","), "\n")
end
file:close()
এটি উল্লেখিত ডেটা সহ একটি output.csv
ফাইল তৈরি করবে (অথবা লিখন প্রতিস্থাপন করবে)।
lua-csv ব্যবহার করা
উদ্ধৃতি এবং এস্কেপ অক্ষরের সমর্থন সহ উন্নত CSV হ্যান্ডলিংয়ের জন্য, lua-csv
লাইব্রেরিটি একটি শক্তিশালী পছন্দ হতে পারে।
প্রথমে, এটি LuaRocks ব্যবহার করে ইনস্টল করুন:
luarocks install lua-csv
তারপর, একটি CSV ফাইল পড়া যেতে পারে এতো সহজে:
local csv = require("csv")
-- ফাইল থেকে পড়া
for fields in csv.open("example.csv") do
for i, v in ipairs(fields) do
print(i, v)
end
end
এবং উপযুক্ত উদ্ধৃতি এবং এস্কেপিং সহ একটি CSV-তে লেখা:
local file = csv.open("output.csv", {write=true})
local data = {
{"name", "profession", "location"},
{"John Doe", "Software Engineer", "New York, NY"},
{"Jane Doe", "Data Scientist", "\"San Francisco, CA\""}
}
for _, v in ipairs(data) do
file:write(v)
end
এই পদ্ধতি মানের মধ্যে বিরাজমান কমা এবং উদ্ধৃতিগুলির মত জটিলতাগুলি স্বয়ংক্রিয়ভাবে হ্যান্ডল করে।