Skill

ফাইল হ্যান্ডলিং

Computer Science - সি প্রোগ্রামিং উদাহরণ (C Examples)
239

সি প্রোগ্রামিং ভাষায় ফাইল হ্যান্ডলিং হলো এমন একটি প্রক্রিয়া যা ডেটা ফাইলের মধ্যে সংরক্ষণ, রিড, আপডেট এবং ডিলিট করার মতো কাজগুলোকে সহজ করে। ফাইল হ্যান্ডলিংয়ের মাধ্যমে প্রোগ্রাম ডেটা ইনপুট বা আউটপুট হিসেবে ফাইল থেকে নিতে এবং দিতে পারে, যা প্রোগ্রামিংয়ে ডেটা সংরক্ষণ এবং পুনরুদ্ধারে কার্যকর ভূমিকা পালন করে।

ফাইল হ্যান্ডলিংয়ের প্রধান ফাংশন

সি প্রোগ্রামিংয়ে ফাইল ব্যবস্থাপনার জন্য কিছু প্রধান ফাংশন রয়েছে। এগুলো মূলত stdio.h লাইব্রেরিতে থাকে।

ফাংশনউদ্দেশ্য
fopen()ফাইল খোলার জন্য
fclose()ফাইল বন্ধ করার জন্য
fprintf()ফাইলের মধ্যে লেখার জন্য
fscanf()ফাইল থেকে পড়ার জন্য
fputs()ফাইলে স্ট্রিং লেখার জন্য
fgets()ফাইল থেকে স্ট্রিং পড়ার জন্য
fwrite()বাইনারি ফাইলের মধ্যে লেখার জন্য
fread()বাইনারি ফাইল থেকে পড়ার জন্য

ফাইল খোলা এবং বন্ধ করা

ফাইল খোলার জন্য fopen() ফাংশন এবং ফাইল বন্ধ করার জন্য fclose() ফাংশন ব্যবহার করা হয়। ফাইল খোলার সময় মোড নির্ধারণ করতে হয়, যেমন - রিড মোড (r), রাইট মোড (w), অ্যাপেন্ড মোড (a), ইত্যাদি।

ফাইল খোলার বিভিন্ন মোড

মোডবিবরণ
rশুধুমাত্র পড়ার জন্য ফাইল খোলে। ফাইল না থাকলে ফাইল খোলা যাবে না।
wশুধুমাত্র লেখার জন্য ফাইল খোলে। ফাইল না থাকলে একটি নতুন ফাইল তৈরি করে।
aফাইলের শেষে যোগ করার জন্য খোলে। ফাইল না থাকলে একটি নতুন ফাইল তৈরি করে।
r+পড়া এবং লেখার জন্য ফাইল খোলে।
w+পড়া এবং লেখার জন্য ফাইল খোলে। ফাইল না থাকলে একটি নতুন ফাইল তৈরি করে।
a+পড়া এবং যোগ করার জন্য ফাইল খোলে। ফাইল না থাকলে একটি নতুন ফাইল তৈরি করে।

উদাহরণ: ফাইল খোলা এবং বন্ধ করা

#include <stdio.h>

int main() {
    FILE *file;
    file = fopen("example.txt", "w");  // "example.txt" নামের ফাইলটি লেখার জন্য খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    // ফাইল বন্ধ করা
    fclose(file);
    printf("File opened and closed successfully.\n");

    return 0;
}

আউটপুট:

File opened and closed successfully.

ফাইলে লেখার জন্য fprintf() এবং fputs()

fprintf() এবং fputs() ফাংশনের মাধ্যমে ফাইলে ডেটা লেখা যায়।

উদাহরণ: fprintf() ব্যবহার করে লেখার জন্য

#include <stdio.h>

int main() {
    FILE *file;
    file = fopen("example.txt", "w");

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    fprintf(file, "Hello, World!\n"); // ফাইলে লেখা
    fprintf(file, "This is a file handling example in C.\n");

    fclose(file);
    printf("Data written to file successfully.\n");

    return 0;
}

আউটপুট:

Data written to file successfully.

ফাইল example.txt এর মধ্যে লেখা থাকবে:

Hello, World!
This is a file handling example in C.

উদাহরণ: fputs() ব্যবহার করে লেখার জন্য

#include <stdio.h>

