শনিবার, ১০ মে, ২০১৪

ফাইল-২


গত পর্বে আমরা ফাইলের বেসিক কিছু ফাংশন শিখেছিলাম ফাইল I/O বিষয়ক। তার আগে শিখেছিলাম কিভাবে ফাইল খুলতে হয়, বন্ধ করতে হয়। আজ আমরা ফাইলের কয়েকটা গুরুত্বপূর্ণ ফাংশন নিয়ে আলোচনা করবো।
তার আগে ফাইল সম্পর্কে আমাদের আরও একটু জানতে হবে। আমরা যখন একটা ফাইল ওপেন করি, ফাইল টা যদি ঠিকঠাক ওপেন হয় তাহলে ওই ফাইলের একটা পয়েন্টার fp রিটার্ন করে । তার মানে fp ওই ফাইলটাকে পয়েন্ট করে। ফাইলটাকে পয়েন্ট করা মানে ফাইলের প্রথম ক্যারেক্টারটাকে পয়েন্ট করা। তাই আমরা যখন ফাইল থেকে ক্যারেক্টার নেই তখন প্রথম ক্যারেক্টার টা আসে। আমরা যদি fp কে আমাদের ইচ্ছেমত কোথাও নিয়ে যেতে পারি তবে আমরা আমাদের ইচ্ছেমত ডাটা পড়তে পারব। 

fseek();

এই ফাংশন এর সাহায্যে ফাইল পয়েন্টার কে ইচ্ছেমত ফাইলের যেকোন position এ পাঠানো যায়।
নিয়মঃ

fseek(fp,n,position);

এখানে fp হল সেই ফাইল পয়েন্টার যেটাকে আমরা অন্য পজিসন এ পাঠাব, n হল যে কয় বাইট সরাবো আর position হচ্ছে যেখান থেকে সরাবো।
n এর মান +ve হলে fp সামনের দিকে যাবে অন্যথায় পেছনে যাবে।
প্রথম থেকে ফাইল পয়েন্টার টাকে সরাতে চাইলে 0,
শেষ থেকে ফাইল পয়েন্টার টাকে সরাতে চাইলে 2, ফাইল পয়েন্টারটাকে বর্তমান পজিসন থেকে সরাতে চাইলে 1

ftell();

ফাইল পয়েন্টার এর বর্তমান পজিসন জানতে ইউস করা হয়। তার মানে ফাংশনটা রিটার্ন করে ফাইল পয়েন্টার এর বর্তমান পজিসন।
নিয়মঃ

n= ftell(fp);

rewind();

ফাইল পয়েন্টার এর পজিসন রিসেট করতে ইউস করা হয়। তার মানে যদি ফাংশনটা কল করা হয় –

rewind(fp);

তাহলে fp এর মান 0 হয়ে যাবে।প্রথম ক্যারেক্টারটাকে 0 দিয়ে indicate করা হয়। 

feof();

এই ফাংশনটি ব্যাবহার করা হয় এটা জানার জন্য যে ফাইল পয়েন্টারটা ফাইলের একদম শেষে পৌঁছেছে কিনা, তার মানে EOF কনডিশন। যদি ফাইলের সব ডাটা পড়া হয়ে গিয়ে থাকে তো ফাংশনটা nonzero integer রিটার্ন করে, অন্যথায় zero. নিয়মঃ

feof(fp);

ferror();

ফাইল পয়েন্টারটা এই পর্যন্ত আসতে কোথাও কোন error ঘটেছে কিনা তা জানার জন্য এই ফাংশনটা ইউস করা হয়। যদি কোন error ঘটে থাকে তবে ফাংশনটা nonzero integer রিটার্ন করে, অন্যথায় zero.
নিয়মঃ

ferror(fp);

fflush();

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

fflush(fp);

আমরা ফাইল শিখে ফেললাম। কি মজা!!!
অনেক বকবক করলাম না? হুমম............
আজ তাহলে এপর্যন্তই............
হ্যাপি কোডিং !!! :)

২টি মন্তব্য:

Muhammad Ahsan Kabir বলেছেন...

good post :D

Harun Or Rashid বলেছেন...

ধন্যবাদ... @Ahsan Kabir Shohagh