Skill

ফাইল থেকে ডেটা পড়া এবং লেখা

Erlang এর File Handling (ফাইল হ্যান্ডলিং) - এরল্যাং (Erlang) - Computer Programming

310

Erlang এ ফাইল থেকে ডেটা পড়া এবং লেখা

Erlang ফাইল সিস্টেমের সাথে যোগাযোগ করার জন্য বেশ কিছু শক্তিশালী ফাংশন সরবরাহ করে, যার মাধ্যমে আপনি ফাইল থেকে ডেটা পড়তে এবং ফাইলে ডেটা লিখতে পারেন। এই কাজগুলি সাধারণত file মডিউল ব্যবহার করে করা হয়। এখানে আমরা ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা এর মৌলিক উদাহরণ এবং ফাংশন দেখব।


1. ফাইল থেকে ডেটা পড়া

Erlang এ ফাইল থেকে ডেটা পড়ার জন্য file:read/2 ফাংশন ব্যবহার করা হয়, যা একটি নির্দিষ্ট ফাইল থেকে ডেটা পড়ে এবং সেটা আউটপুট হিসাবে প্রদান করে।

উদাহরণ: একটি ফাইল থেকে ডেটা পড়া

% ফাইল থেকে ডেটা পড়ার ফাংশন
read_file(FileName) ->
    {ok, File} = file:open(FileName, [read]),
    Data = io:read(File, line), % এটা এক লাইনের ডেটা পড়বে
    file:close(File),
    Data.

এখানে, file:open/2 ফাংশনটি ফাইলটি পড়ার জন্য খোলে এবং io:read/2 ফাংশনটি একটি লাইনে ডেটা পড়ে। পরে ফাইলটি file:close/1 ফাংশন দিয়ে বন্ধ করা হয়।

ব্যবহার:

1> read_file("sample.txt").
{ok, "This is a sample line of text.\n"}

এখানে, "sample.txt" ফাইলটি খোলা হয় এবং তার মধ্যে থাকা একটি লাইন ডেটা পড়া হয়।


2. ফাইলে ডেটা লেখা

Erlang এ ফাইলে ডেটা লেখার জন্য file:write/2 অথবা file:open/2 এর মাধ্যমে ফাইল খুলে এবং তারপর io:format/2 বা file:write/2 ব্যবহার করা হয়।

উদাহরণ: ফাইলে ডেটা লেখা

% ফাইলে ডেটা লেখার ফাংশন
write_to_file(FileName, Data) ->
    {ok, File} = file:open(FileName, [write]),
    io:format(File, "~s", [Data]),
    file:close(File).

এখানে, file:open/2 ফাংশনটি ফাইলটি লেখার জন্য খোলে এবং io:format/2 ফাংশনটি ডেটা ফাইলে লেখে। পরে, file:close/1 ফাংশন দিয়ে ফাইল বন্ধ করা হয়।

ব্যবহার:

1> write_to_file("output.txt", "Hello, Erlang!").

এখানে, "output.txt" ফাইলে "Hello, Erlang!" লেখা হবে।


3. ফাইল থেকে একাধিক লাইন পড়া

এখন, যদি আপনি একটি ফাইল থেকে একাধিক লাইন পড়তে চান, তবে একটি লুপ ব্যবহার করা যেতে পারে, যাতে প্রতিটি লাইনের জন্য পড়া এবং পরবর্তী লাইনটি পর্যন্ত ফাইলের শেষে পৌঁছানোর জন্য ফাংশনটি পুনরায় ডাকা হয়।

উদাহরণ: ফাইল থেকে একাধিক লাইন পড়া

% ফাইল থেকে সমস্ত লাইন পড়ার ফাংশন
read_all_lines(FileName) ->
    {ok, File} = file:open(FileName, [read]),
    read_lines(File, []).

read_lines(File, Acc) ->
    case io:read(File, line) of
        eof -> 
            file:close(File),
            lists:reverse(Acc);
        {ok, Line} -> 
            read_lines(File, [Line | Acc])
    end.

এখানে, read_lines/2 ফাংশনটি ফাইলের প্রতিটি লাইন পড়ে এবং সেগুলিকে একটি অ্যাকিউমুলেটরে (Acc) যোগ করে। যখন ফাইলের শেষ হয় (EOF), তখন ফাইলটি বন্ধ করা হয় এবং সমস্ত লাইন ফিরিয়ে দেওয়া হয়।

ব্যবহার:

1> read_all_lines("sample.txt").
["Line 1\n", "Line 2\n", "Line 3\n"]

এখানে, "sample.txt" ফাইল থেকে প্রতিটি লাইন পড়ে এবং একটি লিস্ট আউটপুট হিসেবে প্রদর্শিত হয়।


4. ফাইলে ডেটা অ্যাপেন্ড করা

Erlang এ ফাইলের শেষে ডেটা অ্যাপেন্ড করার জন্য file:open/2 ফাংশনে append অপশন ব্যবহার করা হয়।

উদাহরণ: ফাইলে ডেটা অ্যাপেন্ড করা

% ফাইলে ডেটা অ্যাপেন্ড করার ফাংশন
append_to_file(FileName, Data) ->
    {ok, File} = file:open(FileName, [append]),
    io:format(File, "~s", [Data]),
    file:close(File).

এখানে, file:open/2 ফাংশনটি append অপশনসহ ব্যবহার করা হয়েছে, যা ফাইলের শেষে ডেটা যোগ করে।

ব্যবহার:

1> append_to_file("output.txt", "Appending this line to the file.").

এখানে, "output.txt" ফাইলের শেষে "Appending this line to the file." লেখা হবে।


উপসংহার

Erlang এ ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা অনেক সহজ এবং কার্যকরীভাবে করা যায়। file:open/2, file:read/2, file:write/2, এবং io:format/2 এর মতো ফাংশনগুলো ব্যবহৃত হয় যা ফাইল সিস্টেমের সাথে যোগাযোগ করে ডেটা আদান-প্রদান করতে সাহায্য করে। Erlang এর মডিউলগুলি ব্যবহার করে ফাইল পরিচালনা করার জন্য একটি শক্তিশালী এবং দক্ষ উপায় প্রদান করে যা প্যারালাল প্রসেসিং এবং ডিস্ট্রিবিউটেড সিস্টেমে কাজ করার জন্য উপযুক্ত।

Content added By
Promotion

Are you sure to start over?

Loading...