الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الـ FILE * في الـ C

بدأه Anas Belheraoui في 21 سبتمبر 2011 · 7 رد · 997 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي استفسار بسيط إن شاء الله

اللغة المستخدمة: C

البرنامج المستخدم: Turbo C++

أريد معرفة طريقة عمل الـ FILE في الـ C

ما تعلمته إلى الآن هو كيفية فتح وإغلاق ملف، وما أحتاجه هو كيفية القراءة والكتابة على الملف..

شكراً لكم..

**لا بأس حتى بمراجع إنجليزية، بحثت كثيراً ولم أفهم، بعض النتائج التي توصلت لها:

http://www.mycplus.com/tutorials/c-programming-tutorials/file-handling/

http://en.wikipedia.org/wiki/C_file_input/output

http://www.exforsys.com/tutorials/c-language/file-management-in-c.html

http://www.cs.bu.edu/teaching/c/file-io/intro/#fileio1

http://www.kettaneh.net/programming/c16.htm

http://www.cprogramming.com/tutorial/cfileio.html

***يبدو أنني صعب الفهم بعد كل هذا!!

#2

أنت حتبرمج على أي نظام تشغيل ؟

وَمَا أُوتِيتُمْ مِنْ الْعِلْمِ إِلاَّ قَلِيلاً

#3
-Ahmed Hassan كتب:

أنت حتبرمج على أي نظام تشغيل ؟

fstream و stdio قياسية في اللغة، ولا يعنينا نظام التشغيل سواء Unix-like أو Windows .

تم تعديل هذه المشاركة بواسطة A.S Hack في 23 سبتمبر 2011 في 15:41

1

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

#4

طريقة القراة والكتابة

للاعلان عن ملف جديد نستعمل FILE *

مثلا :

FILE *NEWFILE;

هما اسم المؤشر هو NEWFILE ويمكن ان تسميه ما تشاء

لانشاء ملف جديد نستعمل "w"

مثلا :

     NEWFILE=fopen("fichier.txt","w");

هنا اسم الملف راح يكون

fichier.txt

طبعا الملف على صيغة

txt

الا عندنا الملف موجود و جاهز للكاتبة

ثم نكتب اي نريد اخاله في الملف

مثلا :

	   printf("Matricule"); scanf("%s",Matricule);
	   printf("Nom");       scanf("%s",Nom);
	   printf("Prenom");    scanf("%s",Prenom);

وهنا بجي دور الادخال للملف

نستعمل الدالة

fprintf

للادخال في الملفات

وراح يكون الكود كالتالي :

fprintf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

ثم بعد الادخال نقفل الملف ..

والدالة المستدمه هنا هي

fclose

مثال :

fclose(NEWFILE);

هذا نموذج مبسط وان شاء الله اكون قد استطعت مساعدتك ^^

الكود كامل

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

FILE *NEWFILE;

char Matricule[50],Nom[50],Prenom[50];

main(){
clrscr();

     NEWFILE=fopen("fichier.txt","w");

	   printf("Matricule"); scanf("%s",Matricule);
	   printf("Nom");       scanf("%s",Nom);
	   printf("Prenom");    scanf("%s",Prenom);

fprintf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

	   fclose(NEWFILE);

getch();
}

انا مبتدأ مثلك اخي ..و اول مرة احاول اشرح ^^ ان شاء الله تكون فهمت

2
#5
-Ahmed Hassan كتب:

أنت حتبرمج على أي نظام تشغيل ؟

على الويندوز

#6
layaayda كتب:

طريقة القراة والكتابة

للاعلان عن ملف جديد نستعمل FILE *

مثلا :

FILE *NEWFILE;

هما اسم المؤشر هو NEWFILE ويمكن ان تسميه ما تشاء

لانشاء ملف جديد نستعمل "w"

مثلا :

     NEWFILE=fopen("fichier.txt","w");

هنا اسم الملف راح يكون

fichier.txt

طبعا الملف على صيغة

txt

الا عندنا الملف موجود و جاهز للكاتبة

ثم نكتب اي نريد اخاله في الملف

مثلا :

	   printf("Matricule"); scanf("%s",Matricule);
	   printf("Nom");       scanf("%s",Nom);
	   printf("Prenom");    scanf("%s",Prenom);

وهنا بجي دور الادخال للملف

نستعمل الدالة

fprintf

للادخال في الملفات

وراح يكون الكود كالتالي :

