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

এই পদ্ধতি মানের মধ্যে বিরাজমান কমা এবং উদ্ধৃতিগুলির মত জটিলতাগুলি স্বয়ংক্রিয়ভাবে হ্যান্ডল করে।