ফোরট্রানে File Status Checking এবং Error Handling
ফোরট্রানে File Status Checking এবং Error Handling গুরুত্বপূর্ণ কনসেপ্ট যা ফাইলের সাথে কাজ করার সময় সঠিকভাবে ত্রুটি পরিচালনা করতে সাহায্য করে। যখন আপনি ফাইলের সাথে তথ্য পড়ছেন বা লিখছেন, তখন নানা ধরনের ত্রুটি হতে পারে (যেমন ফাইল খোলা না যেতে পারে, অনুমতি নেই, ফাইলের শেষ পর্যন্ত পৌঁছানো, ইত্যাদি)। এই ত্রুটিগুলি সঠিকভাবে চিহ্নিত এবং পরিচালনা করতে File Status Checking এবং Error Handling ব্যবহৃত হয়।
ফোরট্রানে File Status Checking সাধারণত IOSTAT এবং IOMSG এর মাধ্যমে করা হয়, এবং Error Handling এর জন্য ERR, IOSTAT, এবং IOMSG ব্যবহার করা হয়।
১. File Status Checking (ফাইল স্টেটাস চেকিং)
ফোরট্রানে ফাইল খোলার, পড়ার বা লেখার সময় যেকোনো ত্রুটি বা অবস্থা চেক করার জন্য IOSTAT কিওয়ার্ড ব্যবহৃত হয়। এটি ইনপুট/আউটপুট অপারেশনগুলি সম্পাদন করার সময় ত্রুটি ঘটলে একটি স্ট্যাটাস কোড প্রদান করে।
উদাহরণ: IOSTAT ব্যবহার
program file_status_check
integer :: iunit, ios
character(len=20) :: filename
filename = "data.txt"
open(unit=iunit, file=filename, status='old', iostat=ios)
if (ios /= 0) then
print *, 'Error opening file ', filename
print *, 'IO error code: ', ios
else
print *, 'File opened successfully.'
! ফাইল পড়ার বা লেখার কোড এখানে থাকবে
close(iunit)
end if
end program file_status_checkব্যাখ্যা:
openকমান্ডের সাথেiostat=iosব্যবহার করা হয়েছে, যাতে ফাইল খোলার সময় কোনো ত্রুটি ঘটলে ios পরিবর্তিত হবে।- যদি ios /= 0 (অর্থাৎ ত্রুটি থাকে), তবে ত্রুটির বার্তা প্রদর্শন করা হবে।
IOSTAT এর মানের কিছু উদাহরণ:
0: অপারেশন সফলভাবে সম্পন্ন হয়েছে।1: ফাইলের নাম বা অবস্থান ভুল।2: ফাইলটি খোলা যায়নি (অথবা অনুমতি নেই)।
২. Error Handling (ত্রুটি পরিচালনা)
ফোরট্রানে Error Handling সাধারণত ERR, IOSTAT, এবং IOMSG ব্যবহার করে করা হয়। ERR কিওয়ার্ডটি কোনও ত্রুটি ঘটলে এক্সিকিউশন থামাতে সাহায্য করে, আর IOMSG ত্রুটির বিবরণ প্রদান করে।
উদাহরণ: ERR এবং IOMSG ব্যবহার
program error_handling_example
integer :: iunit, ios
character(len=20) :: filename
character(len=100) :: errmsg
filename = "data.txt"
open(unit=iunit, file=filename, status='old', iostat=ios, iomsg=errmsg, err=99)
! ফাইল পড়া বা লেখার কোড এখানে
close(iunit)
return
99 ! ত্রুটি হলে এখানে চলে আসবে
print *, 'Error occurred while handling the file.'
print *, 'Error message: ', errmsg
stop ! প্রোগ্রাম বন্ধ হবে
end program error_handling_exampleব্যাখ্যা:
- এখানে open কমান্ডের সাথে iomsg=errmsg ব্যবহার করা হয়েছে, যাতে ত্রুটির বিবরণ পাওয়া যায়।
- err=99: যদি কোন ত্রুটি ঘটে, তাহলে প্রোগ্রামটি লেবেল
99এ চলে যাবে এবং সেখানে ত্রুটির বার্তা প্রদর্শন করা হবে।
IOMSG এবং ERR কিওয়ার্ড:
- IOMSG: এটি ত্রুটির বিস্তারিত বার্তা সংরক্ষণ করে, যা open, read, write ইত্যাদি ইনপুট/আউটপুট অপারেশনগুলির সাথে ব্যবহৃত হয়।
- ERR: এটি ত্রুটির ঘটনার পরে নির্দিষ্ট লেবেলে প্রোগ্রামটি পাঠায়, যেখানে ত্রুটির কার্যক্রম পরিচালনা করা হয়।
৩. File Status Checking এবং Error Handling এর সাধারণ ফাংশন
- open: ফাইল খোলার সময় IOSTAT এবং IOMSG ব্যবহার করে ত্রুটি চেক করা।
- read: ফাইল থেকে ডেটা পড়ার সময় IOSTAT এবং IOMSG দিয়ে ত্রুটি চেক করা।
- write: ফাইল লেখার সময় IOSTAT এবং IOMSG দিয়ে ত্রুটি চেক করা।
- close: ফাইল বন্ধ করার সময় ত্রুটি চেক করা।
উদাহরণ: read ও write এর মাধ্যমে Error Handling
program file_read_write
integer :: iunit, ios
character(len=20) :: filename
real :: num
filename = "data.txt"
open(unit=iunit, file=filename, status='old', iostat=ios)
if (ios /= 0) then
print *, 'Error opening file.'
stop
end if
! ফাইল থেকে একটি রিয়েল নম্বর পড়া
read(iunit, *, iostat=ios) num
if (ios /= 0) then
print *, 'Error reading from file.'
close(iunit)
stop
end if
! ফাইল লেখার অংশ
write(iunit, *) num
close(iunit)
end program file_read_writeব্যাখ্যা:
- এই প্রোগ্রামে read এবং write অপারেশন করার সময় IOSTAT দিয়ে ত্রুটি চেক করা হয়েছে। যদি ios /= 0 হয়, তাহলে ত্রুটি বার্তা দেখিয়ে প্রোগ্রাম থেমে যাবে।
উপসংহার
File Status Checking এবং Error Handling ফোরট্রানে ফাইল পরিচালনার ক্ষেত্রে গুরুত্বপূর্ণ। IOSTAT এবং IOMSG ফাংশনগুলির মাধ্যমে ফাইল অপারেশনগুলি সফলভাবে পরিচালিত হয়, এবং ERR কিওয়ার্ড ব্যবহার করে ত্রুটি পরিস্থিতিতে কোডের কার্যক্রম নিয়ন্ত্রণ করা হয়। এই ফাংশনগুলির মাধ্যমে আপনি সঠিকভাবে ত্রুটির মোকাবিলা করতে পারেন এবং আপনার প্রোগ্রামটি আরও শক্তিশালী ও নির্ভুল করে তুলতে পারেন।
Read more