fprintf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

ثم بعد الادخال نقفل الملف ..

والدالة المستدمه هنا هي

fclose

مثال :

fclose(NEWFILE);

هذا نموذج مبسط وان شاء الله اكون قد استطعت مساعدتك ^^

الكود كامل

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

FILE *NEWFILE;

char Matricule[50],Nom[50],Prenom[50];

main(){
clrscr();

     NEWFILE=fopen("fichier.txt","w");

	   printf("Matricule"); scanf("%s",Matricule);
	   printf("Nom");       scanf("%s",Nom);
	   printf("Prenom");    scanf("%s",Prenom);

fprintf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

	   fclose(NEWFILE);

getch();
}

انا مبتدأ مثلك اخي ..و اول مرة احاول اشرح ^^ ان شاء الله تكون فهمت

شكراً على ردك، تعلمت الآن كيف أضيف للملف..

أتمنى أن أعرف الجزء الآخر من السؤال وهو كيف أقرأ من الملف، لنأخذ نفس المثال الذي في الإقتباس..

أشكركم على تفاعلكم..

#7

السلام عليكم

الفصل الثامن من هذا الكتاب يشرح الملفات بتفصيل قرائة وكتابة من ملفات ثنائية ونصية وتنقل وقرائة من جزء معين والكثير

/index.php?showtopic=247472

2

------------------

حسين الربيعي

 

مهندس برامجيات من العراق

 

ادرس  في  RIT  في الولايات المتحدة

 

مدونتي

http://hussienahmmed.blogspot.com/

 

قناة اليوتيوب الخاصة بلدورات

https://www.youtube.com/user/alxs1aa

#8

السلام عليكم

سعيد لانك فهمت الجزء الاول ^^

والجزء الثاني الخاص بالقراءة من الملف اسهل بكثير ان شاء الله

مثال مبسط للقراة من الملف

نستعمل "r" نستعمل هذه لانها تقوم باستعراض كل شئ في الملف

مثلا على طريقة عملها

	 NEWFILE=fopen("fichier.txt","r");

دائما اسك الملف هو

fichier.txt

ثم نعمل حلقة

مثلا :

	 while(!feof(NEWFILE)){

	 fscanf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

	       printf("Matricule : %s\n",Matricule);
           printf("Nom : %s\n",Nom);
           printf("Prenom : %s\n",Prenom);
	   }

لاحظ اننا استعملنا هذا الشرط (feof(NEWFILE! مع الحلقة while

وهذا يعني انه اذا لم بصل بعد الى نهاية الملف NEWFILE ( يعني الى اخر سطر في الملف ...) فانه سثم أعادة تنفيذ الامر

وللقراة من الملف نستعمل الدالة

fscanf

وحسب مثالنا السابق راح يكون الكود كالتالي :

	 fscanf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

الان الملف مقروء وجاهز لاستعارض او لاظهار البيانات

ولاستعارض البينات الي ادلخنا سابقا في الملف نستعمل التالي :

	       printf("Matricule : %s\n",Matricule);
           printf("Nom : %s\n",Nom);
           printf("Prenom : %s\n",Prenom);

وفي الاخير لا ننسى قفل الملف كما فعلنا فالاول

	   fclose(NEWFILE);

وفي الاخير هذا هو الشكل النهائي للملف

شكل مبسط كثير لطريقة الادخال والاخراج من الملف ( المهم اسف اذا نسيت اي شئ او اذا لم اوفق في شرح اي شئ ...هذا لاني مبتدأ ^^ )

#include<conio.h>
#include<stdio.h>

FILE *NEWFILE;

char Matricule[50],Nom[50],Prenom[50];

main(){
clrscr();

     NEWFILE=fopen("fichier.txt","w");

           printf("Matricule "); scanf("%s",Matricule);
           printf("Nom ");       scanf("%s",Nom);
           printf("Prenom ");    scanf("%s",Prenom);

    fprintf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

           fclose(NEWFILE);



	 NEWFILE=fopen("fichier.txt","r");

	 while(!feof(NEWFILE)){

	 fscanf(NEWFILE,"%s %s %s",Matricule,Nom,Prenom);

	       printf("Matricule : %s \n",Matricule);

           printf("Nom : %s \n",Nom);

           printf("Prenom : %s \n",Prenom);
	   }

	   fclose(NEWFILE);

	   getch();
}
1

مواضيع مشابهة