File Handling: open, close, read, write

Input/Output Operations (ইনপুট/আউটপুট অপারেশনস) - লিস্প (LISP) - Computer Programming

354

LISP-এ ফাইল হ্যান্ডলিং হলো একটি সাধারণ প্রক্রিয়া, যা ব্যবহারকারীর ডাটা পড়া (read), লেখা (write), এবং ফাইলের সাথে কাজ করার জন্য বিভিন্ন ফাংশন ব্যবহার করে। LISP ফাইল হ্যান্ডলিংয়ের জন্য বেশ কিছু ইনবিল্ট ফাংশন সরবরাহ করে, যেগুলো ফাইল খুলতে, বন্ধ করতে, ডাটা পড়তে এবং লিখতে সহায়তা করে।

LISP ফাইল হ্যান্ডলিংয়ের জন্য মূল ফাংশনগুলো:

  1. open: ফাইল খুলতে ব্যবহৃত।
  2. close: ফাইল বন্ধ করতে ব্যবহৃত।
  3. read: ফাইল থেকে ডাটা পড়তে ব্যবহৃত।
  4. write: ফাইলে ডাটা লিখতে ব্যবহৃত।

১. open ফাংশন: ফাইল খুলতে

open ফাংশন একটি ফাইল খুলতে ব্যবহৃত হয়, যাতে আপনি তার উপর কাজ করতে পারেন। ফাইল খোলার সময় সাধারণত মুড (mode) নির্ধারণ করতে হয়, যেমন :input (পড়ার জন্য), :output (লিখার জন্য), বা :io (পড়া এবং লেখা উভয়ের জন্য)।

সিনট্যাক্স:

(open "file-name" :direction :mode)
  • "file-name": ফাইলের নাম।
  • :direction: ফাইলের দিক নির্ধারণ করা হয়, যেমন :input, :output, বা :io
  • :mode: ফাইলের কাজের ধরন, যেমন :element-type বা :if-does-not-exist

উদাহরণ:

(setq file (open "example.txt" :direction :output))  ; example.txt ফাইলটি লেখার জন্য খোলা হচ্ছে

এখানে, "example.txt" ফাইলটি লেখার জন্য (output mode) খোলা হচ্ছে এবং তার রেফারেন্স file এ সংরক্ষিত হচ্ছে।


২. close ফাংশন: ফাইল বন্ধ করতে

close ফাংশন ব্যবহার করে আপনি ফাইলটি বন্ধ করতে পারেন যখন তার সাথে আর কোনো কাজ নেই।

সিনট্যাক্স:

(close file)
  • file: এটি ঐ ফাইলের রেফারেন্স যা আপনি আগে open ফাংশন দিয়ে খোলেছিলেন।

উদাহরণ:

(close file)  ; ফাইল বন্ধ করা হচ্ছে

এখানে, file নামক ফাইলটি বন্ধ করা হচ্ছে।


৩. read ফাংশন: ফাইল থেকে ডাটা পড়া

read ফাংশন ব্যবহার করে আপনি ফাইল থেকে ডাটা পড়তে পারেন। এটি সাধারণত ইনপুট ফাইলে ব্যবহার করা হয়।

সিনট্যাক্স:

(read file)
  • file: ফাইলের রেফারেন্স যেটি আপনি আগে open ফাংশন দিয়ে খুলেছিলেন।

উদাহরণ:

(setq file (open "example.txt" :direction :input))  ; example.txt ফাইলটি পড়ার জন্য খোলা হচ্ছে
(setq content (read file))  ; ফাইল থেকে প্রথম উপাদান পড়া হচ্ছে
(print content)  ; পড়া ডাটা প্রিন্ট করা হচ্ছে
(close file)  ; ফাইল বন্ধ করা হচ্ছে

এখানে, "example.txt" ফাইলটি পড়ার জন্য খোলা হচ্ছে এবং তার প্রথম উপাদানটি read ফাংশন দিয়ে পড়া হচ্ছে।


৪. write ফাংশন: ফাইলে ডাটা লেখা

write ফাংশন ব্যবহার করে আপনি ফাইলে ডাটা লিখতে পারেন। এটি সাধারণত আউটপুট ফাইলে ব্যবহৃত হয়।

সিনট্যাক্স:

(write object :stream file)
  • object: আপনি যে ডাটা লিখতে চান তা।
  • :stream: ফাইলের স্ট্রিম যেখানে ডাটা লিখতে হবে।

উদাহরণ:

(setq file (open "example.txt" :direction :output))  ; example.txt ফাইলটি লেখার জন্য খোলা হচ্ছে
(write "Hello, World!" :stream file)  ; ফাইলে "Hello, World!" লেখা হচ্ছে
(close file)  ; ফাইল বন্ধ করা হচ্ছে

এখানে, "Hello, World!" স্ট্রিংটি "example.txt" ফাইলে লেখা হচ্ছে।


File Handling এর অন্যান্য গুরুত্বপূর্ণ ফাংশনসমূহ

  • open: ফাইল খোলার জন্য ব্যবহৃত হয়, যেখানে :direction এবং :if-does-not-exist এর মতো আর্গুমেন্ট দিয়ে ফাইলের মুড এবং এক্সিস্টেন্স কন্ডিশন নির্ধারণ করা যায়।
  • read-line: ফাইল থেকে একটি সম্পূর্ণ লাইন পড়তে ব্যবহৃত হয়।
  • write-line: ফাইলে একটি লাইন লেখা হয়।

read-line উদাহরণ:

(setq file (open "example.txt" :direction :input))
(setq line (read-line file))  ; ফাইল থেকে একটি লাইন পড়া হচ্ছে
(print line)  ; পড়া লাইনটি প্রিন্ট করা হচ্ছে
(close file)  ; ফাইল বন্ধ করা হচ্ছে

write-line উদাহরণ:

(setq file (open "example.txt" :direction :output))
(write-line "This is a new line!" :stream file)  ; ফাইলে একটি নতুন লাইন লেখা হচ্ছে
(close file)  ; ফাইল বন্ধ করা হচ্ছে

সারসংক্ষেপ

ফাংশনব্যাখ্যাউদাহরণ
openফাইল খুলতে ব্যবহৃত।(open "example.txt" :direction :output)
closeফাইল বন্ধ করতে ব্যবহৃত।(close file)
readফাইল থেকে ডাটা পড়তে ব্যবহৃত।(read file)
writeফাইলে ডাটা লিখতে ব্যবহৃত।(write "Hello, World!" :stream file)
read-lineফাইল থেকে একটি সম্পূর্ণ লাইন পড়তে ব্যবহৃত।(read-line file)
write-lineফাইলে একটি নতুন লাইন লেখা হয়।(write-line "New Line" :stream file)

LISP-এ ফাইল হ্যান্ডলিং ফাংশনগুলোর মাধ্যমে আপনি ফাইল তৈরি, পড়া, লেখা এবং বন্ধ করার মতো কাজ সহজে করতে পারবেন। LISP প্রোগ্রামিং ভাষার মধ্যে ফাইল হ্যান্ডলিং অত্যন্ত শক্তিশালী এবং নমনীয়, যা বিভিন্ন ধরণের ফাইল প্রক্রিয়া করার জন্য উপযোগী।

Content added By
Promotion

Are you sure to start over?

Loading...