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


.:رسمه مبدع:. طريقك نحو الابداع
 
الرئيسيةالبوابهأحدث الصورالتسجيلدخول
اهلاوسهلا بكم في منتديات برامج نت ارجو من جميع الزوار التسجيل مع تحيات $الادارة$

 

 تابع دوره فى لغه السى 15

اذهب الى الأسفل 
كاتب الموضوعرسالة
PrAmJnEt
مدير عام
مدير عام
PrAmJnEt


ذكر عدد المساهمات : 396
نقاط : 146692
العمر : 65

تابع دوره فى لغه السى 15 Empty
مُساهمةموضوع: تابع دوره فى لغه السى 15   تابع دوره فى لغه السى 15 Emptyالإثنين مايو 11, 2009 1:49 pm

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

الملفات مع السي



هل فكرت يوماً بعمل برنامج ولنقل مثلاً لمكتب عقاري ؟
هل
فكرت يوماً بعمل برنامج يقوم بعمل معين ولكنك تحتاج إلى البيانات الموجوده
فيه مسبقاً و لا تريدها ان تضيع بمجرد إقفال البرنامج ؟

الحل
سيكون إستخدام الملفات بالتأكيد ...فهي المعنى الحقيقي للبرمجة و هي التي
تقوم بجعل البرامج العديمة الفائدة مفيدة جداً , فتخيل برنامج Word مثلاً
بدون الملفات ؟!!! لن يكون له اي فائدة عدى القليل جداً .

طبعاً اقصد بالملفات هي الحفظ و الفتح التي تقوم بها يوميا تقريباً في برامجك .

عموماً لن نطيل في هذه المقدمات كثيراً و لنبداء البرمجة بإستخدام الملفات :



الملفات في أي لغة [b]لن تتعامل معها مباشرة
( أي بإسم الملف ) و لكنك ستتعامل مع مؤشر إلى الملف و لنبدأ:
أولاً كيف يمكننا أن نعرف مؤشر إلى ملف ؟
________________________________________________________________________________
1. التعريف :


FILE *file_pointer;
مع العلم ان كلمة FILE لابد ان تكون بالحروف الكبيره و file_pointer هي كلمة إختيارية تختارها أنت و لتكن مثلاً fp لسهولة الإستعمال و لكن لابد أن تسبق بالعلامة *
فقط في التعريف ( كما هو موضح في الأعلى ) أي أن المتغير سيكون مؤشر للملف.

__________________________________________________________________________________

2. فتح الملف :
لابد من فتح الملف قبل إستخدامة مثلة مثل فتح ( تشغيل ) الكمبيوتر قبل إستخدامة
ولفتح الملف سنستعمل الدالة التالية :



FILE *fopen ( const char *filename, const char *mode ) ;


الـ filename هو إسم الملف الذي يكون ظاهر للمستخدم مثلاً talal.txt
و الـ mode هو طبيعة فتح الملف فهناك اكثر من صفة لفتح الملف سأذكرها بعد قليل
فلو كان لدينا هذا التعريف :


FILE *fp;

و نريد ان نفتح ملف إسمة talal.txt فسنفتحه بالطريقة التالية :


fp = fopen( "talal.txt", "w" ) ;

إذا لم يتمكن النظام من فتح الملف سنعيد في الـ fp قيمة NULL .
و لنرى الصفات التي تفتح عليها الملفات :



