You are on page 1of 7

‫املادة‪ :‬ابساكل‬

‫املوضوع‪ :‬امللفات‬
‫‪ -1‬مدخل ‪ :‬لتكن دلينا رشكة هبا مستخدمني‪ ,‬لك مستخدم دليه املعلومات التالية‪:‬‬
‫اإلمس‪,‬اللقب‪,‬اترخي امليالد و الوظيفة‪-.‬‬
‫كيف نتحصل عىل املستخدمني اذلين تفوق أعامرمه عن ‪ 60‬سنة؟ من الصعب أن جند احلل‬
‫ابستخدام هيالك املعطيات املدروسة سابقا فيجب علينا إستخدام امللفات‪.‬‬
‫‪ -2‬هيالك امللفات‪ :‬ميكن بناء ملفات عىل مستوايت خمتلفة ‪ ,‬ميكن تقسمي امللفات إىل تسجيالت‬
‫كام ميكن تقسمي هده التسجيالت إىل حقول و احلقول بدورها إىل حقول جزئية‪.‬‬
‫‪ -3‬تعريف التسجيةل‪ :‬يه جتميع املعطيات أو املعلومات املهيلكة عىل أساس حقول نفس العنرص ‪.‬‬
‫مثال‪ :‬ملف املستخدمني لرشكة ما ميكن أن حيتوي عىل املعلومات التالية‪:‬التسجيةل تتكون من رمق‬
‫املستخدم‪ ,‬اإلمس‪,‬اللقب‪,‬اترخي امليالد‪ ,‬رمق الضامن اإلجامتعي‪ ,‬العنوان‪-.‬‬
‫أ‪ -‬املعرف‪ :‬و هو حقل خاص يسمح بتعيني و تصفية واحدة احلقول األخرى يف‬
‫املثال السابق رمق املستخدم هو املعرف‬
‫ب‪ -‬احلقل‪ :‬هو مجموعة من احلروف يف تسجيةل و هو يعني معلومة تستعمل يف‬
‫املعاجلة‪.‬‬
‫‪ -4‬طريقة تنظمي امللفات‪ :‬تسمى طريقة البحث عن التسجيةل نوعية البلوغ و البلوغ يكون‬
‫دليه عالقة مبارشة مع ما يسمى بطريقة التنظمي ‪,‬دلينا مفهومني جيب التفريق بيهنام‬
‫البلوغ و التنظمي‪.‬‬
‫‪ -‬بلوغ تسلسيل يتطلب تنظمي تسلسيل‬
‫‪ -‬بلوغ مبارش يتطلب تنظمي مبارش‪.‬‬
‫‪ -‬لتنظمي املفهرس و يكون البلوغ فيه تسلسيل مبارش‪.‬‬
‫‪ -5‬امللفات يف الباساكل‪ :-‬لك امللفات املستعمةل ف لغة الباساكل‪ -‬يه تسلسلية‪ ,‬منحى البلوغ إىل‬
‫التسجيالت يكون تسلسيل (البلوغ‪ -‬إىل تسجيةل يكون ابملرور عىل التسجيةل اليت تسبقها)‪.‬‬
‫التسجيالت يف لباساكل‪ -:‬نوع التسجيةل يف الباساكل‪ -‬يعطى ابلترصحي بلك حقول التسجيةل‬
‫نوع طريقة الترصحي ابملتغريات ‪nom-type‬‬

‫‪1‬‬
‫مثال ‪ :‬الترصحي ابلتارخي‪:‬‬
‫‪Date : record‬‬
‫;‪Jour: 1…31‬‬
‫;‪Mois: 1…12‬‬
‫;‪Anne : 1…1999‬‬
‫;‪End‬‬
‫‪Var‬‬
‫;‪Date: dates‬‬
‫‪12/05/1985‬‬ ‫تسجيالت‬ ‫ملف‬
‫‪20/01/1980‬‬

‫مثال‪ :‬كتابة املقطع من الربانمج ادلي يعني هل املستخدم رجل أم إمرأة مع العمل أن من املستخدمني‬
‫من دليه املعلومات التالية‪ -:‬اإلمس و اللقب ال يتعدى ‪ 25‬حرف‪ ,‬اترخي امليالذ‪ ,‬اجلنس احلاةل العائلية‪.‬‬

‫‪ -6‬الترصحي ابمللفات‪ :‬يكون إبستعامل اللكمة الفتاح ‪file of :‬‬


‫مثال‪fichier employé: file of employé :‬‬

