أهداف الدرس
- التعرف على مفهوم الملفات (Fichiers) في لغة Pascal.
- معرفة أنواع الملفات (Textuelles et Typées).
- كتابة برامج لقراءة وكتابة الملفات.
1. مفهوم الملفات في Pascal
الملف (File) هو مجموعة من البيانات المخزنة على القرص الصلب يمكن الوصول إليها ومعالجتها بشكل دائم. يوجد نوعان رئيسيان:
- الملفات النصية (Text Files): تخزن البيانات على شكل نصوص (يمكن قراءتها بمحرر نصوص).
- الملفات المنوعة (Typed Files): تخزن البيانات بنفس تركيب المتغير في الذاكرة (مثل مجموعة من الأعداد).
2. الإجراءات الأساسية للتعامل مع الملفات
| الإجراء | الوصف | الاستخدام |
|---|---|---|
| Assign(f, nom) | ربط متغير الملف باسم الملف على القرص | Assign(f, ‘data.txt’) |
| Reset(f) | فتح الملف للقراءة | Reset(f) |
| Rewrite(f) | إنشاء / فتح الملف للكتابة | Rewrite(f) |
| Append(f) | فتح الملف للإضافة (في النهاية) | Append(f) (للملفات النصية) |
| Read(f, var) | قراءة بيانات من الملف | Read(f, x) |
| Write(f, val) | كتابة بيانات إلى الملف | Write(f, x) |
| ReadLn(f, var) | قراءة سطر كامل (ملفات نصية) | ReadLn(f, ligne) |
| WriteLn(f, val) | كتابة سطر (ملفات نصية) | WriteLn(f, ligne) |
| Close(f) | إغلاق الملف | Close(f) |
| Eof(f) | التحقق من نهاية الملف (End Of File) | while not Eof(f) do |
3. الملفات النصية (Text Files)
تعتبر الملفات النصية الأكثر استخداماً. لكتابة بيانات وقراءتها:
var
f: Text; { نوع الملف النصي }
ligne, nom: string;
begin
Assign(f, 'etudiants.txt');
Rewrite(f);
WriteLn(f, 'Ahmed');
WriteLn(f, 'Sara');
WriteLn(f, 'Mohamed');
Close(f);
{ قراءة الملف }
Reset(f);
while not Eof(f) do
begin
ReadLn(f, ligne);
WriteLn(ligne);
end;
Close(f);
end.
4. الملفات المنوعة (Typed Files)
تخزن بيانات من نفس النوع (مثل مجموعة أعداد صحيحة).
var
f: file of Integer;
i, n, val: Integer;
begin
Assign(f, 'nombres.dat');
Rewrite(f);
for i := 1 to 10 do
Write(f, i * 5);
Close(f);
{ قراءة }
Reset(f);
while not Eof(f) do
begin
Read(f, val);
WriteLn(val);
end;
Close(f);
end.
5. تمارين محلولة (بكالوريا)
التمرين 1:
أكتب برنامجاً ينشئ ملفاً نصياً يحتوي على أسماء 5 طلاب يدخلهم المستخدم.
program CreerFichier;
var
f: Text;
nom: string;
i: Integer;
begin
Assign(f, 'eleves.txt');
Rewrite(f);
for i := 1 to 5 do
begin
Write('Nom de l''eleve ', i, ': ');
ReadLn(nom);
WriteLn(f, nom);
end;
Close(f);
WriteLn('Fichier cree avec succes.');
readln;
end.
التمرين 2 (بكالوريا):
يحتوي ملف ‘notes.txt’ على عدد من الأعداد (الواحد في كل سطر). أكتب برنامجاً يقرأ هذه الأعداد ويحسب ويعرض متوسطها.
program MoyenneNotes;
var
f: Text;
note: Integer;
somme, count: Integer;
moyenne: Real;
begin
Assign(f, 'notes.txt');
Reset(f);
somme := 0;
count := 0;
while not Eof(f) do
begin
ReadLn(f, note);
somme := somme + note;
count := count + 1;
end;
Close(f);
if count > 0 then
begin
moyenne := somme / count;
WriteLn('Moyenne: ', moyenne:0:2);
end
else
WriteLn('Fichier vide.');
readln;
end.
خلاصة
الملفات تسمح بتخزين البيانات بشكل دائم ومعالجتها لاحقاً. تذكر دائماً إغلاق الملف بعد الانتهاء من المعالجة لتجنب فقدان البيانات.
📍 دروس مشابهة:
- هياكل التحكم في لغة Pascal (If, Case, For, While, Repeat) — الثانية ثانوي (شعبة تقني رياضي) — الإعلام الآلي
- العالم العربي: الوحدة والتنوع في المجال الجغرافي – الثانية ثانوي
- مشكلة الوجود والعدم في الفلسفة: مفهوم الوجود والعدم ومواقف الفلاسفة (سارتر، هيدغر، ابن سينا) — الفلسفة — الثانية ثانوي — المنهاج الجزائري
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.