একটা ফাইল নিয়ে কাজ করার জন্য তা ডিক্লেয়ার করতে হয়। ডিক্লেয়ার করা হয় FILE পয়েন্টার দিয়ে। যেমনঃ
FILE *MyFile;
FILE বড় হারের অক্ষরে লিখতে হয় এবং MyFile হচ্ছে পয়েন্টার ভেরিয়েবল। এটা মুলত একটা বাফার তৈরি করে কম্পিউটার মেমরি এবং ঐ ফাইল এর মধ্যে। পয়েন্টার ভেরিয়েবল তৈরি করার পর আমরা ফাইলটি ওপেন করতে পারব। তার জন্য fopen ফাংশান ব্যবহার করতে হয়। যা সাধারনত লেখা হয় এমনঃ MyFIle = fopen(file-name, file-type); । ফাইল এর নাম এবং টাইফ দুটি স্টিং। এবং ফাইল টাইফ হচ্ছে ফাইলটা কোন মুড এ ওপেন হবে তা। যেমন Read Only, Write Only অথবা দুটিই ইত্যাদি। যেমনঃ
MyFile = fopen ("myfile.txt","w");
file-type নিচের টেবিলের যে কোন একটা হতে পারেঃ
r | শুধু মাত্র ফাইলটি রিড করার জন্য ওপেন করা। |
w |
|
a |
|
r+ | ফাইলটি রিড করা বা রাইট করার জন্য ওপেন করা। এবং ফাইলের শুরুতে কিছু লেখা। |
w+ | ফাইলটি রিড করা বা রাইট করার জন্য ওপেন করা। |
a+ | ফাইলটি রিড করা বা রাইট করার জন্য ওপেন করা। এবং ফাইলের শেষে কিছু লেখা। |
ফাইল ওপেন করার জন্য তাতে কিছু লেখার জন্য fputs ফাংশান ব্যবহার করা হয়। যেমনঃ
fputs ("Writing to a file using 'fopen' example.",MyFile);
ফাইলটি রিড বা রাইট করা হলে ফাইলোটি বন্ধ বা ক্লোজ করতে হয়, তার জন্য ব্যবহার করা হয় fclose ফাংশানঃ
fclose (MyFile);
#include int main () { FILE * MyFile; MyFile = fopen ("myfile.txt","w"); if (MyFile!=NULL) { fputs ("Writing to a file using 'fopen' example.",MyFile); fclose (MyFile); } return 0; }
আপনার সি প্রোজেক্টটা যে ফোল্ডারে সংরক্ষিত করছেন তা ওপেন করুন। তার ভেতর myfile.txt দেখতে পাবেন। এবং ফাইলটি ওপেন করলে Writing to a file using 'fopen' example. লেখাটি দেখতে পাবেন।
ফাইল থেকে ডেটা পড়াঃ
ফাইল থেকে ডেটা পড়ার জন্য fscanf ব্যবহার করা হয়।
নিচের কোড গুলো দেখুনঃ
#include int main () { FILE * MyFile; char string[10]; MyFile = fopen ("myfile.txt","r+"); while(! feof(MyFile)) { fscanf(MyFile,"%s",string); printf("%s ", &string); } fclose (MyFile); return 0; }
এখানে feof দিয়ে end-of-file চেক করা হয়েছে। অর্থাৎ যতক্ষন পর্যন্ত ফাইলের মধ্যে কোন ডেটা থাকবে ততক্ষন পর্যন্ত ফাইলটির ডেটা গুলো fscanf দিয়ে রিড করা হবে।
fscanf এর তিনটা প্যারামিটার রয়েছে। fscanf(file-name, data-type, variable);
file-name হচ্ছে ফাইলের নাম। যে ফাইল থেকে ডেটা পড়া হবে। data-type হচ্ছে ফাইলের ডেটা টাইফ। বা কোন টাইফে ডেটা গুলো পড়া হবে। এখানে char টাইফের ডেটা পড়া হয়েছে। ইচ্ছে করলে int অথবা floating point ডেটা পড়া যাবে।
variable হচ্ছে ভেরিয়েবলের নাম, যেখানে ডেটা গুলো ফাইল থেকে পড়ে সংরক্ষিত থাকবে।
আমরা এ পর্যন্ত যে ফোল্ডারে আমাদের সি প্রোগ্রাম টা রয়েছে তা থাকে ফাইলটি ওপেন করছি বা রিড করছি। ইচ্ছে করলে আমরা যে কোন ডিরেক্ট্ররি থেকে ফাইলটি ওপেন করতে পারি। file-name এর জাগায় পুরো ফাইল পাথ দিলেই হবে। নিচের উদাহরনটি দেখুনঃ
#include int main () { FILE * MyFile; MyFile = fopen ("F:\MyFolder\myfile.txt","w"); if (MyFile!=NULL) { fputs ("Writing to a file using 'fopen' example.",MyFile); fclose (MyFile); } return 0; }
ফাইল নিয়ে কাজ করা অনেক সহজ তাই না?
টেবিলে আগেই বলছি যে w মুডে ফাইলটি ওপেন করলে তার মধ্যের সকল ডেটা মুছে যাবে এবং নতুন করে ডেটা রাইট হবে। কিন্তু আমরা যদি আগের ডেটা না মুছে আগের ডেটার নিছে নতুন ডেটা লিখতে চাই তার জন্য ব্যবহার করব a মুড।
নিচের কোড টি কয়েকবার রান করিয়ে দেখুনঃ
#include int main () { FILE * MyFile; MyFile = fopen ("F:\MyFolder\myfile.txt","a"); if (MyFile!=NULL) { fputs ("Writing to a file using 'fopen' example.",MyFile); fclose (MyFile); } return 0; }
এতটুকুই, অন্যান্য মুড আপনারা ট্রাই করে দেখুন। অন্য কোন ডেটা টাইফ সংরক্ষন করে দেখুনন। অন্য ডেটা টাইফের ডেটা গুলো আবার রিড করার চেষ্টা করুন। কোন সমস্যা হলে আমাকে মেইল করতে পারেন বা ফেসবুকে মেসেজ দিতে পারে।
শুভ প্রোগ্রামিং!
আমি জাকির হোসাইন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 8 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 224 টি টিউন ও 1487 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 5 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
পৃথিবীতে অল্পকয়েক দিনের জন্য অনেকেই আসে, হেঁটে খেলে চলে যায়। এর মধ্যে অল্প কয়েক জনই পায়ের চাপ রেখে যায়।ওদের একজন হতে ইচ্ছে করে। প্রযুক্তির আরেকটি সেরা ব্লগ টেকটুইটস। আপনাদের স্বাগতম, যেখানে প্রতিটি বন্ধুর অংশ গ্রহনে গড়ে উঠেছে একটি পরিবার। আপনাদের পছন্দ হবে আশা করি। ফেসবুকে আমি - ?জাকির!
আপনার লেখার চমত্কার হাত আছে।মুগ্ধ হয়ে আপনার টিউন দেখি। 😀