منتدى المنصورة برج بوعريريج التعليمية

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
منتدى المنصورة برج بوعريريج التعليمية

منتدى اسلامي تعليمي

AWSurveys

المواضيع الأخيرة

» شركة تركيب وصيانة مكيفات مركزية بالرس
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالأحد مايو 05, 2024 7:07 pm من طرف سها مجدى

» غسيل مكيفات سبليت بالرياض
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالأربعاء أبريل 17, 2024 5:59 pm من طرف سها مجدى

» شركة تشطيب فلل بالباحة
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالثلاثاء أبريل 09, 2024 6:36 pm من طرف سها مجدى

» شركة مقاولات بالمبرز
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالأربعاء أبريل 03, 2024 4:53 pm من طرف سها مجدى

» شركة نقل عفش بالرياض الياسمين
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالجمعة مارس 22, 2024 7:02 pm من طرف سها مجدى

» مقاول اسفلت بالرياض
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالخميس مارس 14, 2024 12:12 am من طرف سها مجدى

» شركة تركيب المصاعد بعسير
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالجمعة مارس 08, 2024 8:34 pm من طرف سها مجدى

» مبلطين ممتازين بالرياض
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالثلاثاء مارس 05, 2024 10:49 pm من طرف سها مجدى

» شركة مقاولات بخميس مشيط
المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Emptyالسبت مارس 02, 2024 11:03 pm من طرف سها مجدى

التبادل الاعلاني

احداث منتدى مجاني

