سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة.
مناقشة موضوع سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة. في دروس برمجة مواقع; الجزء الثاني: المفاهيم البرمجية للغة VBScript الدرس الرابع : المتغيرات والثوابت والمصفوفات كما ذكرنا سابقا أن لغة VBScript تتشابه مفاهيمها البرمجية مع لغة Visual Basic لذلك فإن مبرمجي فيجوال بيسك سيجدو ...
سلسلة تعلم VBScript – الجزء الثاني - مفاهيم اللغة.
الجزء الثاني: المفاهيم البرمجية للغة VBScript
الدرس الرابع : المتغيرات والثوابت
والمصفوفات
كما ذكرنا سابقا أن لغة VBScript تتشابه مفاهيمها البرمجية مع لغة Visual Basic
لذلك فإن مبرمجي فيجوال بيسك سيجدوا هذا الجزء عبارة عن تحصيل حاصل … وسأبدأ في هذا
الدرس بالحديث عن المتغيرات والثوابت وسأضيف إليها المصفوفات وقد فضلت قرن المصلح
الإنجليزي بالعربي، نظرا لتعدد التعريبات لمصطلح معين والذي يثبت مجددا أن العرب لا
يمكن أن يتفقوا، فقد رصدت قبل فترة 5 أو 6 تعريبات لـ structure Query Language ،
وعلى العموم فقد اعتمدت تعريبات "مركز التعريب والبرمجة" الذي يؤكد انه يستخدم
المفردات المعتمدة من قبل مايكروسوفت رغم أنني اقتنعت قبل فترة وجيزة أن تعريبات
معظم منشورات "دار شعاع" هي الأقرب للصحة، هذا إذا غضضنا الطرف عن التعريبات – إن
صح تسميتها تعريب - التي تثير السخرية مثل تعريب Media Player بـ "اللاعب السمعي
البصري" مع احترامي لقدرات الكاتب(المترجم) …… والآن لنعد لموضوعنا ولنبدأ
بالمتغيرات..
المتغيرات Variables:
المتغير ببساطه هو مكان في الذاكرة لتخزين معطيات معينه(عدد، سلسلة نصيه، كائن،…)
وله اسم محدد، وهناك عدد من القواعد يجب الالتزام بها عند تسمية المتغيرات في
VBScript وهي:
- يجب أن يبدأ الاسم بحرف.
- لا يمكن أن يزيد طول اسم المتغير عن 255 حرفا.
- لا يمكن استخدام أحد الكلمات المحجوزة في اللغة مثل Year أو MsgBox أو غيره.
- ايضا هناك بعض المحارف لا يمكن استخدامها مثل الفراغات وبعض العلامات وهي ! & % -
$ #.
التصريح عن المتغير:
(يفضل) قبل استخدام أي متغير أن يتم التصريح عنه، وتستخدم لغة VBScript العبارة Dim
للتصريح المتغيرات، مثلا نريد التصريح عن المتغير النصي strGreeting فإننا نستخدم
الكود التالي:
ويمكن استخدام المتغيرات لتخزين إدخال من قبل المستخدم وذلك عن طريق القيمة المعادة
عن الدالة InputBox والتي تظهر مربع رسالة يحث المستخدم على إدخال بيانات ما وفي
المثال التالي تلاحظ أننا قمنا بتمرير الوسيطتين الأولى والثانية، حيث تمثل الأولى
النص الذي يحث المستخدم على إدخال البيانات والوسيطة الثانية تمثل عنوان مربع
الإدخال وهناك وسيطات أخرى لاتهمنا حاليا مثل إحداثيات المربع والقيمة الافتراضية
وغيرها لاحظ المثال.
تلاحظ في المثال السابق أننا قمنا بالاحتفاظ بالقيمة - التي ادخلها المستخدم –
إلى متغير ثم استخدمنا الخاصية Write لكائن Document لكتابة القيمة إلى المستند.
و يمكن استخدام المتغيرات لتحديد الزر الذي تم نقره في مربع رسالة إخراج وتستخدم
لغة VBScript الدالة MsgBox لإظهار نص ما من خلال نافذة منبثقة.. وتلاحظ في المثال
التالي أننا قمنا بتمرير الوسيطتين الأولى والثانية، حيث تمثل الأولى النص الذي
سيظهر وتمثل الثانية الأزرار التي ستظهر في مربع الإخراج.
و بغض النظر عن العبارة الشرطية IF التي لم نتطرق لها بعد، ستجد أن الدالة أعادت
قيمة تمثل الزر الذي تم النقر عليه وفي الشرط التالي نختبر القيمة التي تم وضعها في
المتغير، فإذا كانت تساوي 6 أي نقر المستخدم على الزر نعم فإننا نقوم بتغيير لون
الخلفية إلى الأزرق.
الثوابت Constants:-
الثوابت كما يدل عليها اسمها، هي قيم ثابتة مخزنة تحت اسم معين وتختلف عن المتغيرات
بأنه لا يمكن تغيير قيمها وقت التشغيل ولها فوائد عديدة منها أنها تجعل الكود اقصر
حيث أنها تغنيك عن تمرير القيمة التي قد تكون سلسلة نصية طويلة فباستخدام الثوابت
يكفي تمرير اسم الثابت، وتفيد الثوابت أيضا في جعل الكود اسهل فهما. وهاك مثال على
التصريح عن الثوابت واستخدامها.
وهناك ثوابت جاهزة معرفة داخل اللغة وتسهل عليك الكثير من المهام ولو عدت بعض
الخطوات إلى الوراء ستجد انك قبل قليل استخدمت أحد الثوابت المعرفة داخل اللغة وهو
الثابت vbYesNo والذي تم استخدامه مع مربع الرسالة وهناك ثوابت أخرى من الممكن أن
تحل محله مثل vbYesNoCancel .. وفيما يلي جملة من الثوابت التي يتم استخدامها كثيرا
داخل اللغة.
المصفوفات متعددة الأبعاد ثابتة الحجم Fixed Arrays:
لاحظت في المثال السابق أن المصفوفة ذات بعد واحد أي ذات عمود واحد، و توفر لغة
VBScript إمكانية إنشاء مصفوفات متعددة الأبعاد لاحظ المثال التالي شفرة برمجية :
المصفوفات الديناميكية Dynamic Arrays :
قد لا نعلم عدد العناصر التي نريد إدخالها في المصفوفة أو نريد من المستخدم
تحديد ذلك، ولا يمكننا ذلك من خلال المصفوفات ثابتة الحجم التي قمنا باستعمالها قبل
قليل ولذلك سنلجأ إلى استخدام المصفوفات متغيرة الحجم (الديناميكية) وهذا مثال على
استخدام هذا النوع من المصفوفات..
تلاحظ في المثال السابق أننا قمنا بتعريف المصفوفة دون تحديد عدد العناصر وعندما
أدخل المستخدم عدد العناصر فإننا قمنا بإعادة تصريحها باستخدام العبارة ReDim لتصبح
بالحجم الجديد.
ملاحظات عامة:-
- يجب مراعاة مكان تصريح المتغيرات والمصفوفات فعند الحاجة لاستخدامها في داخل
إجراء معين فإنه يتم التصريح عنها في نفس الإجراء وعند الحاجة للتعامل معها في أكثر
من إجراء فإنه يجب التصريح عنها خراج الإجراءين لتحتفظ بقيمها لاحظ المثال..
الآن عندما تنقر على الزر Button1 فإنه سيتم اسند القيمة 10 إلى المتغير Counter
ولكن عندما تنقر على الزر Button2 ستجد أن المتغير فقد قيمته … الآن انقل التصريح
خارج الإجراء وانقر على الزرين بتتابع ولاحظ النتيجة.
- يمكن التصريح لأكثر من متغير أو مصفوفة بعبارة Dim واحدة