اجعل رورو44 صفحتك الرئيسية | احفظ رورو44 في مفضلتك | ارسل رورو44 إلى صديقك | أعلن على رورو44 | English Interface

 

 

 

شات خدمات مسجات جوال بطاقات رسائل حب دليل مواقع شات خليجي  دردشة منتديات حسناء الفارس عالم الرومانسية

مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية

 
    دروس في برمجة المواقع  في بي سكربت - VB Scripts
 

 

سلسلة تعلم VBScript – الجزء الثاني - الدوال والإجراءات الفرعية




 

الدرس السابع: الدوال والإجراءات الفرعية
Functions and Subs ...


قد تحتاج في برنامجك إلى إنجاز مهمة معينة اكثر من مرة في أنحاء متفرقة من أجزاء الشيفرة، فبالتأكيد أنت لا تحبذ إعادة كتابة الأوامر عند كل مرة تحتاج إليها لأن ذلك سيزيد من تعقيد الشيفرة ويؤدي إلى إطالتها دون طائل.. من هذا المنطلق تبرز فكرة
الإجراءات الدالية(الدوال) و الإجراءات الفرعية والتي تمثل أحد ركائز البرمجة الهيكلية حيث تساعد في تكوين شيفرات قصيرة، واضحة التكوين، سريعة التنفيذ.

الدوال..

الدالة هي إجراء يقوم بتنفيذ مجموعة من الأوامر وقد يتلقى قيم كوسيطات arguments ثم
يعيد قيمة من خلال اسمه.. وتكون الصيغة العامة للدوال على الشكل

 


كود:



 

Function FunctionName([arguments])

Function statements

End Function






وهذا مثال على استخدام الدوال.. لنفرض انك تريد إنشاء دالة تقوم بحساب النسبة المئوية لمعدل، كفكرة عامة ستكون الدالة تتطلب القيمة العظمى والقيمة الحالية. 

 

كود:




'تكوين الدالة


Function Percent(Hi,Nw)


Dim RetVal


RetVal = Nw * 100  / Hi & "%"


Percent = RetVal


End Function






كما تلاحظ في المثال السابق أننا قمنا بطلب القيمة العليا Hi والقيمة الحالي Nw كوسيطات ثم قمنا بإجراء العملية لإيجاد النسبة ثم مرنا النتيجة إلى اسم الدالة..

ويمكننا استدعاء الدالة بتمرير القيمة العظمى والقيمة الحالية

 


كود:


 

Dim sRet

sRet = Percent(200,50)

msgbox sRet




الإجراءات الفرعية..

تختلف الإجراءات الفرعية عن الدول في كونها لا تعيد قيمة من خلال اسمها حيث لاحظنا أن الدالة السابقة تعيد القيمة التي تمثل نتيجة العملية من خلال اسمها، وهذا مالا يحدث في الإجراءات الفرعية وهذه هي الصيغة العامة للإجراءات الفرعية..

 



كود:



 

Sub SubName(arguments)

Sub statements

End Sub







الآن سنقوم بتحويل المثال السابق لجعله معتمدا على الإجراءات الفرعية

 



كود:



 

Sub Percent(Hi,Nw)

Dim RetVal

RetVal = Nw * 100 / Hi & "%"

msgbox RetVal

End Sub






والآن نقوم باستدعاء الإجراء الفرعي

 



كود:



 

Percent 200,50







تلاحظ عند الاستدعاء أن الإجراء لا يعيد أي قيمه بل يقوم بتنفيذ مجموعة من الأوامر ، آخرها هو عرض نتيجة القيمة باستخدام الإجراء msgbox .. أيضا تلاحظ عدم استخدامنا للأقواس عند استدعاء الإجراء الفرعي ويجب علينا استخدامها إذا قمنا بالاستدعاء
بواسطة العبارة Call ...

 



كود:



 

Call Percent(200,50)





الدوال والإجراءات المعرفة داخل اللغة...