‫‪1‬‬
‫املادة‪ :‬ابساكل‬
‫املوضوع‪ :‬إدخال و إخـــــــــراج امللفات‬
‫‪-1‬اإلدخال‪ :‬يمتثل اإلدخال يف القراءة‬
‫القراءة‪ :‬قبل القراءة يف لك ملف جيب أوال حتضري امللف للقراءة إبستعامل اإلجراء املعرف مسبقا‬
‫‪ Reset‬و معناه حتضري امللف (‪ )f‬للقراءة و هدا بوضع رأس القراءة عىل التسجيةل األوىل يف امللف‬
‫)‪reset (f‬‬ ‫‪x‬‬ ‫‪y‬‬
‫(‪) f‬‬
‫ر‪-‬أس القر‪-‬اءة‬
‫بعد )‪reset (f‬‬
‫القراءة تكون إبستعامل اإلجراء )‪ read (f,v‬و معناه نسخ حمتوى التسجيةل احلالية يف املتغري ‪v‬‬
‫و وضع رأس القراءة عىل التسجيةل املوالية إن وجدت‬
‫‪x‬‬ ‫‪y‬‬
‫‪x‬‬ ‫‪y‬‬
‫‪x‬‬ ‫‪y‬‬ ‫بعد القر‪-‬اءة‬
‫قبل القر‪-‬اءة‬ ‫‪v‬‬
‫‪x‬‬
‫بعد القر‪-‬اءة‬
‫‪ -2‬اإلخـــــــراج‪ -:‬نبدأ كتابة امللف ابستعامل اإلجراء )‪ rewrite(f‬و يصبح امللف فارغا‪.‬‬
‫‪v‬‬

‫‪ -‬إضافة تسجيةل أخرى يكون إبعطاء اإلجراء )‪write(f‬‬


‫مترين‪ :‬أكتب الربانمج ادلي يفجـر ملف مستخديم رشكة إىل ملفني‪,‬األول حيتوي عىل العامل ادلين‬
‫تفوق أعامرمه ‪ 60‬سنة و األخر يضم البايق مع العمل أن امللف يضم‪ :‬اإلمس و اللقب‪,‬العمر‪ ,‬رمق الضامن‬
‫اإلجامتعي‪ Eof (f) .‬تعين هل وصلت إىل هناية امللف أم ال‪.‬‬

‫‪Program éclatement‬‬
‫‪Type‬‬
‫‪Employé=record‬‬
‫]‪Nom, prenom:string[25‬‬
‫;‪Age:integer‬‬
‫;‪Nss:integer‬‬
‫;‪End‬‬
‫‪Var‬‬
‫‪1‬‬
employé1:employe
Persone,persone1,persone2 file of employe
Begin
Reset (persone);
Rewrite (persone1);
Rewrite (persone1);
While not eof persone do
Begin
Read(persone1,employe1)
If employe1.age>60 then
Write(persone1,employe1)
Else
Write(persone2,employe2),
End;
End.

‫ و تستعمل عىل التسجيالت إلختصار الكتابة يف‬-‫ تستعمل لتفادي التكرار‬: with ‫التعلمية‬-3
.‫البلوغ إىل احلقول‬
:‫مثال‬
With v do
Begin
Write (nom;prénom)
If sex= Femina then
Wriet (femme)
Else
Write (homme);

1
End;
‫ حلجز ماكن للملف عىل القرص الصلب نستعمل‬-
Assign (f,fich.txt)
‫ أكتب الربانمج ادلي ميأل ملف املستخدمني ة معلية املأل تقتيض إستشارة املستعمل هل‬:‫مترين‬
nom,prenom,nns,conf : ‫يواصل املأل أم ال ؟ مع العمل أن ملف املستخدمني يتكون من‬

Program creation
Type
Employ =record
Nom,prénom,conf : string[25]
Nss:integer;
End;
Var
V:employ;
F: file of employ;
Trouve : booléen; cont:char;
Begin
Assign (f:fich.txt)
Rewrite(f); Trouve:=true;
With trouve do
Begin
With v do
Begin
Writeln('nom');
Readln('nom');
Writeln('prenom');
Readln('prenom');

1
‫;)'‪Writeln('nns‬‬
‫;)'‪Readln('nns‬‬
‫;)‪Write(f,v‬‬
‫;)?‪Write ('voulez vous continue' o/n‬‬
‫;)‪Read(cont‬‬
‫‪If cont= 'o' then‬‬
‫‪Trouve:=true‬‬
‫‪Else‬‬
‫;‪Trouve:=faux‬‬
‫;‪End‬‬
‫;‪End‬‬
‫‪End.‬‬

‫ملفات النصوص‪ :‬للترصحي بلفات النصوص نستعمل‬


‫‪File of char‬‬
‫‪ -‬ملفات النصوص املهيلكة سطراي أي تتكون من مجموعة من األسطر و اليت تتكون‬
‫من مجموعة من احلروف قد تكون فارغة ‪.‬‬
‫‪ -‬ملعرفة هل السطر أنهتى أم ال نستعمل الوظيفة‪EOL -‬‬
‫مترين‪ :‬أكتب الربانمج ادلي حيسب عدد احلروف و الباضات يف ملف نص؟‪.‬‬

‫‪Program compte‬‬

‫‪1‬‬
Cont blan=' ';
Var
f.txt:text;
car :char;
nbl,nbnl: integer;
begin
nbb.=0; nbnb:=0;
reset(f.txt);
while not eof (f.txt) do
begin
read(f.txt,car);
if car=blan then
nbb:=nbb+1
else
nbnb:=nbnb+1;
end,
write(nbb,nbnb);
end.

You might also like