التصريح عن المتغير:
(يفضل) قبل استخدام أي متغير أن يتم التصريح عنه، وتستخدم لغة VBScript العبارة Dim
للتصريح المتغيرات، مثلا نريد التصريح عن المتغير النصي strGreeting فإننا نستخدم
الكود التالي:
شفرة برمجية :
إسناد القيم:
ويتم إسناد القيم إلى المتغيرات بسهولة حيث يتم وضع اسم المتغير ثم علامة
المساواة ونضع بعدهما قيمة المتغير مثلا…
شفرة برمجية :
ويمكن استخدام المتغيرات لتخزين إدخال من قبل المستخدم وذلك عن طريق القيمة المعادة
عن الدالة InputBox والتي تظهر مربع رسالة يحث المستخدم على إدخال بيانات ما وفي
المثال التالي تلاحظ أننا قمنا بتمرير الوسيطتين الأولى والثانية، حيث تمثل الأولى النص الذي يحث المستخدم على إدخال البيانات والوسيطة الثانية تمثل عنوان مربع
الإدخال وهناك وسيطات أخرى لاتهمنا حاليا مثل إحداثيات المربع والقيمة الافتراضية
وغيرها لاحظ المثال.
شفرة برمجية :
YourWebSite = InputBox("ادخل اسم موقعك","طلب إدخال اسم الموقع")
document.write YourWebSite |
تلاحظ في المثال السابق أننا قمنا بالاحتفاظ بالقيمة - التي ادخلها المستخدم –
إلى متغير ثم استخدمنا الخاصية Write لكائن Document لكتابة القيمة إلى المستند.
و يمكن استخدام المتغيرات لتحديد الزر الذي تم نقره في مربع رسالة إخراج وتستخدم
لغة VBScript الدالة MsgBox لإظهار نص ما من خلال نافذة منبثقة.. وتلاحظ في المثال
التالي أننا قمنا بتمرير الوسيطتين الأولى والثانية، حيث تمثل الأولى النص الذي
سيظهر وتمثل الثانية الأزرار التي ستظهر في مربع الإخراج.
شفرة برمجية :
ButtonClicked = msgbox("هل تريد تغيير لون الخلفية إلى
الأزرق",vbYesNo)
If ButtonClicked = 6 Then
Document.bgColor = "#000080"
End If |
و بغض النظر عن العبارة الشرطية IF التي لم نتطرق لها بعد، ستجد أن الدالة أعادت قيمة تمثل الزر الذي تم النقر عليه وفي الشرط التالي نختبر القيمة التي تم وضعها في المتغير، فإذا كانت تساوي 6 أي نقر المستخدم على الزر نعم فإننا نقوم بتغيير لون الخلفية إلى الأزرق.
الثوابت Constants:-
الثوابت كما يدل عليها اسمها، هي قيم ثابتة مخزنة تحت اسم معين وتختلف عن المتغيرات
بأنه لا يمكن تغيير قيمها وقت التشغيل ولها فوائد عديدة منها أنها تجعل الكود اقصر حيث أنها تغنيك عن تمرير القيمة التي قد تكون سلسلة نصية طويلة فباستخدام الثوابت يكفي تمرير اسم الثابت، وتفيد الثوابت أيضا في جعل الكود اسهل فهما. وهاك مثال على التصريح عن الثوابت واستخدامها.
شفرة برمجية :
Const Web_Site = "www.C4arab.com"
' التصريح عن الثابت
MsgBox Web_Site 'عن استدعاء الثابت |
وهناك ثوابت جاهزة معرفة داخل اللغة وتسهل عليك الكثير من المهام ولو عدت بعض الخطوات إلى الوراء ستجد انك قبل قليل استخدمت أحد الثوابت المعرفة داخل اللغة وهو الثابت vbYesNo والذي تم استخدامه مع مربع الرسالة وهناك ثوابت أخرى من الممكن أن تحل محله مثل vbYesNoCancel .. وفيما يلي جملة من الثوابت التي يتم استخدامها كثيرا داخل اللغة.
- ثوابت الألوان وهي: vbYellow، vbRed، vbGreen، vbMagenta، vbWhite، vbBlack،
vbCyan
- ثوابت للتعامل مع النصوص مثل : vbNewLine والذي يمثل محرف السطر الجديد، والثابت
vbNullString والذي يمثل سلسلة نصية فارغة.
- ثوابت للتعامل مع التاريخ مثل : vbSaturday، vbSunday، vbMonday،، etc…
المصفوفات Arrays :-
المصفوفة هي عبارة عن مجموعة من المتغيرات لها نفس الاسم ويتم الوصول إلى قيمة كل
متغير بواسطة رقم خاص به مثلا هذه المصفوفة تحتوي على مائة متغير.
شفرة برمجية :
واعتبرت هنا مائة متغير لأن الترقيم يبدأ من صفر. وهناك ملاحظة وهي أن التصريح
عن المصفوفات إجباري.
إسناد القيم:
شفرة برمجية :
'التصريح عن مصفوفة بثلاث متغيرات
Dim GoodSites(2)
'إسناد القيم
GoodSites(0) = "www.vb4arab.com"
GoodSites(1) = "www.c4arab.com"
GoodSites(2) = "www.arabTeam2000.com"
'لاسترجاع قيمة متغير معين
msgbox GoodSites(1) |
المصفوفات متعددة الأبعاد ثابتة الحجم Fixed Arrays:
لاحظت في المثال السابق أن المصفوفة ذات بعد واحد أي ذات عمود واحد، و توفر لغة
VBScript إمكانية إنشاء مصفوفات متعددة الأبعاد لاحظ المثال التالي شفرة برمجية :
'إسناد القيم
' العمود الأول الصف الأول
GoodSites(0,0) = "موقع فيجوال بيسك للعرب"
' العمود الأول الصف الثاني
GoodSites(0,1) = "www.vb4arab.com"
' العمود الثاني الصف الأول
GoodSites(1,0) = "موقع الموسوعة العربية"
' العمود الثاني الصف الثاني
GoodSites(1,1) = "www.c4arab.com"
'استدعاء القيم
msgbox GoodSites(0,0) + " " + GoodSites(0,1)
msgbox GoodSites(1,0) + " " + GoodSites(1,1) |
المصفوفات الديناميكية Dynamic Arrays :
قد لا نعلم عدد العناصر التي نريد إدخالها في المصفوفة أو نريد من المستخدم
تحديد ذلك، ولا يمكننا ذلك من خلال المصفوفات ثابتة الحجم التي قمنا باستعمالها قبل قليل ولذلك سنلجأ إلى استخدام المصفوفات متغيرة الحجم (الديناميكية) وهذا مثال على استخدام هذا النوع من المصفوفات..
شفرة برمجية :
Dim GoodSites()
Num = InputBox("أدخل عدد مواقع البرمجة العربية التي تراها جيدة")
ReDim GoodSites(Num – 1) |
تلاحظ في المثال السابق أننا قمنا بتعريف المصفوفة دون تحديد عدد العناصر وعندما أدخل المستخدم عدد العناصر فإننا قمنا بإعادة تصريحها باستخدام العبارة ReDim لتصبح
بالحجم الجديد.
ملاحظات عامة:-
- يجب مراعاة مكان تصريح المتغيرات والمصفوفات فعند الحاجة لاستخدامها في داخل
إجراء معين فإنه يتم التصريح عنها في نفس الإجراء وعند الحاجة للتعامل معها في أكثر
من إجراء فإنه يجب التصريح عنها خراج الإجراءين لتحتفظ بقيمها لاحظ المثال..
شفرة برمجية :
< INPUT type="button" value="Button1" name="button1">
< INPUT type="button" value="Button2" name="button2">
< Script language ="VBScript">
Sub button1_OnClick()
Dim Counter
Counter=10
MsgBox Counter
End Sub
Sub button2_OnClick()
MsgBox Counter
End Sub
< /Script > |
الآن عندما تنقر على الزر Button1 فإنه سيتم اسند القيمة 10 إلى المتغير Counter
ولكن عندما تنقر على الزر Button2 ستجد أن المتغير فقد قيمته … الآن انقل التصريح
خارج الإجراء وانقر على الزرين بتتابع ولاحظ النتيجة.
- يمكن التصريح لأكثر من متغير أو مصفوفة بعبارة Dim واحدة
شفرة برمجية :
- ذكرت من قبل أنه يفضل التصريح عن المتغيرات (لأسباب عديدة) ويمكنك جعل التصريح
إجباريا بإضافة العبارة Option Explicit في بداية السكريبت.
شفرة برمجية :
Option Explicit
Num = 10 ' Num هنا سيظهر خطأ لأنك لم تقوم بالتصريح عن
المتغير |