قمنا قبل قليل بإنشاء إجراء فرعي ودالة وقد قمنا بتعريفهما قبل استخدامهما، هذا
النوع من الإجراءات يسمى "الإجراءات المعرفة من قبل المستخدم" وتوفر لغة VBScript كغيرها من اللغات دوال خاصة معرفة مسبقا داخل اللغة وتعالج كثيرا من المهام ..
وفيما تبقى من هذا الدرس سأتطرق إلى الدوال الخاصة بالتاريخ وفي الدرس القادم –
بإذن الله- سأتابع الموضوع للحديث عن الدوال النصية والتي تعتبر مما يميز لغات السكريبت،أيضا سأقوم بتوضيح بعض الدوال الأخرى التي لا تندرج تحت أي من الأمرين السابقين ... جدير بالذكر هنا أن انوه بأنني لن أتطرق لكافة ملابسات وملاحظات كل دالة لأن ذلك يؤدي إلى إطالة الموضوع لكني (سأحاول) ترجمة دليل مايكروسوفت لأوامر
لغة VBScript متى ما كانت الظروف مواتية...

دوال الوقت والتاريخ في لغة VBScript..

 الدالة Date

الوظيفة:

تعيد التاريخ الحالي

مثال:

 



كود:



 

msgbox Date





ملاحظة:

تستخدم الدالة Time لإيجاد الوقت الحالي على نفس نهج الدالة السابقة أيضا نستخدم الدالة Now لإيجاد التاريخ والوقت معا.

 الدالة DateAdd

الوظيفة:

جمع أو طرح مدة زمنية من وإلى تاريخ معين..

الصيغة العامة:

 


DateAdd(Interval, Number, Date)

 

الوسيطات:

interval : هذه الوسيطة تأخذ القيم التالية.. d الأيام، h الساعات، m الأشهر، n الدقائق، q ربع العام، s الثواني، w يوم من الأسبوع، ww الأسبوع، y يوم من العام، yyyy العام.

Number : مقدار الإضافة.

Date: التاريخ المراد الإضافة إليه.

مثال

 



كود:



 

'#لاحظ ضرورة وضع التاريخ بين نسختي العلامة