int main() {
    FILE *file;
    file = fopen("example.txt", "a"); // অ্যাপেন্ড মোডে ফাইল খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    fputs("This line is added using fputs().\n", file); // ফাইলে লেখা

    fclose(file);
    printf("Data appended to file successfully.\n");

    return 0;
}

ফাইল থেকে পড়ার জন্য fscanf() এবং fgets()

ফাইল থেকে ডেটা পড়তে fscanf() এবং fgets() ফাংশন ব্যবহার করা হয়।

উদাহরণ: fscanf() ব্যবহার করে ফাইল থেকে পড়া

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    // fscanf ফাংশন ব্যবহার করে ফাইল থেকে ডেটা পড়া
    while (fscanf(file, "%[^\n]\n", text) != EOF) {
        printf("%s\n", text);
    }

    fclose(file);
    return 0;
}

উদাহরণ: fgets() ব্যবহার করে ফাইল থেকে পড়া

#include <stdio.h>

int main() {
    FILE *file;
    char line[100];

    file = fopen("example.txt", "r");

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    // fgets ফাংশন ব্যবহার করে ফাইল থেকে লাইন বাই লাইন ডেটা পড়া
    while (fgets(line, sizeof(line), file)) {
        printf("%s", line);
    }

    fclose(file);
    return 0;
}

ফাইল থেকে বাইনারি ডেটা পড়া এবং লেখা

বাইনারি ফাইলে ডেটা পড়া ও লেখার জন্য fwrite() এবং fread() ফাংশন ব্যবহার করা হয়।

উদাহরণ: fwrite() এবং fread() ব্যবহার করে বাইনারি ডেটা লেখা ও পড়া

#include <stdio.h>

struct Student {
    int roll;
    char name[50];
    float marks;
};

int main() {
    FILE *file;
    struct Student student1 = {1, "John Doe", 85.5};

    // বাইনারি ফাইলে ডেটা লেখা
    file = fopen("student.dat", "wb");
    fwrite(&student1, sizeof(struct Student), 1, file);
    fclose(file);

    struct Student student2;

    // বাইনারি ফাইল থেকে ডেটা পড়া
    file = fopen("student.dat", "rb");
    fread(&student2, sizeof(struct Student), 1, file);
    fclose(file);

    printf("Roll: %d\n", student2.roll);
    printf("Name: %s\n", student2.name);
    printf("Marks: %.2f\n", student2.marks);

    return 0;
}

আউটপুট:

Roll: 1
Name: John Doe
Marks: 85.50

সংক্ষেপে

ফাইল হ্যান্ডলিং সি প্রোগ্রামিং ভাষায় ডেটা সংরক্ষণ এবং পুনরুদ্ধার করার একটি গুরুত্বপূর্ণ পদ্ধতি। এতে বিভিন্ন ফাংশন যেমন fopen, fclose, fprintf, fscanf, fwrite, এবং fread ব্যবহার করে টেক্সট ও বাইনারি ফাইলের ডেটা পরিচালনা করা যায়।

Content added By

ফাইল কী এবং কেন ব্যবহার করা হয়

814

ফাইল কী?

ফাইল হলো এমন একটি ডেটা স্টোরেজ ইউনিট যেখানে প্রোগ্রাম বা অ্যাপ্লিকেশন থেকে বিভিন্ন ডেটা সংরক্ষণ, পরিবর্তন বা পুনরুদ্ধার করা যায়। এটি কম্পিউটার মেমোরিতে বা ডিস্কে নির্দিষ্ট ফরম্যাটে সংরক্ষিত থাকে, যা প্রোগ্রামিংয়ে দীর্ঘমেয়াদী ডেটা স্টোরেজ হিসেবে ব্যবহৃত হয়।

সি প্রোগ্রামিং ভাষায় ফাইল ব্যবহারের জন্য stdio.h লাইব্রেরিতে বিভিন্ন ফাংশন দেওয়া আছে, যা ফাইলের মধ্যে ডেটা পড়া, লেখা, পরিবর্তন, এবং মুছার কাজ সম্পাদন করে।

কেন ফাইল ব্যবহার করা হয়?

ফাইল ব্যবহারের কিছু প্রধান কারণ হলো:

১. দীর্ঘমেয়াদী ডেটা সংরক্ষণ

  • প্রোগ্রাম চলাকালীন সময়ে ব্যবহৃত ডেটা প্রোগ্রাম বন্ধ হলে হারিয়ে যায়। কিন্তু ফাইলের মাধ্যমে সেই ডেটা ডিস্কে স্থায়ীভাবে সংরক্ষণ করা যায়, যা প্রোগ্রাম বন্ধ হয়ে গেলেও থেকে যায় এবং পরবর্তীতে পুনরায় ব্যবহার করা যায়।

২. ডেটা শেয়ারিং ও ট্রান্সফার

  • ফাইল ব্যবহার করে একটি প্রোগ্রামের ডেটা অন্য প্রোগ্রাম বা অন্য ডিভাইসের সাথে শেয়ার করা যায়। এর ফলে সহজেই ডেটা ট্রান্সফার সম্ভব হয়, যা ডেটা ব্যবস্থাপনাকে সহজ করে।

৩. বড় ডেটা পরিচালনা

  • প্রোগ্রামের পরিবর্তনশীল (variable) গুলোতে বড় ডেটা রাখা অনেক সময়ে সম্ভব নয় বা কার্যকরী হয় না। কিন্তু ফাইল ব্যবহারের মাধ্যমে বড় ডেটা সহজে পরিচালনা করা যায়।

৪. ব্যবহারকারী তথ্য সংরক্ষণ

  • বিভিন্ন অ্যাপ্লিকেশন যেমন ব্যবহারকারীর নাম, পাসওয়ার্ড, অ্যাপ্লিকেশনের সেটিংস ইত্যাদি তথ্য ফাইলে সংরক্ষণ করে, যা পরবর্তীতে প্রোগ্রাম চালানোর সময় পুনরুদ্ধার করা যায়।

৫. ডেটা সুরক্ষা

  • ফাইলে সংরক্ষিত ডেটা প্রয়োজন হলে এনক্রিপ্ট করা যায়, যা ডেটাকে সুরক্ষিত করে এবং অপরিচিত ব্যক্তিদের ডেটা অ্যাক্সেস প্রতিরোধ করে।

ফাইল ব্যবহারের উদাহরণ

সি প্রোগ্রামে ফাইল ব্যবহারের জন্য FILE টাইপ ব্যবহার করে একটি ফাইল পয়েন্টার তৈরি করা হয় এবং সেই ফাইল পয়েন্টারের মাধ্যমে ফাইলের বিভিন্ন অপারেশন করা হয়।

উদাহরণ: ফাইলে ডেটা লেখা এবং পড়া

#include <stdio.h>

int main() {
    FILE *file;
    char text[] = "Hello, this is file handling in C!";

    // ফাইল লেখা
    file = fopen("example.txt", "w"); // "example.txt" ফাইলটি লেখার জন্য খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    fprintf(file, "%s\n", text); // ফাইলে ডেটা লেখা
    fclose(file); // ফাইল বন্ধ করা

    // ফাইল থেকে ডেটা পড়া
    char readText[100];
    file = fopen("example.txt", "r"); // "example.txt" ফাইলটি পড়ার জন্য খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    fgets(readText, 100, file); // ফাইল থেকে ডেটা পড়া
    printf("Data from file: %s\n", readText);
    fclose(file); // ফাইল বন্ধ করা

    return 0;
}

আউটপুট:

Data from file: Hello, this is file handling in C!

ফাইল ব্যবহারের সুবিধা

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

সারসংক্ষেপে

ফাইল হলো প্রোগ্রামের ডেটা দীর্ঘমেয়াদী সংরক্ষণ, বড় ডেটা ম্যানেজমেন্ট, ডেটা শেয়ারিং, এবং ব্যবহারকারীর তথ্য স্টোরেজের জন্য একটি কার্যকর মাধ্যম। এটি প্রোগ্রামিংয়ে ডেটা ব্যবস্থাপনাকে উন্নত করে এবং ফাইল হ্যান্ডলিংয়ের মাধ্যমে প্রোগ্রামিংয়ের ডেটা প্রসেসিং আরও কার্যকরভাবে পরিচালনা করা যায়।

Content added By

ফাইল খোলা, পড়া এবং লেখা - fopen(), fscanf(), fprintf(), fclose()

304

সি প্রোগ্রামিং ভাষায় ফাইল খোলা, পড়া এবং লেখা করতে কয়েকটি গুরুত্বপূর্ণ ফাংশন রয়েছে, যেমন fopen(), fscanf(), fprintf(), এবং fclose()। এই ফাংশনগুলো ব্যবহার করে ফাইলে ডেটা সংরক্ষণ, রিড করা, এবং প্রয়োজনীয় কাজ সম্পন্ন করা যায়।

