بسم الله الرحمن الرحيم
عن باسكال :
باسكال لغة برمجه انشئت بواسطة Niklaus Wirth في عام 1970 . كان اسمها سابقاً Blaise Pascal , عالم الرياضيات الفرنسي المشهور . لقد صنعت هذه اللغه لتعليم البرمجه ولكي تكون محل ثقه لدى المبرمجين . منذ ذلك الوقت قد اصبحت لغة البرمجه باسكال اكثر من انها فقط لغه اكاديميه و لكنّها استخدمت تجارياً ايضا .
ما الذي احتاجه لأبدأ مع باسكال :
قبل بداية تعلم برمجة الباسكال , تحتاج إلى مترجم باسكال (compiler) . هذا الدرس يستخدم (مترجم باسكال المجاني) : http://www.freepascal.org/ . يمكنك الحصول على قائمه من مترجمات باسكال في http://www.freebyte.com/programming/pascal/#pascal_compilers .
برنامجك الاول :
اول شئ يجب ان تفعله ان تفتح مترجم الباسكال .
في هذه السلسلة المترمجة من موقع .sepsis سيتم شرح البرمجة بالباسكال بالتفصيل و بطريقة سلسة و سهلة للجميع.
دائماً نبدأ البرنامج بكتابة اسمه . ادخل program و اسم البرنامج بعدها . سوف نقوم بتسمية برنامجنا الاول "Hello" لانه سيقوم بطباعة الجمله المشهوره "Hello world" على الشاشه , سوف تكون طريقة الكتابه بهذه الطريقه :
program Hello;
بعدها يجب علينا ان نطبع الكلمتين begin و end . بعدها نقوم بكتابة شيفرة البرنامج بين هاتين الكلمتين . تذكر وضع النقطه بعد الكلمه end , هكذا ستكون صيغة ما كتبناه حتى الآن :
program Hello;
begin
end.
الآن نكتب الشيفره التي تطبع الجمله على الشاشه :
program Hello;
begin
Write('Hello world');
end.
يجب ان تكون الجمله بين علامة الاقتباس الفرديه ' . واي شي يكون بين علامة الاقتباس الفرديه عباره عن سلسله (كلمات و حروف) . كل السلاسل يجب ان تكون بهذا الشكل . علامة الفاصله المنقوطه ; هي نهاية السطر . يجب ان تتذكر دائما ان تضع هذه العلامه في نهاية سطر .
الامر Readln يستخدم لانتظار المستخدم ان يقوم بالضغط على زر الادخال لكي ينتهي البرنامج .
program Hello;
begin
Write('Hello world');
Readln;
end.
الآن يجب ان تخزّن البرنامج بإسم hello.pas
تجميع البرنامج و ترجمته :
برنامجنا الاول الآن جاهز للترجمه . عندما تقوم بترجمة البرنامج , سيقوم المترجم بقرائة الملف المصدري (الشفره التي قمت بكتابتها) و يقوم بتطبيقها . اذا كنت تستخدم مترجم من نوع IDE قم بالضغط على CTRL+F9 انها دائماً تستخدم لترجمة و تشغيل البرنامج في المترجمات من نوع IDE . اذا كنت تستخدم مترجم يعتمد على سطر الاوامر مثل Free Pascal ادخل الامر التالي :
fpc hello.pas
اذا تلقيت اي خطأ عند الترجمه يجب ان تقرأ هذا الدرس مره اخرى بعنايه لاكتشاف اين هو الخطأ . مستخدمين IDE سوف يجدون ان برنامجهم تمت ترجمته و تم تشغيله في وقت قصير . مستخدمين سطر الاوامر يجب ان يدخلون اسم البرنامج في متلقي الاوامر لكي يعمل .
يجب ان تجد الجمله "Hello world" عندما تقوم بتشغيل برنامجك و عند الضغط على زر الادخال سوف يتم الخروج من البرنامج .
مبروك ! لقد كتبت اول برنامج لك في باسكال .
المزيد من الاوامر :
الامر Writeln مثل الامر Write بإستثناء انه يقوم بنقل المؤشر إلى سطر جديد . هنا شفره لبرنامج يقوم بطباعة الكلمه Hello و بعدها world في السطر الذي يليه :
program Hello;
begin
Writeln('Hello');
Write('world');
Readln;
end.
استخدام الاوامر من الوحدات :
الاوامر التي تقوم ببنائها في مترجمك اساسيه جداً و انت تحتاج لاستخدام المزيد . الوحدات يمكن ان تُدرَج في برنامجك لكي تعطيك القدره على استخدام المزيد من الاوامر . الوحده crt احد اقوى الوحدات المفيده الموجوده . الامر ClrScr موجود من ضمن الوحده crt و استخدامها هو تنظيف الشاشه . كيفية استخدام هذا الامر :
program Hello;
uses
crt;
begin
ClrScr;
Write('Hello world');
Readln;
end.
التعليقات :
التعليقات جمل تستخدم للتعليق على احد اجزاء البرنامج . المترجم لا يعتبر التعليقات جزء من الشيفره والتعليقات فقط للاشخاص الذين يطّلعون على الشيفره المصدريه للبرنامج , التعليقات يتم اضافتها بين العلامتين { } . يفضل دائما ان تقوم بكتابة تعليقات في اول الملف تشرح فيه وظيفة الملف و ان تقوم بكتابة التعليقات بجانب الاوامر صعبة الفهم لكي تقوم بشرحها .
مثال :
{This program will clear the screen, print "Hello world" and wait for the user to press enter.}
program Hello;
uses
crt;
begin
ClrScr;{Clears the screen}
Write('Hello world');{Prints "Hello world"}
Readln;{Waits for the user to press enter}
end.
المسافات :
قد تلاحظ اننا تركنا قبل الاوامر 3 اسطر . هذه الطريقه مفيده في جعل البرنامج سهل القرائه . الكثير من المبتدئين لا يفهم سبب وضع تلك المسافات ولكن اذا بدأ بكتابة البرامج الكبيره سوف يفهم فائدتها .
لابد و انك تعلم ما هي الوحدات , تذكر ذلك عندما استخدمنا الوحده crt , قد تضطر يوماً إلى كتابة العديد من الاجراءات و الدوال . يمكنك انشاء وحدتك الخاصه ووضعك اجراءاتك و دوالك فيها .
لإنشاء وحدتك الخاصه يجب اولا ان تنشئ ملف باسكال جديد بإسم MyUnit.pas . السطر الاول يجب ان يبدأ بالكلمه unit و بعدها اسم وحدتك . اسم الوحده يجب ان تكون مثل اسم الملف .
unit MyUnit;
في السطر التالي نقوم بإضافة الكلمه interface . بعدها يجب علينا وضع اسم الاجراء الذي سوف نستخدمه من هذه الوحده . على سيبل المثال قمنا بإنشاء داله بإسم NewReadln تشبه Readln و لكنها تسمح لك بتحديد عدد الحروف التي يمكن ادخالها .
unit MyUnit;
interface
function NewReadln(Max: Integer): String;
السطر الذي يليه نضيف الكله implementation . هذا هو المكان الذي يمكنك ان تكتب في كامل شيفرتك و اجراءاتك و دوالك . سوف نحتاج إلى استخدام الوحده crt لإنشاء NewReadln . بعد الانتهاء من الوحده يجب ان نكتب الامر end للانتهاء .
unit MyUnit;
interface
function NewReadln(Max: Integer): String;
implementation
function NewReadln(Max: Integer): String;
var
s: String;
c: Char;
begin
s := ';
repeat
c := ReadKey;
if (c = #{#8 = BACKSPACE} and (s >< ') then
begin
Write(#8++#;
delete(s,length(s),1);
end;
if (c >< # and (c >< #13){#13 = ENTER} and (length(s) < Max) then
begin
Write(c);
s := s + c;
end;
until c = #13;
NewReadln := s;
end;
end.
بعدها قم بتخزين الوحده . الآن يمكننا استخدام وحدتنا MyUnit التي قمنا بإنشائها من خلال استدعاء الوحده و استخدام الداله التي فيها NewReadln .
program MyProgram;
uses
MyUnit;
var
s: String;
begin
s := NewReadln(10);
end.
هكذا نكون قد انتهينا و لله الحمد من سلسلة دروس لغة البرمجه باسكال , آملين انكم قد استفدتم و استمتعتم من هذه السلسله
ملفات المعلومات تختلف عن ملفات النصوص بأشياء بسيطه . ملفات المعلومات هي الوصول العشوائي يعني انه لا يجب ان تقرأ سطر بعد سطر بدلاً من ذلك يمكن ان تصل إلى اي جزء من اجزاء الملف في اي وقت . و طريقة تعريف ملفات البيانات :
program DataFiles;
var
f: file of Byte;
begin
end.
يجب ان تستخدم Assign بنفس طريقة استخدامها في ملفات النصوص .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
end.
يمكنك استخدام Rewrite لانشاء ملف جديد غير موجود . الاختلاف بين ملفات النصوص و ملفات المعلومات عند استخدام الامر Rewrite هو ان ملفات المعلومات يمكنك القرائه منها و الكتابة عليها .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
end.
الامر Reset مثل الامر Rewrite بإستثناء انه لا ينشئ الملف اذا كان لم يكن موجوداً :
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
end.
عندما تريد الكتابه على الملف يجب ان تستخدم الامر Write , يجب اولاً ان تضع الذي تريد كتابته على الملف في متغير , قبل الكتابه او القرائه من ملفات المعلومات يجب ان تستخدم الامر Seek للبحث عن المكان الصحيح لبداية الكتابه . يجب ان تتذكر ملف المعلومات يبدأ من الوضع 0 و ليس 1 .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
b := 1;
Seek(f,0);
Write(f,b);
end.
الامر Read يستخدم للقراءه من ملفات المعلومات .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
end.
يجب عليك ان تغلق ملفات المعلومات بعد الانتهاء منها مثل ملفات النصوص .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
Close(f);
end.
الامر FileSize يمكن استخدامه مع الامر FilePos لمعرفة متى وصلت إلى نهاية الملفات . الامر FileSize يعيد الرقم الفعلي لعدد التسجيلات و يبدأ من 1 و ليس 0 . الامر FilePos يخبرنا عن الوضع الذي هو عليه الملف الآن .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
while FilePos(f) <> FileSize(f) do
begin
Read(f,b);
Writeln(b);
end;
Close(f);
end.
الامر Truncate يحذف أي شئ في الملف من الوضع الحالي .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,3);
Truncate(f);
Close(f);
end.
احد اكثر الاشياء افادة في ملفات المعلومات هو امكانية استخدام التسجيلات و ملفات المعلومات مع بعضها البعض .
program DataFiles;
type
StudentRecord = Record
Number: Integer;
Name: String;
var
Student: StudentRecord;
begin
Assign(f,'MyFile.txt');
Reset(f);
Student.Number := 12345;
Student.Name := 'John Smith';
Write(f,Student);
Close(f);
end. الملفات النصيه عباره عن ملفات تحتوي على اسطر من النصوص . متى اردت الوصول إلى ملف في باسكال يجب عليك ان تنشئ متغير ملف اولاً
program Files;
var
f: Text;
begin
end.
بعد الاعلان عن المتغير يجب ان تسند اسم الملف للمتغير :
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
end.
لإنشاء ملف جديد فارغ استخدم الامر Rewrite . هذا الامر ينشئ اي ملف غير موجود .
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
end
الامرين Write و Writeln يعملون على الملفات على طريقه واحده على الشاشه بإستثناء البارامتر الاضافي الذي يخبرهم للكتابه في الملفات :
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
Writeln(f,'A line of text');
end.
اذا كنت تريد قرائه محتويات ملف موجود سابقاً اولاً يجب ان تستخدم الامر Reset بدلاً من Rewrite . ثانيا استخدم الامر Readln لقرائه السطور من الملف . سوف تحتاج إلى التكرار while لقرائه جميع السطور .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Reset(f);
while not eof(f) do
Readln(f,s);
end.
الامر Append يفتح الملف و يسمح لك ان تكتب المزيد من النصوص في آخر الملف .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
end.
يجب عليك اغلاق الملف بعد الانتهاء من استخدامه . اذا لم تغلقه قد تخسر بعض النصوص التي قمت بكتابتها فيه .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
Close(f);
end.
يمكنك تغير اسم ملف مع الامر Rename و حذف الملفات مع الامر Erase
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rename(f,'YourFile.txt');
Erase(f);
Close(f);
end.
للبحث عن الملف اذا كان موجود ام لا , يجب اولاً ان تتبع ذلك بإستخدام {$I-} . بعد ذلك يجب ان تقوم بإستخدام الامر Reset على الملف بعدها استخدام الجمله الشرطيه if IOResult = 2 then و معناها اذا كان الملف غير موجود , و استخدام الشرط If IOResult = 0 و معناها اذا كان الملف موجود . و اذا كانت قيمة IOResult ليست 2 او 0 نستخدم الامر Halt لإنهاء البرنامج . الـ IOResult سوف يفقد قيمته اذا تم استخدامه لمره واحده لذلك يجب علينا ان نضعه في متغير قبل استخدامه.
يجب عليك كذلك استخدام {$I+} لإعادة تتبع الاخطاء .
program Files;
var
f: Text;
IOR: Integer;
begin
Assign(f,'MyFile.txt');
{$I-}
Reset(f);
{$I+}
IOR := IOResult;
if IOR = 2 then
Writeln('File not found');
else
if IOR <> 0 then
Halt;
Close(f);
end.
عن باسكال :
باسكال لغة برمجه انشئت بواسطة Niklaus Wirth في عام 1970 . كان اسمها سابقاً Blaise Pascal , عالم الرياضيات الفرنسي المشهور . لقد صنعت هذه اللغه لتعليم البرمجه ولكي تكون محل ثقه لدى المبرمجين . منذ ذلك الوقت قد اصبحت لغة البرمجه باسكال اكثر من انها فقط لغه اكاديميه و لكنّها استخدمت تجارياً ايضا .
ما الذي احتاجه لأبدأ مع باسكال :
قبل بداية تعلم برمجة الباسكال , تحتاج إلى مترجم باسكال (compiler) . هذا الدرس يستخدم (مترجم باسكال المجاني) : http://www.freepascal.org/ . يمكنك الحصول على قائمه من مترجمات باسكال في http://www.freebyte.com/programming/pascal/#pascal_compilers .
برنامجك الاول :
اول شئ يجب ان تفعله ان تفتح مترجم الباسكال .
في هذه السلسلة المترمجة من موقع .sepsis سيتم شرح البرمجة بالباسكال بالتفصيل و بطريقة سلسة و سهلة للجميع.
دائماً نبدأ البرنامج بكتابة اسمه . ادخل program و اسم البرنامج بعدها . سوف نقوم بتسمية برنامجنا الاول "Hello" لانه سيقوم بطباعة الجمله المشهوره "Hello world" على الشاشه , سوف تكون طريقة الكتابه بهذه الطريقه :
program Hello;
بعدها يجب علينا ان نطبع الكلمتين begin و end . بعدها نقوم بكتابة شيفرة البرنامج بين هاتين الكلمتين . تذكر وضع النقطه بعد الكلمه end , هكذا ستكون صيغة ما كتبناه حتى الآن :
program Hello;
begin
end.
الآن نكتب الشيفره التي تطبع الجمله على الشاشه :
program Hello;
begin
Write('Hello world');
end.
يجب ان تكون الجمله بين علامة الاقتباس الفرديه ' . واي شي يكون بين علامة الاقتباس الفرديه عباره عن سلسله (كلمات و حروف) . كل السلاسل يجب ان تكون بهذا الشكل . علامة الفاصله المنقوطه ; هي نهاية السطر . يجب ان تتذكر دائما ان تضع هذه العلامه في نهاية سطر .
الامر Readln يستخدم لانتظار المستخدم ان يقوم بالضغط على زر الادخال لكي ينتهي البرنامج .
program Hello;
begin
Write('Hello world');
Readln;
end.
الآن يجب ان تخزّن البرنامج بإسم hello.pas
تجميع البرنامج و ترجمته :
برنامجنا الاول الآن جاهز للترجمه . عندما تقوم بترجمة البرنامج , سيقوم المترجم بقرائة الملف المصدري (الشفره التي قمت بكتابتها) و يقوم بتطبيقها . اذا كنت تستخدم مترجم من نوع IDE قم بالضغط على CTRL+F9 انها دائماً تستخدم لترجمة و تشغيل البرنامج في المترجمات من نوع IDE . اذا كنت تستخدم مترجم يعتمد على سطر الاوامر مثل Free Pascal ادخل الامر التالي :
fpc hello.pas
اذا تلقيت اي خطأ عند الترجمه يجب ان تقرأ هذا الدرس مره اخرى بعنايه لاكتشاف اين هو الخطأ . مستخدمين IDE سوف يجدون ان برنامجهم تمت ترجمته و تم تشغيله في وقت قصير . مستخدمين سطر الاوامر يجب ان يدخلون اسم البرنامج في متلقي الاوامر لكي يعمل .
يجب ان تجد الجمله "Hello world" عندما تقوم بتشغيل برنامجك و عند الضغط على زر الادخال سوف يتم الخروج من البرنامج .
مبروك ! لقد كتبت اول برنامج لك في باسكال .
المزيد من الاوامر :
الامر Writeln مثل الامر Write بإستثناء انه يقوم بنقل المؤشر إلى سطر جديد . هنا شفره لبرنامج يقوم بطباعة الكلمه Hello و بعدها world في السطر الذي يليه :
program Hello;
begin
Writeln('Hello');
Write('world');
Readln;
end.
استخدام الاوامر من الوحدات :
الاوامر التي تقوم ببنائها في مترجمك اساسيه جداً و انت تحتاج لاستخدام المزيد . الوحدات يمكن ان تُدرَج في برنامجك لكي تعطيك القدره على استخدام المزيد من الاوامر . الوحده crt احد اقوى الوحدات المفيده الموجوده . الامر ClrScr موجود من ضمن الوحده crt و استخدامها هو تنظيف الشاشه . كيفية استخدام هذا الامر :
program Hello;
uses
crt;
begin
ClrScr;
Write('Hello world');
Readln;
end.
التعليقات :
التعليقات جمل تستخدم للتعليق على احد اجزاء البرنامج . المترجم لا يعتبر التعليقات جزء من الشيفره والتعليقات فقط للاشخاص الذين يطّلعون على الشيفره المصدريه للبرنامج , التعليقات يتم اضافتها بين العلامتين { } . يفضل دائما ان تقوم بكتابة تعليقات في اول الملف تشرح فيه وظيفة الملف و ان تقوم بكتابة التعليقات بجانب الاوامر صعبة الفهم لكي تقوم بشرحها .
مثال :
{This program will clear the screen, print "Hello world" and wait for the user to press enter.}
program Hello;
uses
crt;
begin
ClrScr;{Clears the screen}
Write('Hello world');{Prints "Hello world"}
Readln;{Waits for the user to press enter}
end.
المسافات :
قد تلاحظ اننا تركنا قبل الاوامر 3 اسطر . هذه الطريقه مفيده في جعل البرنامج سهل القرائه . الكثير من المبتدئين لا يفهم سبب وضع تلك المسافات ولكن اذا بدأ بكتابة البرامج الكبيره سوف يفهم فائدتها .
لابد و انك تعلم ما هي الوحدات , تذكر ذلك عندما استخدمنا الوحده crt , قد تضطر يوماً إلى كتابة العديد من الاجراءات و الدوال . يمكنك انشاء وحدتك الخاصه ووضعك اجراءاتك و دوالك فيها .
لإنشاء وحدتك الخاصه يجب اولا ان تنشئ ملف باسكال جديد بإسم MyUnit.pas . السطر الاول يجب ان يبدأ بالكلمه unit و بعدها اسم وحدتك . اسم الوحده يجب ان تكون مثل اسم الملف .
unit MyUnit;
في السطر التالي نقوم بإضافة الكلمه interface . بعدها يجب علينا وضع اسم الاجراء الذي سوف نستخدمه من هذه الوحده . على سيبل المثال قمنا بإنشاء داله بإسم NewReadln تشبه Readln و لكنها تسمح لك بتحديد عدد الحروف التي يمكن ادخالها .
unit MyUnit;
interface
function NewReadln(Max: Integer): String;
السطر الذي يليه نضيف الكله implementation . هذا هو المكان الذي يمكنك ان تكتب في كامل شيفرتك و اجراءاتك و دوالك . سوف نحتاج إلى استخدام الوحده crt لإنشاء NewReadln . بعد الانتهاء من الوحده يجب ان نكتب الامر end للانتهاء .
unit MyUnit;
interface
function NewReadln(Max: Integer): String;
implementation
function NewReadln(Max: Integer): String;
var
s: String;
c: Char;
begin
s := ';
repeat
c := ReadKey;
if (c = #{#8 = BACKSPACE} and (s >< ') then
begin
Write(#8++#;
delete(s,length(s),1);
end;
if (c >< # and (c >< #13){#13 = ENTER} and (length(s) < Max) then
begin
Write(c);
s := s + c;
end;
until c = #13;
NewReadln := s;
end;
end.
بعدها قم بتخزين الوحده . الآن يمكننا استخدام وحدتنا MyUnit التي قمنا بإنشائها من خلال استدعاء الوحده و استخدام الداله التي فيها NewReadln .
program MyProgram;
uses
MyUnit;
var
s: String;
begin
s := NewReadln(10);
end.
هكذا نكون قد انتهينا و لله الحمد من سلسلة دروس لغة البرمجه باسكال , آملين انكم قد استفدتم و استمتعتم من هذه السلسله
ملفات المعلومات تختلف عن ملفات النصوص بأشياء بسيطه . ملفات المعلومات هي الوصول العشوائي يعني انه لا يجب ان تقرأ سطر بعد سطر بدلاً من ذلك يمكن ان تصل إلى اي جزء من اجزاء الملف في اي وقت . و طريقة تعريف ملفات البيانات :
program DataFiles;
var
f: file of Byte;
begin
end.
يجب ان تستخدم Assign بنفس طريقة استخدامها في ملفات النصوص .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
end.
يمكنك استخدام Rewrite لانشاء ملف جديد غير موجود . الاختلاف بين ملفات النصوص و ملفات المعلومات عند استخدام الامر Rewrite هو ان ملفات المعلومات يمكنك القرائه منها و الكتابة عليها .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
end.
الامر Reset مثل الامر Rewrite بإستثناء انه لا ينشئ الملف اذا كان لم يكن موجوداً :
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
end.
عندما تريد الكتابه على الملف يجب ان تستخدم الامر Write , يجب اولاً ان تضع الذي تريد كتابته على الملف في متغير , قبل الكتابه او القرائه من ملفات المعلومات يجب ان تستخدم الامر Seek للبحث عن المكان الصحيح لبداية الكتابه . يجب ان تتذكر ملف المعلومات يبدأ من الوضع 0 و ليس 1 .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
b := 1;
Seek(f,0);
Write(f,b);
end.
الامر Read يستخدم للقراءه من ملفات المعلومات .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
end.
يجب عليك ان تغلق ملفات المعلومات بعد الانتهاء منها مثل ملفات النصوص .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,0);
Read(f,b);
Close(f);
end.
الامر FileSize يمكن استخدامه مع الامر FilePos لمعرفة متى وصلت إلى نهاية الملفات . الامر FileSize يعيد الرقم الفعلي لعدد التسجيلات و يبدأ من 1 و ليس 0 . الامر FilePos يخبرنا عن الوضع الذي هو عليه الملف الآن .
program DataFiles;
var
f: file of Byte;
b: Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
while FilePos(f) <> FileSize(f) do
begin
Read(f,b);
Writeln(b);
end;
Close(f);
end.
الامر Truncate يحذف أي شئ في الملف من الوضع الحالي .
program DataFiles;
var
f: file of Byte;
begin
Assign(f,'MyFile.txt');
Reset(f);
Seek(f,3);
Truncate(f);
Close(f);
end.
احد اكثر الاشياء افادة في ملفات المعلومات هو امكانية استخدام التسجيلات و ملفات المعلومات مع بعضها البعض .
program DataFiles;
type
StudentRecord = Record
Number: Integer;
Name: String;
var
Student: StudentRecord;
begin
Assign(f,'MyFile.txt');
Reset(f);
Student.Number := 12345;
Student.Name := 'John Smith';
Write(f,Student);
Close(f);
end. الملفات النصيه عباره عن ملفات تحتوي على اسطر من النصوص . متى اردت الوصول إلى ملف في باسكال يجب عليك ان تنشئ متغير ملف اولاً
program Files;
var
f: Text;
begin
end.
بعد الاعلان عن المتغير يجب ان تسند اسم الملف للمتغير :
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
end.
لإنشاء ملف جديد فارغ استخدم الامر Rewrite . هذا الامر ينشئ اي ملف غير موجود .
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
end
الامرين Write و Writeln يعملون على الملفات على طريقه واحده على الشاشه بإستثناء البارامتر الاضافي الذي يخبرهم للكتابه في الملفات :
program Files;
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rewrite(f);
Writeln(f,'A line of text');
end.
اذا كنت تريد قرائه محتويات ملف موجود سابقاً اولاً يجب ان تستخدم الامر Reset بدلاً من Rewrite . ثانيا استخدم الامر Readln لقرائه السطور من الملف . سوف تحتاج إلى التكرار while لقرائه جميع السطور .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Reset(f);
while not eof(f) do
Readln(f,s);
end.
الامر Append يفتح الملف و يسمح لك ان تكتب المزيد من النصوص في آخر الملف .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
end.
يجب عليك اغلاق الملف بعد الانتهاء من استخدامه . اذا لم تغلقه قد تخسر بعض النصوص التي قمت بكتابتها فيه .
program Files;
var
f: Text;
s: String;
begin
Assign(f,'MyFile.txt');
Append(f);
Writeln('Some more text');
Close(f);
end.
يمكنك تغير اسم ملف مع الامر Rename و حذف الملفات مع الامر Erase
var
f: Text;
begin
Assign(f,'MyFile.txt');
Rename(f,'YourFile.txt');
Erase(f);
Close(f);
end.
للبحث عن الملف اذا كان موجود ام لا , يجب اولاً ان تتبع ذلك بإستخدام {$I-} . بعد ذلك يجب ان تقوم بإستخدام الامر Reset على الملف بعدها استخدام الجمله الشرطيه if IOResult = 2 then و معناها اذا كان الملف غير موجود , و استخدام الشرط If IOResult = 0 و معناها اذا كان الملف موجود . و اذا كانت قيمة IOResult ليست 2 او 0 نستخدم الامر Halt لإنهاء البرنامج . الـ IOResult سوف يفقد قيمته اذا تم استخدامه لمره واحده لذلك يجب علينا ان نضعه في متغير قبل استخدامه.
يجب عليك كذلك استخدام {$I+} لإعادة تتبع الاخطاء .
program Files;
var
f: Text;
IOR: Integer;
begin
Assign(f,'MyFile.txt');
{$I-}
Reset(f);
{$I+}
IOR := IOResult;
if IOR = 2 then
Writeln('File not found');
else
if IOR <> 0 then
Halt;
Close(f);
end.
لا يوجد حالياً أي تعليق