أفضل 10 أعضاء في هذا المنتدى


    المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire

    avatar
    Admin
    Admin


    رقم العضوية : 1
    عدد المساهمات : 1077
    دينار : 3245
    السٌّمعَة : 0
    تاريخ التسجيل : 12/03/2010
    العمر : 33
    الموقع : www.mansourahsidhoum.yoo7.com

    المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire  Empty المختصر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire

    مُساهمة  Admin الثلاثاء سبتمبر 12, 2023 9:57 pm

    صر المفيد في C ~~ التعامل مع ملفات النظام الثنائي Les Fichiers Binaire ~~
    ا

    السلام عليكم ورحمة الله

    إنَّ الحَمْدَ لِلَّهِ نَحْمَدُهُ وَنَسْتَعِيُنُهُ وَنَسْتَغْفِرُهُ وَنَسْتَهْدِيهِ وَنَعُوذَ بِاللهِ مِن شُرُورِ أََنفُسِنَا وَسَيئَاتِ أَعْمَاِلَنَا،

    مَن يَهْدهِ اللهُُ فَلا مُضلَّ لَه ، وَمَن يُضْلِل فَلا هَادِي لَه، وَأَشْهَدُ أَنَّ لاَ إِلهَ إلا اللهُ وَحدَهُ لاَ شَريكَ لَهُ،

    وَأَشْهدُ أنَّ مُحَمَّداً عَبدُهُ وَرَسُولُهُ .

    أهْلاً وسَهْلاً بِكُم إخْوانِي روّاد مُنتَدانَا الحَبِيبِ

    لغات البرمجة







    أكيد أثااركم العنوان وهو عنوان مقتبس من إحدى الكتب التعليمية بالمغرب منهل ، مرشدي ، المفيد ، الكبير ، الصغيل ، المختصر ، الرائع ، الجميل، مرشدي ، صديقي .. عنوانين لا علاقة لها بالتعليم ولا بالدراسة ، تثيرك هاته العناوين وعندما تدخل للكتاب لا علاقة ... وأذكر كتاب الفزياء في الباكالوريا 75 في المئة من الكتاب عبارة عن صور و 15 في المئة عبارة عن عناوين 8 في المئة أسئلة وتمارين و الباقي - حسب معا راسك - هو الأهم ، يعني ملي تبغي تدوز الامتحان غاتدوز في الصور ماشي في المضمون ، تذكرت هذا وأنا أتصفح كتبي القديمة وبمناسبة الحديث عن الكتب و الدفاتر والملفات فإن شاء الله سيكون درسنا اليوم خاص بالحديث عن نوع محدد من الملفات ، ليس الملفات الإدارية التي نتعب في جمعها بلا فائدة ،وأنا أكتب هاته الأسطر تذكرت شيئا مهما حول الوثائق والملفات الإدارية ، وهي لا توجد سوى في المغرب الحبيب هههههه، وهي أنك عندما تذهب للمقاطعة لطلب شهادة الحياة يطلبون منك أن تحضر 4 شهود يشهدون بأنك حي ، وكل واحد من الشهود يحتاج ل 4 شهود ... حلل وناقش ههههه. نعود إلى الملفات، الملفات المقصودة من خلال درسنا هذا هي الملفات التي سنتعامل معها عن طريق لغة سي.. وكما ذكرت في العنوان فالموضوع سيكون مختصر ولكن بشكل مفيد إن شاء الله.

    وأنت تبرمج وتكتب برنامج معين مثلا يخزن مجموعة من الكلمات أسئلت نفسك يوما ما ما الفائدة من البرنامج إن كنت كلما أخرج منها تذهب المعلومات مع مجرى الرياح .

    تصور معي أنك مهندس كبير تعمل لإحدى كبريات الشركات بالعالم ، وبرمجت برنامج يقوم بتسجيل الزبائن وأرقام هواتفهم وعناوينهم .... وتقوم ببرمجة عدة عمليات مثلا البحث عن زبون الترتيب حسب الأبجدية و و و وكان البرنامج يحتوي على الالاف من الأسطر . فمباشرة بعدما تخرج من البرنامج فباي باي لكل الزبائن الذين تم تسجيلهم وباي باي للشركة ، دارت فاييت بسبب هذا المهندس الفاشل .

    لماذا اخترنا ملف binaire بالضبط ولي ملف txt أو أي نوع اخر من الملفات

    لأن ملف بينير يقوم بتشفير المحتوى ، ولا يمكن أن نطلع عليه أي يقوم ب coder المحتوى وسيظهر هذا من خلال موضوعنا هذا

    أولا كيف يمكنا أن نعرف ملف ما

    هناك نوع مخزن في مكتبة الإدخال stdio "standard input output " s وهو FILE ونقوم في البداية بتعريف مؤشر من هذا النوع عبر الاتي

    FILE *fichier;

    fichier يمكنك أي اسم اخر مكانه أنا أسميته فقط fichier ليدل على معناه ...

    يمكننا الولوج إلى ملف من خلال طريقتين :

    الطريقة الترتيبية ، وهي تمكن من التحكم والتعديل على المعلومات المخزنة في الملف بالترتيب التي توجد فيه هاته المعلومات داخل داخل الملف

    الطريقة المباشرة : الولوج إلى المعلومة التي نرغب فيها بدون الحاجة إلى أن القيام بالمعلومات التي تسبقها .

    سنتعرف الان إلى طريقة فتح ملف

    عندما نفتح ملف معينا فإنه يكون إما مفتوحا للقراءة أو الكتابة ، فمثلا عندما تفتح سورة قرآنية في المديا أو الريال بلاير فلا يمكنك أن تضيف فيها أي أنك تفتحها للقراءة فقط .. ، ولكن عندما تفتح ملف وورد فأنك تفتحه للكتابة .. ، ولكن في السي إن تم فتح ملف موجود أصلا ، وتم فتحه للكتابة فإن محتواه يلغا كليا أن أنك ستعيد الكتابة من جديد كأن الملف ليس موجودا أصلا ، لذلك توجد خاصية أخرى وهي ال append وهي القراءة والكتابة على ملف موجود سابقا .

    وسنتعرف الان على الأنماط للكتابة والقراءة على ملف..

    النمط

    تعريفه

    rb القراءة انطلاقا من ملف بينير read binaire
    wb الكتابة على ملف بينير write binaire
    +r ألقراءة/الكتابة على ملف موجود سابقا
    ab خاصية ال append ألتي تحدثنا عنها في السابق
    +a ألقراءة/الكتابة على ملف موجود سابقا

    هناك دالة خاصة لفتح ملف معين وهي كالاتي

    FILE *fichier;

    نعلن عن المؤشر أولا الذي سيؤشر على الملف

    fichier=fopen(char *nom,char *mode);

    nom : اسم الملف الذي سنفتحه

    mode : نمط فتح الملف " قراءة أو كتابة أو ..."

    ومثال : نفتح ملف بينير للقراءة

    FILE *fichier;

    char nom[]="startimes2.dat";

    fichier=fopen("startimes2.dat","wb");



    ومثال لفتح ملف للكتابة

    FILE *fichier;

    char nom[]="startimes2.dat";

    fichier=fopen("startimes2.dat","rb");



    و كتابة

    fichier=fopen("startimes2.dat","rb");

    أو

    fichier=fopen(nom,"rb");

    فهذا يدل على نفس الشئ

    أريد أن أضيف فقط بالنسبة للكتابة على ملف أنه إذا صودف وكان الملف غير موجودا فإنه يقوم بإنشاءه

    أنا وضعت startimes2.dat فهذا يعني أنه سيبحث عن الملف داخل المجلد الذي يوجد فيه البرنامج

    إن كان الملف في مسار معين فيمكن كتاية داخل المسار

    char nom[]="D:\STARTIMES\startimes2.dat";



    وعندئذ نفتح الملف بأحد أنماط الفتح

    سنبدأ أولا مع كيفية الكتابة داخل ملف بينير

    للطتابة داخل ملف سنستعمل الدالة fwrite ةالتي بارامتارتها كالاتي

    fwrite(&variable,taille,1,fichier);



    البارامتر الأول هو عنوان المتغير ،

    البارامتر الثاني هو حجم المتغير

    البارامثر الثالث هو عدد ال bloc الخاصة بالمتغير وهاته سنحتاج إليها إن كنا نعمل على الجداول ، فمثلا نريد عدم استعمال الحلقات ، والجدول طوله 50 خانة وكل خانة هي عبارة عن بلوك فإننا نكتب مباشرة بدل 1 50 ويتم parcourir ألجدول بأكمله .

    وأخير البارامتر الأخير هو المؤشر على الملف الذي نعمل عليه

    عند التعامل مع الملفات واء تعلق الأمر بالقراءة أو الكتابة يجب أن نعمل دائما test في البداية على الشكل التالي



    if(!fichier)

    {

    printf("Impossible D'ouvrir le fichier ");

    exit(-1);

    }

    ويمكن هذا التيست من التحقق من أن الملف موجود فعلا ، أو لا إن كان موجود فيقوم بالعمليات المطلوبة أما إن كان غير موجودا فيخرج من البرنامج أي أنه لا يمكن القيام بعمليات أخرى ،

    وعندما ننتهي من العمل بالملف لا ننسى أن نغلقه باستعمال الدالة fclose

    fclose(fichier);

    والان سنقوم ببرمجة برنامج صغير يكتب جملة داخل ملف بينير



    #include<stdio.h>

    #include<stdlib.h>

    #include<conio.h>

    main()

    {

    FILE *fichier;

    char nom[]="startimes2.dat";

    int n;

    fichier=fopen(nom,"wb");

    if(!fichier)

    {

    printf("Impossible D'ouvrir le fichier ");

    exit(-1);

    }

    printf("Entrer un nombre entier : ");

    scanf("%d",n);

    fwrite(&n,sizeof(char),1,fichier);

    printf("La phrase a ete enregister avec succes !! ");

    fclose(fichier);

    getch();

    }



    أظن كل شئ واضح بالنسبة للسورس كل شئ شرحته سابقا أما الباقي فاعتيادي ، المهم إن كان أي شئ غامض فتفضل بطرحه



    نذهب إلى مسار الملف أنا لم أضع المسار إذن سأجده في نفس المجلد مع البرنامج



    كل شي جميل واعتيادي نفتح الملف و ... ماهذا !!!!!!!!!!!!!! أين اختفت الكتابات أنا لم أكتب @ أنا كتبت أرقام ،

    >> هذا ياعم ما يسمى بالتشفير



    وسنعمل مثالا اخر استعمال Les chaine de caractere حتى نفهم جيدا طبيعة الدالة fwrite

    فكما تعلمون ال chiane هي عبارة عن جدول من عدو خانات وكل خانة تحتوي على حرف معين

    0\

    s

    e

    m

    i

    t

    r

    a

    t

    s


    والسامبول 0\ هو الذي يمكننا من أن نحدد نهاية ال chaine

    وسنعمل مثال أيضا حول التعليم وهي أول جملة بالفرنسية تعلمتها ، كنت أود أن أضع العربية "با بو بي " لكن الكونسول لا يدعم العربية لذا سنكتب الجملة بالفرنسية "مينا جولي مينا ، ميكي جولي ميكي "





    #include<stdio.h>

    #include<stdlib.h>

    #include<string.h>

    #include<conio.h>

    main()

    {

    FILE *fichier;

    char nom[]="startimes_2.dat";

    char chaine[100];

    fichier=fopen(nom,"wb");

    if(!fichier)

    {

    printf("Impossible d'ouvrir le fichier ");

    exit(-1);

    }

    printf("Entrer Une chaine m");

    scanf("%s",chaine);

    printf("La chaine a ete enregistrer avec succes !!);

    fwrite(&chaine,sizeof(char),strlen(chaine)-1,fichier);

    fclose(fichier);

    getch();

    وننفذ ومبرووووووك : الناس وصلو للقمر وحنا مزال نقراو ميكي جولي ميكي



    وهناك طريقة أخرى بدل استعمال ال strlen في الدالة fwrite نستعمل بوكل بحجم ال chaine وكل bloc نخصصه لحجم charactere واحد فقط..



    وبهذا نكون قد انتهينا من الشرح المخصص للكتابة من على ملف نصي

    بالنسبة للقراءة نفس الشئ تماما

    غير أننا هذه المرة نفتح ملفنا للقراءة

    fichier=fopen("startimes2.dat","rb");

    دائما نعمل التيست ، كملاحظة بالنسبة لل test يمكننا أن لا نعمله في حالة الكتابة لأن الملف إن لم يكن يكن موجود فالبرنامج يقوم بإنشاء ملف جديد بنفس الإسم المدخل.

    والمشكل الذي نصادفه في ال chaine هو الفراغات حيت أن المسافة يعتبرها نهاية ال chaine ولا يقرأ ما بعدها. لذا يجب القيام ببوكل أخرى وتيست اخر باستعمال الدالة end of file وال prototype الخاص بها هو كالاتي feof(fichier) وتدل على نهاية الملف..

    ونقوم بالتست عبر الاتي

    while(!feof(fichier))

    {


    fread( adress du variable ,taille, nbre de bloc ,fichier );

    /// الأوامر ...

    }



    ويستعمل هذا التتست في الجداول أو السجلات أي الاشياء المتكررة ، أي التي يستعمل فيها البوكل..

    ولضيق الوقت سنكتفي بإنشاء برنامج لقراءة ملفنا الأول عول العدد الطبيعي



    #include<stdio.h>

    #include<stdlib.h>

    #include<conio.h>

    main()

    {

    FILE *fichier;

    char nom[]="startimes2.dat";

    int n;

    fichier=fopen(nom,"rb");

    if(!fichier)

    {

    printf("Impossible D'ouvrir le fichier ");

    exit(-1);

    }

    fwrite(&n,sizeof(char),1,fichier);

    printf("%d",&n);

    fclose(fichier);

    getch();

    }

    وبعد التنفيذ



    صراحة يجب استعمال الدوال عند التعامل مع الملفات وليس كما فعلت أنا الان ، لكن لتبسيط الشرح وتوضيحه خالفت ذلك المهم أن تكون الفكرة قد وصلت

    وإن شاء الله سنرى أمثلة أكثر في درس التعامل مع الملفات في مدرسة المنتد إن شاء الله .

    بالنسبة لملفات txt فالتعامل معها أيضا بسيط وإن شاء الله ستكون هي عنوان موضوعنا القادم إن شاء الله وسنستعمل فيها السجلات والمؤشرات ، لنأخذ نظرة شاملة على استعمالات الملف و لا نبقى محصورين هنا..

    والدرس القادم يحتاج إلى استيعاب هذا الدرس جيدا

    قبل أن أختم الموضوع أدعو الله عز وجل أن يصلح التعليم في العالم العربي والاسلامي . لأنه الوحيد القادر على ذلك ..

    ومن لم يفهم أي نقطة فليتفضل مشكورا

    والسلام عليكم ورحمة الله وبركاته









      الوقت/التاريخ الآن هو الإثنين مايو 20, 2024 8:01 pm