১. fopen() ফাংশন

fopen() ফাংশন ফাইল খোলার জন্য ব্যবহৃত হয়। এই ফাংশনটি ফাইলের নাম এবং মোড (যেমন r, w, a ইত্যাদি) গ্রহণ করে এবং একটি ফাইল পয়েন্টার রিটার্ন করে।

গঠন:

FILE *fopen(const char *filename, const char *mode);
  • filename: যে ফাইলটি খুলতে হবে তার নাম।
  • mode: ফাইলের মোড, যেমন r (পড়ার জন্য), w (লেখার জন্য), a (অ্যাপেন্ড করার জন্য)।

মোডের তালিকা:

মোডবর্ণনা
rশুধুমাত্র পড়ার জন্য ফাইল খোলে। ফাইল না থাকলে ত্রুটি দেয়।
wশুধুমাত্র লেখার জন্য ফাইল খোলে। ফাইল না থাকলে নতুন ফাইল তৈরি করে।
aফাইলের শেষে লেখা যোগ করার জন্য খোলে। ফাইল না থাকলে নতুন ফাইল তৈরি করে।
r+পড়া এবং লেখার জন্য ফাইল খোলে।
w+পড়া এবং লেখার জন্য ফাইল খোলে। ফাইল না থাকলে নতুন ফাইল তৈরি করে।
a+পড়া এবং লেখা যোগ করার জন্য ফাইল খোলে।

উদাহরণ:

FILE *file;
file = fopen("example.txt", "w");  // লেখার জন্য ফাইল খোলা

২. fprintf() ফাংশন

fprintf() ফাংশন ব্যবহার করে ফাইলে ডেটা লেখা হয়। এটি সাধারণত ফাইল পয়েন্টার এবং ফরম্যাট স্ট্রিং গ্রহণ করে, এবং প্রিন্টফের মতো ফাইলের মধ্যে আউটপুট লেখে।

গঠন:

int fprintf(FILE *stream, const char *format, ...);
  • stream: ফাইল পয়েন্টার, যা ফাইলের নির্দেশনা দেয়।
  • format: ফরম্যাট স্ট্রিং, যেমন %d, %s ইত্যাদি।

উদাহরণ:

FILE *file;
file = fopen("example.txt", "w");  // ফাইল খোলা

if (file != NULL) {
    fprintf(file, "Hello, World!\n"); // ফাইলে লেখা
    fprintf(file, "This is an example of file handling in C.\n");
    fclose(file); // ফাইল বন্ধ করা
}

ফাইলের আউটপুট (example.txt):

Hello, World!
This is an example of file handling in C.

৩. fscanf() ফাংশন

fscanf() ফাংশন ব্যবহার করে ফাইল থেকে ডেটা পড়া হয়। এটি scanf() এর মতোই কাজ করে, তবে ফাইল থেকে ডেটা পড়ে।

গঠন:

int fscanf(FILE *stream, const char *format, ...);
  • stream: ফাইল পয়েন্টার।
  • format: ফরম্যাট স্ট্রিং, যেমন %d, %s ইত্যাদি।

উদাহরণ:

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");  // ফাইলটি পড়ার জন্য খোলা

    if (file != NULL) {
        while (fscanf(file, "%[^\n]\n", text) != EOF) { // এক লাইন করে পড়া
            printf("%s\n", text);  // স্ক্রিনে প্রিন্ট করা
        }
        fclose(file); // ফাইল বন্ধ করা
    } else {
        printf("File could not be opened.\n");
    }

    return 0;
}

৪. fclose() ফাংশন

fclose() ফাংশনটি একটি ফাইল বন্ধ করতে ব্যবহার করা হয়। যখন ফাইলের কাজ শেষ হয় তখন এটি বন্ধ করা উচিত, যাতে মেমোরি সঠিকভাবে মুক্ত হয় এবং পরবর্তী ব্যবহারের জন্য ফাইল নিরাপদ থাকে।

গঠন:

int fclose(FILE *stream);
  • stream: ফাইল পয়েন্টার।

উদাহরণ:

FILE *file;
file = fopen("example.txt", "w");  // ফাইল খোলা
fprintf(file, "Closing the file after writing.\n");  // লেখা
fclose(file);  // ফাইল বন্ধ

পূর্ণ উদাহরণ: ফাইল খোলা, লেখা এবং পড়া