msgbox DateAdd("d",1,#01/01/98#) '02/01/98





 الدالة DateDiff

الوظيفة:

إيجاد الفرق بين تاريخين.

الصيغة العامة:

 


DateDiff (interval, date1, date2 [ ,
firstdayofweek
[ , firstweekofyear ]] )

 

الوسيطات:

Interval: تشبه نفس الوسطية في الدالة DateAdd.

Date1: التاريخ الأول (المطروح)

Date2: التاريخ الثاني (المطروح منه)

Firstdayofweek: (وسيطة اختيارية)أول يوم في الأسبوع وتأخذ القيم من 1 إلى 7 حيث
يمثل vbSunday رقم 1 و vbMonday رقم 2 وهكذا..

firstweekofyear: (وسيطة اختيارية) وتأخذ القيم التالية

vbUseSystem لاستخدام إعدادات NLS API

vbFirstJan1 البدء عند الأسبوع الذي يحدث فيه 1 يناير

vbFirstFourDays البدء عند أول أسبوع يحوي الأيام الأربع الأقل

vbFirstFullWeek البدء عند الأسبوع الأول الكامل

مثال: 

 

كود:





 

msgbox DateDiff("d",#01/01/98#,Date)





 الدالة DatePart

الوظيفة:

تعيد جزءا محددا من تاريخ معطى.

الصيغة العامة:

 


DatePart (interval, date [ , firstdayofweek [ ,
firstweekofyear
]] )

 

الوسيطات:

interval: تم التطرق لهذه الوسطية في الدالة DateAdd.

Date: التاريخ الذي سيعاد جزء منه.

Firstdayofweek: تم التطرق لهذه الوسطية في الدالة DateDiff.

Firstweekofyear: تم التطرق لهذه الوسطية في الدالة DateDiff.

مثال:

 


كود:




 

msgbox DatePart("d",#01/05/98#) ' 5




 الدالة DateSerial

الوظيفة:

تعيد تاريخا تسلسليا يوافق قيم يوم وشهر وسنة ممررة إليها كوسيطات.

الصيغة العامة:

 


DateSerial (year, month, day)

 

الوسيطات:

year: قيمة تمثل السنة بين (100و 9999).

month: قيمة تمثل الشهر.

Day: قيمة تمثل اليوم.

مثال

 



كود:



 

msgbox DateSerial(1998,2,12) ' 12/02/98





ملاحظة:

تشبه الدالة TimeSerial الدالة السابقة في طريقة تعاملها ولكنها تختلف عنها في أنها
تتعامل مع الوقت.
 DateValue

الوظيفة:

إيجاد التاريخ المكافئ للقيمة الممررة..

الصيغة العامة:

 


DateValue (date)

 

الوسيطات:

Date: قيمة تمثل التاريخ..

مثال:

 



كود:



 

msgbox DateValue("يناير,99")





ملاحظة:

تشبه الدالة TimeValue الدالة السابقة في طريقة تعاملها ولكنها تختلف عنها في أنها
تتعامل مع الوقت.
 الدالة Day

الوظيفة:

تعيد رقم اليوم للتاريخ المحدد.

الصيغة العامة:

 


Day (date)

 

الوسيطات:

Date: قيمة تمثل التاريخ

مثال:

 



كود:



 

msgbox Day(Date)





ملاحظة:

تستخدم الدالتين Month و Year لإيجاد قيمة اليوم والسنة لتاريخ معين على نفس نهج
الدالة السابقة.
 الدالة Hour

الوظيفة:

تعيد رقم يمثل الساعة للزمن المحدد.

الصيغة العامة:

 


Hour( Time)

 

الوسيطات:

Time: قيمة تمثل الزمن.

مثال:

 



كود:



 

msgbox Hour(#05:01:10 Am#) '5





ملاحظة:

تستخدم الدالتين Minute و Second لإيجاد قيمة الدقائق والثواني لزمن معين بنفس نهج
الدالة السابقة.
 الدالة MonthName

الوظيفة:

تعيد الدالة قيمة تمثل اسم الشهر المكافئ للقيمة الممررة.

الصيغة العامة:

 


MonthName( month [,abbreviate])

 

الوسيطات:

month: رقم الشهر.

Abbreviate : (وسيطة اختيارية) تأخذ هذه الوسيطة قيمة منطقية تحدد هل يتم اختصار
اسم الشهر أم لا.

مثال:

 



كود:



 

msgbox MonthName(12) 'ديسمبر





ملاحظة:

تشبه الدالة WeekdayName الدالة السابقة -في المفهوم- وتختلف عنها في كونها تعيد
اسم اليوم من الأسبوع.
 الدالة WeekDay

الوظيفة:

تعيد رقما يمثل اليوم لتاريخ معين.

الصيغة العامة:


 




Weekday( date, [firstdayofweek])

 

 

الوسيطات:

date: قيمة تمثل التاريخ.

Firstdayofweek: تم التطرق لها في الدالة DateDiff.

مثال:

 



كود:



 

msgbox WeekDay(#01/01/99#) '6 الجمعة





 الدالة Timer

الوظيفة:

تعيد الوقت المنقضي منذ نصف الليل.

مثال:

 



كود:



 

Dim startTime,EndTime,SiteName,Prompt

Prompt ="ادخل العنوان التالي"& vbcrlf

msgbox "سيتم اختبار سرعتك في الكتابة...استعد"

startTime = Timer

SiteName = InputBox(Prompt & "www.c4arab.com")

EndTime= Timer

If SiteName = "www.c4arab.com" Then

Prompt = "قمت بكتابة 14 محرفا خلال "

msgbox Prompt & EndTime - startTime & " ثانية"

End If





ملاحظات عامة..

1. يمكن الخروج من الإجراءات قبل نهايتها باستخدام العبارة Exit Function للدوال و
Exit Sub للإجراءات الفرعية.

2. يمكن استخدام الدوال كإجراءات فرعية عند عدم الحاجة للقيمة التي تعيدها فمثلا
الدالة msgbox -قمنا بالتطرق لها في وقت سابق- والتي تستخدم كدالة على الشكل
التالي..

 



كود:



 

Dim Ret,Prompt

Prompt ="هل تريد تحويل اللون الخلفي للنافذة إلى الأسود؟"

Ret = msgbox(Prompt,vbYesNo)

If Ret = vbYes Then document.bgColor = vbBlack




حيث أننا استعملنا القيمة المعادة لحاجتنا إليها.. ولكن عند عدم الحاجة إليها
تستطيع تجاهل القيمة واستخدام Msgbox كإجراء فرعي.

 



كود:



 

Dim Prompt

Prompt ="سيتم تحويل اللون الخلفي للنافذة إلى الأسود"

msgbox Prompt

document.bgColor = vbBlack






3. يمكن تطبيق مبدأ الاستدعاء التراجعي Recursion في لغة VBScript وهو المبادئ
المتقدمة بعض الشي في لغات البرمجة ويقصد به استدعاء الإجراء من داخل نفسه وهو قليل
الاستعمال في لغة VBScript.. لاحظ المثال



كود:



 

'تكوين الإجراء الفرعي

Sub Myloop(Num,Txt)

If Num = 0 Then Exit Sub

document.write Txt & "< BR>"

Myloop Num - 1,txt

Exit Sub

End Sub

'عند الاستدعاء

Myloop 5,"www.c4arb.com"


المزيد من المواضيع

سلسلة تعلم VBScript – الجزء الثالث - :نظرة لبعض تطبيقات اللغة.
سلسلة تعلم VBScript – الجزء الثالث - :المزيد عن الكائنات.
الدرس الثاني عشر:نظرة لبعض تطبيقات اللغة.
سلسلة تعلم VBScript – الجزء الثالث - : مكوناتCOM، استخدامها و بنائها
سلسلة تعلم VBScript – الجزء الثالث - الكائنات والأصناف
سلسلة تعلم VBScript – الجزء الثاني - الإجراءات المعرفة ضمن لغة VBScript
سلسلة تعلم VBScript -الجزء الاول - المبادئ
سلسلة تعلم VBScript – الجزء الثاني - التكرار
سلسلة تعلم VBScript – الجزء الثاني - الجمل الشرطية
سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة.
سلسلة تعلم VBScript -الجزء الاول - الاسس

1

 

الاقسام الرئيسية

دروس للمبتدئين

--

دروس في أنظمة التشغيل

--

دروس في الانترنت

--

دروس في لغات البرمجة

--

دروس في برمجة المواقع

--

دروس في الأوفيس

--

دروس في الرسوم و التصميم

--

دروس في قواعد البيانات

--

دروس في الألعاب والبرامج

--

دروس في المكونات الصلبة

--

دروس في الشبكات

--

دروس في أمن المعلومات

--

دروس في الذكاء الاصطناعي

--

القائمة البريدية

  فضائح | ماسنجر | تداول | الحياة الزوجية | عجائب وغرائب| دروس تعليمية | عالم حواء | فضائح الفن | ستار اكاديمي | نكت | برامج | صور | | شات سعودي | شات عربي | ماسينجر | مسجات | دليل مواقع | دليلك | مواقع سعودية | مواقع كويتية | مواقع بحرينية | مواقع قطرية | مواقع عمانية | مواقع يمنية | مواقع عراقية | مواقع اماراتية | دردشة خليجية | دردشة سعودية | دردشة عربية | شات صوتي | دردشة صوتية | دردشة كويتية | دردشة اماراتية | دردشة عمانية | دردشة قطرية | دردشة بحرينية | دردشة عراقية | دردشة يمنية | سكس | طريق الاسلام, انا مسلم , طريق الهدايه , مسلمون , منوعات اسلاميه | اسلاميات , برامج اسلامية , منوعات اسلامية | جنس | الاسرة المسلمة , الاسرة العربية , اسرتي , عائلتي | برامج الاسره , نصائح معلومات , اسرة عربية سعودية خليجية | دروس تعليمية , مكتبة الدروس التعليمية | شروح برامج , شرح برامج , دورات تعليميه | طب وصحه - المركز الطبي | طبيبك على الانترنت , معلومات طبية , معلومات صحيه

Roro44.com xml :                            

شات سعودي | شات عربي | شات خليجي | العاب | دردشات | العاب بنات

 |  اشهر موقعك | احصائيات الموقع | اسعار الاعلانات |  لمراسلة الإدارة  |

:: ©2007-2003 www.roro44.com All rights reserved ::