اغلق هذه النافذة  أنت غير مسجل بشبكة ابن الخليج; للتسجيل اضغط هنا; للمساعده وشرح طريقة التسجيل اضغط هنا

شبكة ابن الخليج

Sitemap | Archive | Tag Could
التسجيلالبحثمشاركات اليوماجعل جميع المنتديات مقروءةالأرشيف

منتديات نظرة حب - ينتهي الاعلان بتاريخ 8\12\2008جديد برامج وأخبار الالعابرسائل الجوال موبايلي - ينتهي الاعلان بتاريخ 30\11\2008

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

مناقشة موضوع سلسلة تعلم VBScript – الجزء الثاني - الدوال والإجراءات الفرعية في دروس برمجة مواقع; الدرس السابع: الدوال والإجراءات الفرعية Functions and Subs ... قد تحتاج في برنامجك إلى إنجاز مهمة معينة اكثر من مرة في أنحاء متفرقة من أجزاء الشيفرة، فبالتأكيد أنت لا تحبذ إعادة كتابة الأوامر عند كل مر ...

العودة شبكة ابن الخليج> منتديات تعليمية> دروس برمجة مواقع


رد
 
LinkBackأدوات الموضوعطرق مشاهدة الموضوع
قديم 04-30-2006, 11:39 مساءً   #1 (permalink)
اسرة ابن الخليج
 
الصورة الرمزية الهوى ماهو كلام
 
تاريخ التسجيل: Jul 2005
الدولة: *K S A*
المشاركات: 4,867
معدل تقييم المستوى: 657الهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيطالهوى ماهو كلام نشيط
إرسال رسالة عبر مراسل ICQ إلى الهوى ماهو كلامإرسال رسالة عبر مراسل MSN إلى الهوى ماهو كلامإرسال رسالة عبر مراسل Skype إلى الهوى ماهو كلام
سلسلة تعلم 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.roro44.com"

---------------------------------------------------------------





من مواضيع الهوى ماهو كلام في المنتدى

الهوى ماهو كلام غير متواجد حالياً   رد مع اقتباس
قديم 10-06-2006, 02:50 صباحاً   #2 (permalink)
ღ: k y:ღ

 
الصورة الرمزية كرم العربي
 
تاريخ التسجيل: Apr 2006
الدولة: ::In De GhEtTo::
المشاركات: 14,760
معدل تقييم المستوى: 53كرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيطكرم العربي نشيط
إرسال رسالة عبر مراسل MSN إلى كرم العربي
مشاركة: سلسلة تعلم VBScript – الجزء الثاني - الدوال والإجراءات الفرعية

يعطيك العافيه اخوي





من مواضيع كرم العربي في المنتدى
__________________
اقتباس:
إذا لم تعلم أين تذهب , فكل الطرق تفي بالغرض

كرم العربي غير متواجد حالياً   رد مع اقتباس
قديم 12-23-2006, 08:53 مساءً   #3 (permalink)
عضو جديد
 
الصورة الرمزية MESH3L
 
تاريخ التسجيل: Dec 2006
المشاركات: 5
معدل تقييم المستوى: 9MESH3L يستاهل ترحيب
رد: سلسلة تعلم VBScript – الجزء الثاني - الدوال والإجراءات الفرعية

جزاك الله خير اخوي العزيز
والله العضيم دروسك قيمه ومفيده لحد ماتتصوره
يعطيك الف عافيه اخوي العزيز

وللأمام





من مواضيع MESH3L في المنتدى
__________________
MESH3L غير متواجد حالياً   رد مع اقتباس
رد

العبارات الدلالية
تعلم, سلسلة



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG]متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

المواضيع المتشابهه
الموضوعكاتب الموضوعالمنتدىمشاركاتآخر مشاركة
الزرقاوي الجيل الثاني للقاعدة دراسة منهجية ونقديةصالح محمد عبداللهحوارات ثقافية عامة810-06-2008 08:26 مساءً
Prince of Persia The Two Thrones من أشهر الالعاب على PS2الماركيزمحاكيات و برامج العاب407-09-2008 11:36 صباحاً
هــل تــــعـــلـم ؟ انـــ....**غالي**حوارات ثقافية عامة1908-09-2007 06:06 صباحاً
هل تعلم !!!!!!العقلانيةحوارات ثقافية عامة510-11-2006 10:02 صباحاً
سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة.الهوى ماهو كلامدروس برمجة مواقع110-06-2006 02:53 صباحاً


منتديات شبكة ابن الخليج

ثقافة بلاد الرافدين تاريخ سياسي خواطر فراق كتب مجانيه قاموس لسان العرب العاب قوى رياضة مصرية الدوري الأسبانيالدوري الإيطاليالدوري البرتغالي Buick جرائم اغتصاب العاب و مسابقات ثقافية سيدات خياطه خياطة الشباب قناع للبشره ازياء خليجية كريم كرميل أفكار منزليه سيدات برامج الفلاش برامج حاسوب فايروول برامج ميكس طلبات البرامج مسلسلات عربية افلام 2008 افلام تركية مسلسلات خليجية صور انمى العاب مباشرة احدث الالعاب card العاب نتندو Travian تدرجات فوتوشوب صور أطفال توائم كاميرات رقمية وتقنية صور برامج جوال العاب هاتف سيدات دروس للمبتدئين دروس Corel Bryce دروس رسم بالفوتوشوب دروس ايميج ريدي Adobe ImageReadyدروس افتر افكت Adobe After Effect تحميل ادوبي بريمر دروس Adobe Illustrator Computer Graphics forum دروس متقدمه 3D Studio Max دروس swish متوسطة دروس SQL Server دروس فرونت بيج دروس انظمة تشغيل و هاردوير و شبكاتلينكس و يونكسوندوز WINDOWS دروس برمجة سيدات شروحات هاكات 364 قسم ستايلات vBulletinمجلة المنتديات mkPortalقسم ستايلات مجلة المنتديات mkPortal Stylesسكربتات وادوات تطوير المواقعمشاكل وحلول الـ مواقع لتشهر دردشتك فوتوشوبCinema 4Dخامات فوتوشوبفرش فوتوشوباكشن فوتوشوباشكال فوتوشوبمنتديات اماراتيةدليل مواقعاكتشف شخصيتكاخبارموسوعة الأطفالبوربوينتtorrentاختصار الروابطPageRankتوقيع لاميلكصانع القليترGlitter


الساعة تعتمد على توقيت جرينتش +3. الساعة الآن 12:13 مساءً.
Search Engine Optimization by vBSEO 3.1.0

Valid XHTML 1.0 Transitional Valid CSS!Powered by vBulletin® Version 3.7.1,
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
Feeds:   XML   JS   RSS   RSS Feed