বাংলায় C প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখার কোর্স
  • পরিচিতি
  • প্রাথমিক ধারণা
    • কম্পিউটার প্রোগ্রামিং কি?
    • সি এর জন্মকথা
    • প্রয়োজনীয় সফটওয়্যার
    • প্রথম প্রোগ্রাম
    • কিছু সাধারণ সি প্রোগ্রাম
  • সি এর মৌলিক বিষয়াবলী
    • ক্যারেক্টার সেট
    • টোকেনস এবং কমেন্টস
    • কীওয়ার্ডস এবং আইডেন্টিফায়ারস
    • ডাটা টাইপস
    • ভেরিয়েবলস
    • কন্সট্যান্টস
    • ডিক্লারেশনস
    • লাইব্রেরী ফাংশনের ধারণা
  • অপারেটরস এবং এক্সপ্রেশনস
    • অ্যারিথমেটিক অপারেটরস
    • এসাইনমেন্ট অপারেটরস
    • রিলেশনাল এবং লজিক্যাল অপারেটরস
    • কন্ডিশনাল অপারেটরস
  • ইনপুট এবং আউটপুট
    • স্ট্যান্ডার্ড ইনপুট এবং আউটপুট
    • ফাইল থেকে ইনপুট এবং আউটপুট
  • কন্ট্রোল স্টেটম্যান্ট
    • প্রাথমিক ধারনা
    • if - else স্টেটম্যান্ট
    • switch case স্টেটম্যান্ট
    • for লুপ
    • while লুপ
    • do - while লুপ
  • ফাংশন
    • প্রাথমিক ধারণা
    • ইউজার ডিফাইনড ফাংশন
  • অ্যারে
    • প্রাথমিক ধারণা
    • ওয়ান ডাইমেনশনাল অ্যারে
    • মাল্টি ডাইমেনশনাল অ্যারে
  • পয়েন্টার
    • প্রাথমিক ধারণা
  • স্ট্রাকচার
    • প্রাথমিক ধারণা
  • ফাইল অপারেশন
    • প্রাথমিক ধারণা
Powered by GitBook
On this page
  1. ফাইল অপারেশন

প্রাথমিক ধারণা

একটা ফাইল নিয়ে কাজ করার জন্য তা ডিক্লেয়ার করতে হয়। ডিক্লেয়ার করা হয় 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 <stdio.h>

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;
}

ফাইল থেকে ডেটা পড়াঃ

ফাইল থেকে ডেটা পড়ার জন্য fscanf ব্যবহার করা হয়। নিচের কোড গুলো দেখুনঃ

#include <stdio.h>
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 <stdio.h>

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;
}

ফাইল নিয়ে কাজ করা অনেক সহজ তাই না?

টেবিলে আগেই বলছি যে w মুডে ফাইলটি ওপেন করলে তার মধ্যের সকল ডেটা মুছে যাবে এবং নতুন করে ডেটা রাইট হবে। কিন্তু আমরা যদি আগের ডেটা না মুছে আগের ডেটার নিছে নতুন ডেটা লিখতে চাই তার জন্য ব্যবহার করব a মুড।

নিচের কোড টি কয়েকবার রান করিয়ে দেখুনঃ

#include <stdio.h>
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;
}

এতটুকুই, অন্যান্য মুড আপনারা ট্রাই করে দেখুন। অন্য কোন ডেটা টাইফ সংরক্ষন করে দেখুনন। অন্য ডেটা টাইফের ডেটা গুলো আবার রিড করার চেষ্টা করুন।

Previousফাইল অপারেশন

Last updated 4 years ago