Vous êtes sur la page 1sur 3

‫اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﮫﻨﺪﺳﺔ اﻟﻌﻜﺴﯿﺔ‬ ‫ﻗﻮاﻋﺪ ﻟﻐﺔ ‪) VBScript‬اﻟﺠﺰء اﻷول(‬

‫)‪author: BloOdY CoDe BoY (BcB‬‬


‫‪research title : VBS Grammars‬‬
‫‪supported by : www. AT4RE.com‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﯿﻢ ‪....‬‬

‫ﺳﻨﺘﻌﺮض ﻓﻲ ھﺬا اﻟﺒﺤﺚ إﻟﻰ ﻗﻮاﻋﺪ أﺳﺎﺳﯿﺔ ﻓﻲ ﻟﻐﺔ ‪.... Visual Basic Script‬‬
‫‪ -١‬اﻟﻤﺼﻔﻮﻓﺎت ‪. Arrays‬‬
‫‪ -٢‬اﻟﺠﻤﻞ اﻟﺸﺮﻃﯿﺔ ‪.‬‬
‫_‪ -١‬ﺟﻤﻞ ‪IF‬‬
‫_‪ -٢‬ﺟﻤﻠﺔ ‪. Select Case‬‬
‫‪ -٣‬اﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ ‪. Loops‬‬
‫_‪ -١‬ﺣﻠﻘﺎت ‪. For‬‬
‫_‪ -٢‬ﺣﻠﻘﺎت ‪. Do‬‬
‫_‪ -٣‬ﺣﻠﻘﺎت ‪. Loop‬‬
‫_‪ -٤‬ﺣﻠﻘﺔ ‪. While‬‬

‫‪ -١_٣‬اﻟﻤﺼﻔﻮﻓﺎت ‪: Arrays‬‬
‫ﻛﺎن اﻟﺒﺤﺚ اﻟﺜﺎﺑﻖ ﻋﻦ اﻟﻤﺘﻐﯿﺮات وﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ واﻟﺘﺼﺮﻳﺢ ﻋﻦ ﻣﺘﻐﯿﺮ ‪ ،‬ﻟﻜﻦ ﻣﺎذا ﻟﻮ أردﻧﺎ اﻟﺘﺼﺮﻳﺢ ﻋﻦ أﻟﻒ‬
‫ﻣﺘﻐﯿﺮ!!!‪ ..‬واﻟﺘﻌﺎﻣﻞ ﻣﻌﮫﻢ داﺧﻞ اﻟﺸﻔﺮة ؟؟‪ ...‬ﺑﺎﻟﺘﺎﻟﻲ ﻻ ﻳﻤﻜﻦ اﻹﺳﺘﻐﻨﺎء ﻋﻦ اﻟﻤﺼﻔﻮﻓﺎت ﻓﻲ أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ‪،‬‬
‫واﻟﻤﺼﻔﻮﻓﺔ ﺑﻜﻞ ﺑﺴﺎﻃﺔ ھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﺘﻐﯿﺮات ﻣﻮﺿﻮﻋﺔ ﺗﺤﺖ اﺳﻢ واﺣﺪ وﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻛﻞ ﻋﻨﺼﺮ ﺑﺮﻗﻢ‬
‫ﺗﺮﺗﯿﺒﻪ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ‪ Index‬وﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺗﺴﻤﻰ ﺣﺪود ‪ ، Bounds‬وﺗﻨﻘﺴﻢ اﻟﻤﺼﻔﻮﻓﺎت إﻟﻰ أرﺑﻌﺔ أﻧﻮاع‬
‫رﺋﯿﺴﯿﺔ )‪.( Fixed , Dynamic , one dimensional , Multi-dimensional‬‬

‫‪ -١_١_٣‬ﻣﺼﻔﻮﻓﺎت ﺛﺎﺑﺘﺔ اﻟﺤﺠﻢ ‪: Fixed Arrays‬‬


‫ﻓﻲ ﻣﻌﻈﻢ اﻷﺣﯿﺎن ﻳﻜﻮن ﻋﺪد ﺣﺪود اﻟﻤﺼﻔﻮﻓﺔ ﻣﻌﺮوف ﺑﺎﻟﻨﺴﺒﺔ ﻟﻨﺎ ﻓﻲ ھﺬه اﻟﺤﺎﻟﺔ ﻧﺴﺘﺨﺪم اﻟﻤﺼﻔﻮﻓﺎت ﺛﺎﺑﺘﺔ‬
‫اﻟﺤﺠﻢ ‪ ،‬ﻓﻤﺜﻼ إذا أردﻧﺎ اﻟﺘﺼﺮﻳﺢ ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﺑﺈﺳﻢ ‪ Process_Array‬ﻣﻜﻮﻧﺔ ﻣﻦ ‪ ١٠٠‬ﺣﺪ ﻛﺎﻵﺗﻲ‪:‬‬

‫)‪Dim process_Array(99‬‬

‫ﻣﻊ ﻣﻼﺣﻈﺔ أن أول ﺣﺪ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ﻳﺄﺧﺪ اﻟﺮﻗﻢ ﺻﻔﺮ وآﺧﺮ ﺣﺪ ﻳﺄﺧﺬ ‪ ٩٩‬أي ‪ ١٠٠‬ﺣﺪ ‪ . Bound‬وﻳﻜﻮ إﺳﻢ ﻛﻞ‬
‫ﺣﺪ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ھﻮ ﻧﻔﺲ إﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ ورﻗﻢ ﻳﻤﺜﻞ ﺗﺮﺗﯿﺒﻪ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ‪ ،‬ﻓﻤﺜﻼ ﻟﻠﺘﻌﺒﯿﺮ ﻋﻦ اﻟﺤﺪ‬
‫اﻟﺨﺎﻣﺲ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺴﺎﺑﻘﺔ ﻳﻜﻮن )‪. process_Array(4‬‬

‫‪1‬‬ ‫ﺳﻠﺴﻠﺔ ﺗﻌﻠﯿﻢ ﺑﺮﻣﺠﺔ اﻟﻔﯿﺮوﺳﺎت و ﺑﺮاﻣﺞ اﻟﺤﻤﺎﻳﺔ واﻟﺠﺪران اﻟﻨﺎرﻳﺔ‬


‫اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﮫﻨﺪﺳﺔ اﻟﻌﻜﺴﯿﺔ‬ ‫ﻗﻮاﻋﺪ ﻟﻐﺔ ‪) VBScript‬اﻟﺠﺰء اﻷول(‬

‫ﻣﺜﺎل ﻋﻠﻰ إﺳﺘﺨﺪام ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت‪:‬‬


‫>‪<html‬‬
‫>‪<head><title>Example on fixed arrays</title></head‬‬
‫>‪<body‬‬
‫>"‪<script language="vbscript‬‬

‫‪'here we put our declarations‬‬


‫‪dim given_num , number‬‬
‫)‪dim nums(4‬‬

‫‪'here we put the Bounds data‬‬


‫‪nums(0)=10‬‬
‫‪nums(1)=20‬‬
‫‪nums(2)=30‬‬
‫‪nums(3)=40‬‬
‫‪nums(4)=50‬‬

‫)"‪given_num=inputBox("type number between 0 & 4","example on fixed Arrays","number like 2‬‬