#include <stdio.h>
#include <string.h>

int main() {
    FILE *file;

    // ফাইল খোলা এবং লেখা
    file = fopen("data.txt", "w");
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    fprintf(file, "Name: Alice\n");
    fprintf(file, "Age: 30\n");
    fclose(file);

    // ফাইল খোলা এবং পড়া
    char line[100];
    file = fopen("data.txt", "r");
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    printf("Data from file:\n");
    while (fgets(line, sizeof(line), file)) {
        printf("%s", line);
    }
    fclose(file);

    return 0;
}

আউটপুট:

Data from file:
Name: Alice
Age: 30

সংক্ষেপে

  • fopen(): ফাইল খোলে এবং একটি ফাইল পয়েন্টার রিটার্ন করে।
  • fprintf(): ফাইলে ফরম্যাট অনুযায়ী ডেটা লেখে।
  • fscanf(): ফাইল থেকে ফরম্যাট অনুযায়ী ডেটা পড়ে।
  • fclose(): ফাইল বন্ধ করে।

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

Content added By

টেক্সট এবং বাইনারি ফাইল হ্যান্ডলিং

268

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

টেক্সট ফাইল হ্যান্ডলিং

টেক্সট ফাইল সাধারণত মানুষের পাঠযোগ্য ফরম্যাটে ডেটা সংরক্ষণ করে, যেমন .txt ফাইল। এখানে প্রতিটি ক্যারেক্টার ASCII ফরম্যাটে সংরক্ষিত হয়।

টেক্সট ফাইল হ্যান্ডলিং এর জন্য প্রধান ফাংশনসমূহ

১. fopen(): ফাইল খোলে। ২. fprintf(): টেক্সট ফাইলে ডেটা লেখে। ৩. fscanf(): টেক্সট ফাইল থেকে ডেটা পড়ে। ৪. fclose(): ফাইল বন্ধ করে।

উদাহরণ: টেক্সট ফাইলে ডেটা লেখা এবং পড়া

#include <stdio.h>

int main() {
    FILE *file;
    
    // টেক্সট ফাইলে লেখা
    file = fopen("textfile.txt", "w"); // লেখার মোডে ফাইল খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    fprintf(file, "Hello, this is a text file.\n");
    fprintf(file, "Text files are readable by humans.\n");
    fclose(file); // ফাইল বন্ধ

    // টেক্সট ফাইল থেকে ডেটা পড়া
    char line[100];
    file = fopen("textfile.txt", "r"); // পড়ার মোডে ফাইল খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    printf("Data from text file:\n");
    while (fgets(line, sizeof(line), file)) { // এক লাইন করে পড়া
        printf("%s", line);
    }
    fclose(file); // ফাইল বন্ধ

    return 0;
}

আউটপুট:

Data from text file:
Hello, this is a text file.
Text files are readable by humans.

বাইনারি ফাইল হ্যান্ডলিং

বাইনারি ফাইল ফরম্যাটে ডেটা সরাসরি বাইনারি আকারে সংরক্ষণ করা হয়, যা সংরক্ষিত ডেটাকে আরও কম্প্যাক্ট রাখে। এটি দ্রুত এবং নির্ভুল ডেটা প্রসেসিংয়ের জন্য উপযুক্ত।

বাইনারি ফাইল হ্যান্ডলিং এর জন্য প্রধান ফাংশনসমূহ

১. fopen(): ফাইল খোলে। ২. fwrite(): বাইনারি ফাইলে ডেটা লেখে। ৩. fread(): বাইনারি ফাইল থেকে ডেটা পড়ে। ৪. fclose(): ফাইল বন্ধ করে।

উদাহরণ: বাইনারি ফাইলে ডেটা লেখা এবং পড়া

ধরা যাক, আমরা একটি Student স্ট্রাকচারের ডেটা বাইনারি ফাইলে সংরক্ষণ এবং পুনরায় পড়তে চাই।

#include <stdio.h>

// স্ট্রাকচার ডিক্লেয়ারেশন
struct Student {
    int roll;
    char name[50];
    float marks;
};

int main() {
    FILE *file;
    struct Student s1 = {1, "Alice", 85.5}; // ডেটা ইনিশিয়ালাইজ

    // বাইনারি ফাইলে ডেটা লেখা
    file = fopen("student.dat", "wb"); // বাইনারি লেখার মোডে ফাইল খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    fwrite(&s1, sizeof(struct Student), 1, file); // fwrite ফাংশন ব্যবহার করে লেখা
    fclose(file); // ফাইল বন্ধ

    // বাইনারি ফাইল থেকে ডেটা পড়া
    struct Student s2;
    file = fopen("student.dat", "rb"); // বাইনারি পড়ার মোডে ফাইল খোলা
    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }
    fread(&s2, sizeof(struct Student), 1, file); // fread ফাংশন ব্যবহার করে পড়া
    fclose(file); // ফাইল বন্ধ

    // পড়া ডেটা প্রদর্শন
    printf("Roll: %d\n", s2.roll);
    printf("Name: %s\n", s2.name);
    printf("Marks: %.2f\n", s2.marks);

    return 0;
}

আউটপুট:

Roll: 1
Name: Alice
Marks: 85.50

টেক্সট এবং বাইনারি ফাইলের মধ্যে পার্থক্য

বৈশিষ্ট্যটেক্সট ফাইলবাইনারি ফাইল
ডেটা স্টোরেজASCII বা ইউনিকোডে ক্যারেক্টার হিসেবেবাইনারি ফরম্যাটে (0 এবং 1) সংরক্ষণ
মানুষের জন্য পাঠযোগ্যপাঠযোগ্যসাধারণত পাঠযোগ্য নয়
ফাইল সাইজতুলনামূলক বড়তুলনামূলক ছোট
স্পেসিফিকেশনলাইন ব্রেক এবং ট্যাব সংরক্ষণ করেকেবল বাইনারি ডেটা সংরক্ষণ করে
প্রসেসিং গতিতুলনামূলক ধীরতুলনামূলক দ্রুত

ফাইল হ্যান্ডলিং টিপস

  • ফাইল খোলার পরে অবশ্যই fclose() দিয়ে ফাইল বন্ধ করতে হবে।
  • ফাইলের মোড সঠিকভাবে নির্বাচন করতে হবে, যেমন লেখার জন্য w, পড়ার জন্য r, এবং বাইনারি লেখার জন্য wb
  • ফাইলের কার্যক্রম সফল হয়েছে কিনা তা যাচাই করতে fopen() বা fread() এর রিটার্ন ভ্যালু পরীক্ষা করা উচিত।

সংক্ষেপে

  • টেক্সট ফাইল: সহজে পড়া এবং সম্পাদনযোগ্য, কিন্তু বড় ডেটার জন্য তুলনামূলক কম কার্যকর।
  • বাইনারি ফাইল: বড় এবং জটিল ডেটা সংরক্ষণে কার্যকর এবং দ্রুত, কিন্তু সাধারণত মানুষের জন্য পাঠযোগ্য নয়।

টেক্সট এবং বাইনারি ফাইল হ্যান্ডলিং সি প্রোগ্রামে ডেটা সংরক্ষণ এবং পুনরুদ্ধারে গুরুত্বপূর্ণ ভূমিকা পালন করে, যা প্রোগ্রামিংয়ে ডেটা ম্যানেজমেন্টকে সহজ করে।

Content added By

ফাইল EOF এবং ত্রুটি চেকিং

288

সি প্রোগ্রামিং ভাষায় EOF (End of File) এবং ত্রুটি চেকিং ফাইল হ্যান্ডলিংয়ের ক্ষেত্রে গুরুত্বপূর্ণ বিষয়। EOF এবং ত্রুটি চেকিং ফাইল থেকে ডেটা পড়া ও লেখার সময় সঠিক ডেটা প্রাপ্তি এবং ত্রুটি নির্ণয় নিশ্চিত করে।

EOF (End of File)

EOF হলো ফাইলের শেষ চিহ্নিতকারী, যা নির্দেশ করে যে ফাইলের সমস্ত ডেটা পড়া শেষ হয়েছে। fscanf(), fgets() বা অন্য কোনো পড়ার ফাংশন ব্যবহার করার সময়, ফাইলের শেষ প্রাপ্ত হলে এটি EOF রিটার্ন করে। EOF সাধারণত -১ হিসেবে ডিফাইন করা থাকে, যা stdio.h লাইব্রেরির মধ্যে সংজ্ঞায়িত।

উদাহরণ: EOF চেক করে ফাইল পড়া

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");  // ফাইলটি পড়ার জন্য খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    printf("Data from file:\n");
    while (fscanf(file, "%[^\n]\n", text) != EOF) {  // EOF চেক করা হচ্ছে
        printf("%s\n", text);
    }

    fclose(file);  // ফাইল বন্ধ
    return 0;
}

ব্যাখ্যা:

  • fscanf() ফাংশন প্রতিটি লাইনে ডেটা পড়ে এবং যখন ফাইলের শেষ আসে, এটি EOF রিটার্ন করে, ফলে লুপটি বন্ধ হয়।

ত্রুটি চেকিং

ফাইল অপারেশনের সময় কোনো ত্রুটি হয়েছে কিনা তা নিশ্চিত করার জন্য সি প্রোগ্রামিংয়ে কিছু ফাংশন ব্যবহার করা হয়। সাধারণ ত্রুটি চেকিংয়ের জন্য ferror() এবং feof() ফাংশন ব্যবহার করা হয়।

১. ferror() ফাংশন

ferror() ফাংশন ব্যবহার করে চেক করা হয় যে ফাইল অপারেশনে কোনো ত্রুটি ঘটেছে কিনা। এটি যদি কোনো ত্রুটি খুঁজে পায়, তাহলে একটি নন-জিরো ভ্যালু রিটার্ন করে।

গঠন:

int ferror(FILE *stream);

উদাহরণ: ferror() ফাংশন ব্যবহার করে ত্রুটি চেক করা

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("non_existing_file.txt", "r");  // একটি অপ্রাপ্য ফাইল খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
    } else {
        if (fscanf(file, "%s", text) == EOF) {
            if (ferror(file)) {
                printf("Error reading file.\n");
            }
        }
        fclose(file);
    }
    return 0;
}

আউটপুট:

File could not be opened.

ব্যাখ্যা:

  • এখানে ferror() ফাংশন চেক করে যে ফাইল থেকে পড়ার সময় কোনো ত্রুটি হয়েছে কিনা।

২. feof() ফাংশন

feof() ফাংশন ব্যবহার করে চেক করা হয় যে ফাইলের শেষ (EOF) পৌঁছানো হয়েছে কিনা। এটি ফাইল অপারেশনের সময় EOF পৌঁছালে একটি নন-জিরো ভ্যালু রিটার্ন করে।

গঠন:

int feof(FILE *stream);

উদাহরণ: feof() ফাংশন ব্যবহার করে EOF চেক করা

#include <stdio.h>

int main() {
    FILE *file;
    char text[100];

    file = fopen("example.txt", "r");  // ফাইল খোলা

    if (file == NULL) {
        printf("File could not be opened.\n");
        return 1;
    }

    while (fscanf(file, "%s", text) != EOF) {
        printf("%s ", text);
    }

    // EOF পৌঁছানোর চেক
    if (feof(file)) {
        printf("\nReached the end of file.\n");
    } else {
        printf("\nDid not reach the end of file.\n");
    }

    fclose(file);
    return 0;
}

আউটপুট:

Data from file...
Reached the end of file.

ব্যাখ্যা:

  • feof() ফাংশন নিশ্চিত করে যে ফাইলের শেষ পর্যন্ত পড়া হয়েছে কিনা। EOF পৌঁছালে এটি নন-জিরো রিটার্ন করে।

সংক্ষেপে EOF এবং ত্রুটি চেকিং ফাংশনের সংক্ষিপ্তসার

ফাংশনব্যবহার
ferror()ফাইল অপারেশনে কোনো ত্রুটি ঘটেছে কিনা তা চেক করে।
feof()ফাইলের শেষ পৌঁছানো হয়েছে কিনা তা চেক করে।

প্রয়োজনীয় টিপস

  • ফাইল অপারেশন সফল হয়েছে কিনা তা যাচাই করার জন্য ferror() এবং feof() ব্যবহার করা উচিত।
  • EOF চেক করে লুপ চালানো ফাইল পড়ার সময় একটি সাধারণ এবং কার্যকর পদ্ধতি।
  • ফাইল হ্যান্ডলিংয়ের কাজের শেষে fclose() ব্যবহার করে ফাইল বন্ধ করা সবসময়ই নিরাপদ প্রোগ্রামিংয়ের চর্চা।

এই ফাংশনগুলো ব্যবহার করে ফাইল হ্যান্ডলিংয়ের কার্যক্রম আরও নির্ভুল এবং নির্ভরযোগ্যভাবে সম্পাদন করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...