প্রোলগে External Input Handling এবং File I/O (ইনপুট এবং আউটপুট) ব্যবহার করে আমরা ফাইল থেকে ডেটা পড়তে এবং ফাইলে ডেটা লিখতে পারি। এটি একটি প্রোগ্রামিং ভাষা হিসেবে প্রোলগের কার্যকারিতা বৃদ্ধি করতে সাহায্য করে, যেখানে ফাইল ম্যানিপুলেশন এবং এক্সটার্নাল ডেটা প্রোসেসিং খুবই গুরুত্বপূর্ণ।
External Input Handling:
External input বলতে বোঝায় এমন ইনপুট, যা প্রোগ্রামের বাহির থেকে আসছে, যেমন কী-বোর্ড ইনপুট, ফাইল ইনপুট, বা ইউজার থেকে কোনো ইনপুট ডাটা। প্রোলগে আপনি ইনপুট গ্রহণ করার জন্য read/1, read_line_to_string/2, get_char/1 ইত্যাদি ফাংশন ব্যবহার করতে পারেন।
কী-বোর্ড ইনপুট:
প্রোলগে কী-বোর্ড থেকে ইনপুট নেওয়ার জন্য read/1 ফাংশন ব্যবহার করা হয়, যা ইউজারের ইনপুটকে গ্রহণ করে এবং সেটি একটি প্রলগ টার্ম হিসেবে ধারণ করে।
উদাহরণ:
? - read(X).এখানে, আপনি X নামক ভেরিয়েবলকে ইনপুট দেবেন। প্রোলগ সেই ইনপুটটি X এ সংরক্ষণ করবে।
কোড:
?- read(X).
|: hello.
X = hello.এখানে, hello হলো ইউজারের ইনপুট এবং তা X ভেরিয়েবলে সংরক্ষিত হয়।
স্ট্রিং ইনপুট:
স্ট্রিং ইনপুটের জন্য, read_line_to_string/2 ব্যবহার করা হয়, যা ইউজারের ইনপুট একটি স্ট্রিং আকারে গ্রহণ করে।
উদাহরণ:
? - read_line_to_string(user_input, Input).এখানে Input ইউজারের ইনপুট হবে যা একটি স্ট্রিং আকারে গ্রহণ করা হবে।
কোড:
?- read_line_to_string(user_input, Input).
|: Hello, Prolog!
Input = "Hello, Prolog!".File I/O (File Input/Output):
File I/O (ফাইল ইনপুট/আউটপুট) হল ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা। প্রোলগে ফাইল থেকে ডেটা পড়তে এবং ফাইলে ডেটা লেখার জন্য নির্দিষ্ট ফাংশন ব্যবহার করা হয়। নিচে কিছু গুরুত্বপূর্ণ File I/O প্রেডিকেট দেওয়া হলো:
ফাইল খোলা (Opening Files):
ফাইল খোলার জন্যopen/3ব্যবহার করা হয়, যেখানে প্রথম আর্গুমেন্টটি ফাইলের নাম, দ্বিতীয় আর্গুমেন্টটি মোড (যেমনread,write,append), এবং তৃতীয় আর্গুমেন্টটি স্ট্রিম।উদাহরণ:
open('example.txt', write, Stream).ফাইল থেকে ডেটা পড়া (Reading from a File):
ফাইল থেকে ডেটা পড়ার জন্যread/2বাread_line_to_string/2ব্যবহার করা হয়।উদাহরণ:
open('example.txt', read, Stream), read(Stream, X), close(Stream).এখানে,
Xফাইল থেকে প্রথম ডেটা হবে এবং তারপর স্ট্রিমটি বন্ধ হয়ে যাবে।ফাইলে ডেটা লেখা (Writing to a File):
ফাইলের মধ্যে ডেটা লেখার জন্যwrite/2বাwriteln/2ব্যবহার করা হয়।উদাহরণ:
open('example.txt', write, Stream), write(Stream, 'Hello, Prolog!'), close(Stream).এখানে
'Hello, Prolog!'ফাইলে লেখা হবে।ফাইলের মধ্যে নতুন লাইন যোগ করা (Appending to a File):
ফাইলে নতুন লাইন যোগ করার জন্যappend/3ফাংশন ব্যবহার করা হয়।উদাহরণ:
open('example.txt', append, Stream), write(Stream, 'This is a new line.'), close(Stream).ফাইল বন্ধ করা (Closing Files):
ফাইল বন্ধ করতেclose/1ফাংশন ব্যবহার করা হয়। এটি ব্যবহৃত স্ট্রিম বন্ধ করে দেয়।উদাহরণ:
close(Stream).
File I/O এর মাধ্যমে ডেটা প্রক্রিয়াকরণ:
ফাইল ইনপুট এবং ফাইল আউটপুট ব্যবহার করে, আপনি একটি প্রোগ্রামে ডেটা সংগ্রহ করতে পারেন, প্রক্রিয়া করতে পারেন এবং ফলাফল ফাইলে রেকর্ড করতে পারেন।
ফাইল থেকে সব লাইন পড়া:
ফাইলের প্রতিটি লাইন পড়তে, আপনি read_line_to_string/2 ব্যবহার করতে পারেন এবং ফাইলের মধ্যে প্রতিটি লাইনকে আলাদাভাবে প্রক্রিয়া করতে পারেন।
read_file_lines(FileName) :-
open(FileName, read, Stream),
read_line_to_string(Stream, Line),
process_line(Line),
close(Stream).
process_line(Line) :-
write(Line), nl.এখানে, process_line/1 একটি ফাংশন যা প্রতিটি লাইন প্রিন্ট করবে।
ফাইলে একটি তালিকা লেখা:
আপনি একটি লিস্টকে ফাইলে লেখার জন্য একটি লুপ তৈরি করতে পারেন:
write_list_to_file([], _).
write_list_to_file([H|T], Stream) :-
write(Stream, H),
nl(Stream),
write_list_to_file(T, Stream).
save_list_to_file(List, FileName) :-
open(FileName, write, Stream),
write_list_to_file(List, Stream),
close(Stream).এটি List এর প্রতিটি উপাদান ফাইলে লেখে।
সারসংক্ষেপ:
প্রোলগে External Input Handling এবং File I/O অত্যন্ত গুরুত্বপূর্ণ টুল। কী-বোর্ড ইনপুট, ফাইল ইনপুট, এবং ফাইল আউটপুট এর মাধ্যমে প্রোগ্রামটি বাইরের ডেটা গ্রহণ এবং প্রক্রিয়া করতে সক্ষম হয়। প্রোলগের বিল্ট-ইন ফাংশন এবং open/3, read/2, write/2, close/1 ইত্যাদি ফাংশন ব্যবহার করে ফাইল ম্যানিপুলেশন খুব সহজভাবে করা যায়। এর মাধ্যমে ফাইল থেকে ডেটা পড়া, ফাইলে ডেটা লেখা এবং ফাইলের মধ্যে লাইন অ্যাড করা সম্ভব হয়, যা প্রোগ্রামের কার্যকারিতা এবং ক্ষমতা বৃদ্ধি করে।
Read more