‫)‪number=nums(given_num‬‬

‫‪MsgBox number‬‬

‫>‪</script‬‬

‫>‪</body‬‬
‫>‪</html‬‬

‫إذن ﻓﺎﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ ھﺬا اﻟﻨﻮع ﺗﻜﻮن ﺟﯿﺪة ﺣﯿﻦ ﻧﻌﻠﻢ ﻋﺪد اﻟﺤﺪود اﻟﻤﻄﻠﻮﺑﺔ ‪ ،‬ﻟﻜﻦ ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم ﻣﻌﺮﻓﺘﻨﺎ ﻟﻌﺪد‬
‫ﺣﺪود أو ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻓﻠﻦ ﻳﻜﻮن اﻟﺤﻞ اﻷﻓﻀﻞ ﺑﺄن ﻧﺠﻌﻞ ﻋﺪد اﻟﺤﺪود أﻛﺒﺮ ﻣﻦ اﻟﻤﺘﻮﻗﻊ ﻷن ذﻟﻚ ﺳﯿﮫﺪر‬
‫ﻣﺴﺎﺣﺔ ﻛﺒﯿﺮة ﻣﻦ اﻟﺬاﻛﺮة ‪ ،‬وﻛﺬﻟﻚ ﻻﻳﻤﻜﻦ أن ﻧﺠﻌﻞ ﻋﺪد ﺣﺪود اﻟﻤﺼﻔﻮﻓﺔ أﻗﻞ ﻣﻦ ﻋﺪد اﻟﻌﻨﺎﺻﺮ اﻟﻤﺮاد ﺗﺨﺰﻳﻨﮫﺎ‬
‫ﻷن ذﻟﻚ ﺳﯿﺘﺴﺒﺐ ﻓﻲ ﺣﺪوث ﺧﻄﺄ ‪ Buffer Overflow‬وھﻮ ﺧﻄﺄ ﻳﺤﺪث ﻧﺘﯿﺠﺔ إﺳﻨﺎد ﻗﯿﻤﺔ ﻟ ﻤﺘﻐﯿﺮ أﻛﺒﺮ ﻣﻦ‬
‫اﻟﻤﺴﺎﺣﺔ اﻟﻤﺤﺠﻮزة ﻟﻪ ﻓﻲ اﻟﺬاﻛﺮة‪.‬‬

‫ﺑﺎﻟﺘﺎﻟﻲ ﻛﺎن ﻟﺰاﻣﺎً ﻋﻠﯿﻨﺎ اﻟﺘﻌﺮض ﻟﻨﻮع ﺟﺪﻳﺪ ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت وھﻲ اﻟﻤﺼﻔﻮﻓﺎت اﻟﺪﻳﻨﺎﻣﯿﻜﯿﺔ‪.‬‬

‫‪ -٢_١_٣‬اﻟﻤﺼﻔﻮﻓﺎت اﻟﺪﻳﻨﺎﻣﯿﻜﯿﺔ ‪: Dynamic Arrays‬‬


‫ﻛﻤﺎ ذﻛﺮت ﺳﺎﺑﻘﺎً أن ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻤﺼﻔﻮﻓﺎت ﻓﻲ ﺑﺪاﻳﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻻ ﻧﻌﻠﻢ ﻛﻢ ﻋﺪد ﺣﺪودھﺎ ﻟﺬا ﻟﺘﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ‬
‫دﻳﻨﺎﻣﯿﻜﯿﺔ ﺑﺈﺳﻢ ‪ my_dynamic_array‬ﻣﺜﻼً ‪ ،‬ﻧﺴﺘﺨﺪم اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‪:‬‬
‫)(‪Dim my_dynamic_array‬‬

‫وﻟﺘﻐﯿﯿﺮ ﻋﺪد ﺣﺪود اﻟﻤﺼﻔﻮﻓﺔ ﻓﻲ أي وﻗﺖ ﻧﺴﺘﺨﺪم اﻟﺼﯿﻐﺔ اﻟﺘﺎﻟﯿﺔ‪:‬‬


‫‪ReDim my_dynamic_array(x) ‘where x is the number of bounds wanted‬‬

‫‪2‬‬ ‫ﺳﻠﺴﻠﺔ ﺗﻌﻠﯿﻢ ﺑﺮﻣﺠﺔ اﻟﻔﯿﺮوﺳﺎت و ﺑﺮاﻣﺞ اﻟﺤﻤﺎﻳﺔ واﻟﺠﺪران اﻟﻨﺎرﻳﺔ‬


‫اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﮫﻨﺪﺳﺔ اﻟﻌﻜﺴﯿﺔ‬ ‫ﻗﻮاﻋﺪ ﻟﻐﺔ ‪) VBScript‬اﻟﺠﺰء اﻷول(‬

‫ﻣﺜﺎل ﻋﻠﻰ إﺳﺘﺨﺪام اﻟﻤﺼﻔﻮﻓﺎت اﻟﺪﻳﻨﺎﻣﯿﻜﯿﺔ‪:‬‬


‫>‪<html‬‬
‫>‪<head><title>example on dynamic arrays</title></head‬‬
‫>‪<body‬‬
‫>"‪<script Language="vbscript‬‬
‫)(‪Dim name_array‬‬
‫‪Dim num‬‬
‫)"? ‪num=inputBox("how many letters in ur first name‬‬
‫) )‪ReDim name_array( (num-1‬‬
‫)‪msgbox("the lower bound is:" & lbound(name_array‬‬
‫) )‪msgbox("the upper bound is:" & ubound(name_array‬‬
‫>‪</script‬‬
‫>‪</body‬‬
‫>‪</html‬‬

‫ﻓﻲ اﻟﻜﻮد اﻟﺴﺎﺑﻖ ﻗﻤﻨﺎ ﺑﺈﺳﺘﻘﺒﺎل رﻗﻢ ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﻳﻤﺜﻞ ﻋﺪد ﺣﺮوف إﺳﻤﻪ اﻷول ﺛﻢ أﻋﺪﻧﺎ ﺗﻌﺮﻳﻒ ﻋﺪد ﺣﺪود‬
‫اﻟﻤﺼﻔﻮﻓﺔ ﺑﻌﺪد ﺣﺮوف اﻻﺳﻢ ﺑﻌﺪ ﻃﺮح واﺣﺪ ﻷن أﺳﺎس اﻟﻤﺼﻔﻮﻓﺔ ﺳﯿﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ‪.‬‬

‫أﻣﺎ اﻟﻨﻮﻋﺎن اﻟﻤﺘﺒﻘﯿﺎن ﻣﻦ اﻧﻮاع اﻟﻤﺼﻔﻮﻓﺎت )‪ ( one dimensional , Multi-dimensional‬ﻟﻦ ﻧﺘﻄﺮق إﻟﯿﮫﻤﺎ ‪،‬‬
‫ﻓﮫﻤﺎ ﻟﯿﺴﺎ ﻓﻲ ﻣﺠﺎل دراﺳﺘﻨﺎ‪.‬‬

‫وھﺬا ﻣﺎ وﺳﻌﻪ وﻗﺘﻲ اﻵن ‪ .....‬ﻓﻲ اﻟﺠﺰء اﻟﺜﺎﻧﻲ ﻣﻦ ﻗﻮاﻋﺪ اﻟﻠﻐﺔ ﺳﻨﻌﺎﻟﺞ اﻟﺠﻤﻞ اﻟﺸﺮﻃﯿﺔ واﻟﺤﻠﻘﺎت اﻟﺘﻜﺮارﻳﺔ‬
‫إن ﺷﺎء اﷲ‪.‬‬

‫ﻣﻠﺤﻮﻇﺔ ‪ :‬ﻳﻨﺒﻐﻲ ﻋﻠﯿﻚ داﺋﻤﺎً ﻗﺮاءة اﻷﻣﺜﻠﺔ اﻟﻤﺮﻓﻘﺔ ﻣﻊ اﻟﺪرس ﺣﯿﺚ ھﻨﺎك ﺗﻌﻠﯿﻘﺎت ﺗﻮﺿﺢ ﺑﻌﺾ أﻣﻮر اﻟﻠﻐﺔ‬

‫ﺳﻼم‪..........‬‬
‫‪Bloodycodeboy@hotmail.com‬‬
‫‪Bloodycodeboy@yahoo.com‬‬

‫‪3‬‬ ‫ﺳﻠﺴﻠﺔ ﺗﻌﻠﯿﻢ ﺑﺮﻣﺠﺔ اﻟﻔﯿﺮوﺳﺎت و ﺑﺮاﻣﺞ اﻟﺤﻤﺎﻳﺔ واﻟﺠﺪران اﻟﻨﺎرﻳﺔ‬

Vous aimerez peut-être aussi