[table:632e id="AutoNumber1" style="border-collapse: collapse;" class="posting-table" border="1" bordercolor="#111111" cellpadding="0" cellspacing="0" width="100%"][tr][td width="15%"]الطريقة[/td][td width="85%"]الوصف[/td][/tr][tr][td width="15%"]r[/td][td width="85%"]open a text file for reading أي فتح ملف للقراءة[/td][/tr][tr][td width="15%"]w[/td][td width="85%"]open a text file for writing أي فتح ملف للكتابة و إذا كان الملف موجود يقوم بمسح محتوياته[/td][/tr][tr][td width="15%"]a[/td][td width="85%"](open a text file for appending (adding info to the END of file فتح للإضافة إلى النهاية[/td][/tr][tr][td width="15%"]+r[/td][td width="85%"]( opening a text file for update ( reading and writing فتح ملف للتحديث ( قرائة و كتابة )[/td][/tr][tr][td width="15%"]+w[/td][td width="85%"]open a text file for update. If the file exists it is truncated to zero length. If it does not exists it is created
يفتح ملف للتعديل ( للقرائة و الكتابة ) إذا كان الملف موجود فإنة تلغى محتوياته
أما إن لم يكن موجود فإن النظام ينشأة
[/td][/tr][tr][td width="15%"]+a[/td][td width="85%"]open
a text file for update ( reading and writing ). Writing is only allowed
at the end of file. But any part of the file can be readed. If the file
does not exists the system create it

فتح
الملف للتعديل و التحديث و لكن الإضافة تكون في نهاية الملف و بينما
القرائة تكون من أي مكان في الملف. إذا لم يكن الملف موجود اصلاً فإن
النظام تقوم بإنشاء هذا الملف.
[/td][/tr][tr][td colspan="2" width="100%"]Adding a 'b' changes the file type from text to binary. Apart from that the string will have the same effect.
و
عند إضافة الحرف 'b' إلى نوع الفتح سيتغير من فتح ملف من نوع text إلى فتح
من نوع binary. و سيكون لملف الـ Binary نفس خصائص الحروف بالـ text .
[/td][/tr][/table]






إذاً إذا أردنا أن نفتح ملف للقرائة منه ماذا نفعل ؟
الجواب هو كالتالي :



fp = fopen("talal.txt", "r");


و إذا أردنا فتح الملف للقراءة و الكتابة معاً يمكننا ذلك بطرق أحدها:




fp = fopen("talal.txt", "r+"); // OR by using w+ OR using a+


________________________________________________________________________________



3. إغلاق الملف :


كما فتحنا الملف في البداية لابد من اإغلاقة عند الإنتهاء منه أليس كذلك ؟!!
بالتأكيد سنغلقة في حال إنتهينا من إستعمال الملف و الدالة المسؤلة عن إغلاق الملف هي:


int fclose(FILE *file_pointer );


هكذا فقط Smile .
فلو كان عندنا التعريف التالي :


FILE *fp ;
fp = fopen("talal.txt", "w") ;


سنغلق هذا الملف هكذا :


fclose ( fp ) ;


فقط, هذا كل ما في الأمر. أليس هذا سهلاً ؟!!


وإذا لم ينفتح الملف لأي سبب من الأسباب كأمتلاء الذاكرة, ستعيد الدالة القيمة NULL.


_________________________________________________________________________________

4. الإدخال و الإخراج من الملفات ( I/O with files ) :


الآن
قد انتهينا من كيفية فتح و إغلاق الملفات إلى هذه النقطة لم نتعلم كيف
نحفظ ما قمنا بعمله, للقيام بذلك هناك عدة دوال مسؤالة عن هذا الشيء منها:
الدالة الأولى هي :


int putc( char ch, FILE *file_pointer );


و هي موجوده ضمن ملف stdio.h .
و لنأخذ مثال على هذه الدالة :


#include "stdio.h"
main()
{
FILE *fp ;
char ch ;
fp = fopen("talal.txt", "w");
while( ( ch = getche() ) != 'r' )
putc(ch, fp);

fclose(fp) ;
return 0 ;
}


لقد
قمت بتنفيذ هذا البرنامج فوجدت ملف إسمة talal.txt في نفس المجلد الذي
يوجد به الكود الذي نفذتة فوجدت بداخلة الجملة التي كتبتها و هي :


Hi this is Talal


بعد تنفيذ البرنامج الأول لنقم بكتابة هذا الكود بعده :



#include "conio.h"
#include "stdio.h"
main()
{
FILE *fp ;
char ch ;
fp = fopen("talal.txt", "r");
while( (ch = getc(fp) ) != EOF )
printf("%c",ch);

fclose(fp) ;
return 0 ;
}


هذا
الكود يقوم بقرائة الملف و طباعة محتواه على الشاشة , و لكن ما هي و ظيفة
الدالة getc ؟ هذه دالة للقرائة من ملف و هي على الصيغة التالية :


char getc( FILE *file_pointer ) ;


و هي توجد في الملف stdio.h , ولشرح هذا البرنامج بالتفصيل :
عرفنا مؤشر إلى ملف بإسم fp , ثم قمنا بفتح الملف بإستخدام الدالة fopen و فتحناه على صيغة قرائة من ملف 'w' , الان مؤشر الملف على اول حرف في الملف , ثم دخلنا الدوارة while فنقراء أول حرف و نضع قيمتة في الـ ch و نقارنة بالقيمة EOF و هي تعني
End Of File ( نهاية الملف ) فنستمر في القرائة من الملف و نطبع على الشاشة قيمة الـ ch إذا لم تكن EOF
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://rsma-m.yoo7.com
 
تابع دوره فى لغه السى 15
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» تابع دوره فى لغه السى 19
» تابع دوره فى لغه السى 11
» تابع دوره فى لغه السى 12
» تابع دوره فى لغه السى 13
» تابع دوره فى لغه السى 16

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
.:رسمه مبدع:. :: ¨°o.O (لغات البرمجه) O.o°¨ :: .:لغه السى والسى++ والسى#:.-
انتقل الى: