শুক্রবার, ৯ মে, ২০১৪

ফাইল-১

আজ আমরা সি প্রোগ্রামিং এর অনেক মজার একটা বিষয় শিখব। কনটেস্ট প্রোগ্রামিং এ ফাইল ইউস হয় না কিন্তু অনেক গুরুত্বপূর্ণ কাজ আমরা ফাইল ছাড়া করতে পারি না। ফাইল এমন একটা মজার বিষয় যে যদি তুমি একবার এটা শিখে নাও তবে সারাক্ষণ ফাইল নিয়েই কাজ করতে চাইবে। ফাইল মূলত ইউস হয় ইনপুট নেয়ার জন্য অথবা আউটপুট দেয়ার জন্য।

ফাইল অপারেশন চালানোর জন্য কিছু ফাংশন আছে। এগুলো আমাদের ভালোভাবে আয়ত্ত করতে হবে-

ফাইল ওপেন করাঃ

ফাইল ওপেন করার জন্য যে ফাংশন ব্যাবহার করা হয় সেটা হল 

fopen(“filename”,”mode”);

filename হল ইউসারের দেয়া কোন নাম। mode মানে হল আমি কিসের জন্য ফাইলটা ওপেন করবো। ইনপুট নেয়ার জন্য না আউটপুট দেয়ার জন্য; মানে আমরা ফাইল থেকে কিছু পড়বো না কিছু লিখব। 

ফাইল mode প্রধানত তিনটাঃ

১। ফাইল থেকে কিছু পরার জন্য  r:

এই mode ইউস করলে filename নামে যদি কোন ফাইল   থাকে  তবে সেটা ওপেন হবে আর না থাকলে error ঘটবে। 

২। ফাইল এ কিছু লেখার জন্য  w :

এই mode ইউস করলে filename নামে যদি কোন ফাইল থাকে  তবে তার content গুলো মুছে যাবে এবং ফাইল টা ওপেন হবে। আর যদি না থাকে তবে filename নামে নতুন একটা ফাইল  create হবে আর তা ওপেন হবে। 

৩। ফাইলের শেষে কিছু ডাটা যোগ করার জন্য  a:

এই mode ইউস করলে filename নামে যদি কোন ফাইল থাকে তবে তার content গুলো সুরক্ষিত থাকবে এবং ফাইল টা   ওপেন  হবে। আর যদি না থাকে তবে filename নামে নতুন  একটা ফাইল  create হবে আর তা ওপেন হবে। 

অনেক নতুন কম্পাইলার কিছু additional mode সাপোর্ট করে। সেগুলো হলঃ

r+ :ফাইল থেকে ডাটা পড়া ও ফাইলে ডাটা লেখার জন্য ব্যাবহার করা হয়। 
w+ : এক্ষেত্রে ফাইল থেকে ডাটা পড়া ও ফাইলে ডাটা লেখাও যায়।
a+ : এক্ষেত্রে ফাইল থেকে ডাটা পড়াও যায়। 

fopen(); ফাংশন কল করার নিয়ম হল-

FILE *fp;
fp=fopen(“filename”,”mode”);

এখানে FILE হল একটা structure যা stdio.h হেডার ফাইল এ ডিক্লেয়ার করা আছে। আমাদের FILE টাইপের pointer নিয়ে কাজ করতে হবে। ফাইল ফাংশনগুলো যখন কল হয় তখন তারা ওই ফাইলের একটা pointer রিটার্ন করে, যদি কোন error ঘটে তবে NULL রিটার্ন করে।  

ফাইল বন্ধ করাঃ
ফাইল বন্ধ করার জন্য শুধু নিচের লাইনটা লিখতে হবে-

fclose(file_pointer);

ফাইল I/O অপারেশনঃ 

putc();

ফাইলে একটা করে ক্যারেক্টার লিখতে putc(); ইউস করা হয়।
নিয়মঃ

putc(c,fp); 

এখানে c হল সেই ক্যারেক্টার যেটা আমরা লিখব।আর fp হল সেই ফাইলের পয়েন্টার যে ফাইলে আমরা লিখব।

getc();

ফাইল থেকে একটা করে ক্যারেক্টার পড়তে getc(); ইউস করা হয়।
নিয়মঃ

getc(fp);

এই ফাংশন EOF না পাওয়া পর্যন্ত কাজ করে। 

fputs();

ফাইলে string লিখতে fputs(); ইউস করা হয়।
নিয়মঃ

fputs(string,fp);

যদি string ফাইলে ঠিকমত লেখা হয় তবে ফাংশনটি +ve মান রিটার্ন করে অন্যথায় EOF রিটার্ন করবে। 

fgets();

ফাইল থেকে ডাটা stringআকারে পড়তে ফাংশনটি ইউস করা হয়।
নিয়মঃ

fgets(string_variable,n,fp);

এখানে string_variable হল একটা string ভেরিয়েবলn হল একটা পূর্ণ সংখা,আর fp হল সেই ফাইলের পয়েন্টার যে ফাইল থেকে string পড়া হবে। ফাংশনটা ফাইল থেকে n-1 সংখ্যক ক্যারেক্টারের একটা string নেবে যেটাকে string_variable পয়েন্ট করবে। যদি ফাংশনটি ঠিকমত কাজ করে তবে string_variable এর pointed এড্রেসটা রিটার্ন করবে। অন্যথায় NULL রিটার্ন করবে। 

fprintf();

ফাইলে ডাটা লেখার জন্য fprintf(); ইউস করা হয়।
নিয়মঃ

fprintf(fp,”format specifier”,arguments);

fscanf();

ফাইল থেকে ডাটা পড়ার জন্য fscanf(); ইউস করা হয়।
নিয়মঃ

fscanf(fp,”format specifier”,&arguments); 

fprintf(); fscanf(); এর কাজ অনেকটা printf(); scanf(); এর মতই। 

putw();

ফাইলে int সংখ্যা লিখতে putw(); ইউস করা হয়।
নিয়মঃ

putw(integer,fp); 

getw();

ফাইল থেকে int সংখ্যা পড়তে getw(); ইউস করা হয়।
নিয়মঃ

getw(fp);
 
ফাংশনটা EOF না পাওয়া পর্যন্ত কাজ করে। 

আমরা ফাইল ওপেন করা, বন্ধ করা আর ফাইলে কিভাবে লিখতে হয় বা ফাইল থেকে কিভাবে ডাটা পড়তে হয় তা শিখলাম। আরও কিছু ফাংশন আছে যেগুলো দিয়ে ইচ্ছেমত randomly ফাইল নিয়ে কাজ করা যায়। আমরা সেগুলো আগামী কোন এক দিন শিখব ইনশাল্লাহ।
আজ তাহলে উঠি।
হ্যাপি কোডিং !!! :)












কোন মন্তব্য নেই: