Âñå ïðèìåðû ñêðèïòîâ äåéñòâóþò òîëüêî
â MSIE 4.x!
 êîíöå ñòàòüè åñòü ëîãè÷åñêàÿ èãðà
Èíâåðñèÿ!
Ïðåäèñëîâèå.
ß íå îøèáóñü, åñëè íàçîâó Áåéñèê (BASIC - Begginners Allpurpose Symbolic Instruction Code, ò.å ñèìâîëè÷åñêèé êîìàíäíûé óíèâåðñàëüíûé êîä äëÿ íà÷èíàþùåãî :) ñàìûì ïðîñòûì ÿçûêîì ïðîãðàììèðîâàíèÿ. Äàæå ïðè íåáîëüøîì îïûòå, ïðîãðàììû ìîæíî ïèñàòü ïðàêòè÷åñêè íå çàäóìûâàÿñü. Ñâîþ èñòîðèþ ýòîò ÿçûê ïðîãðàììèðîâàíèÿ âûñîêîãî óðîâíÿ íà÷àë â äàëåêîì 1963 ãîäó. Èìåííî òîãäà íåáîëüøîé ãðóïïîé ñòóäåíòîâ ïîñëåäíåãî êóðñà Äîðòìóòñêîãî êîëëåäæà ïîä ÷óòêèì ðóêîâîäñòâîì ïðîôåññîðà Äæ. Êåìåíè è áûëà ðàçðàáîòàíà ñàìàÿ ïåðâàÿ âåðñèÿ ýòîãî ÿçûêà.  òî âðåìÿ, ïîìèìî Áåéñèêà, øèðîêî áûëè ðàñïðîñòðàíåíû òàêæå Fortran, Cobol, Algol, PL/1, Focal è Pascal. Èç íèõ, äî íàñòîÿùåãî âðåìåíè äîæèëè, ïîæàëóé ëèøü Ïàñêàëü è Áåéñèê, ñèëüíî èçìåíèâøèñü ïðè ýòîì.
Êàê ýòî íå ïðèñêîðáíî äëÿ ÿðûõ ïðîòèâíèêîâ Microsoft, íî èìåííî ýòà êîìïàíèÿ ñïîñîáñòâîâàëà øèðîêîìó ðàñïðîñòðàíåíèþ Áåéñèêà (âñïîìíèì Quick Basic). Ïî ìîåìó îïûòó ïèñàòü íà íåì áûëî óäîáíåå, ÷åì íà Turbo Bacic êîìïàíèè Borland, êîòîðàÿ áîëåå èçâåñòíà ïî ÿçûêó C++. Ïîâñåìåñòíàÿ "Âèíäóàëèçàöèÿ" PC êîìïüþòåðîâ, âûíóäèëà ê ðàçðàáîòêå âåðñèè Áåéñèêà äëÿ Windows ïðèëîæåíèé. Òàêèì êëîíîì â 1991 ãîäó ñòàë Visual Basic, ïîçâîëÿþùèé âèçóàëüíî ñîçäàâàòü ïðèêëàäíûå ïðîãðàììû, äîâîëüíî ïðèëè÷íîãî óðîâíÿ. Íî âñå æå, ïî ìîåìó ìíåíèþ, èç çà ïðîñòîòû Visual Basic ñäàåò ñâîè ïîçèöèè òåì æå Ñè è Java. Ñ ïîÿâëåíèåì âñåìèðíîé ñåòè Internet, è ÿçûêà HTML ñòàëî âîçìîæíûì ñîçäàíèå àêòèâíûõ ïðèëîæåíèé íà âåá ñòðàíèöàõ. Åäèíñòâåííûì ÿçûêîì äëÿ ýòèõ öåëåé áûë Java Script. Äà, èìåííî áûë. Êîãäà ñâåò óâèäåë Microsoft Internet Explorer 3.0, â íåì, ïîìèìî ïîääåðæêè Java script ïîÿâèëàñü è ïîääåðæêà Visual Basic Scripting Edition, èëè ïðîñòî VBscript. Êàê èçâåñòíî, JavaScript áûë ðàçðàáîòàí Netscape è ïîíà÷àëó ñòàë èçâåñòåí êàê LiveScript. Ïîñëå øóìèõè âîêðóã Java, Netscape ïåðåèìåíîâàëà åãî â JavaScript, êîãäà ïîëó÷èëà ëèöåíçèþ îò Sun. Microsoft ñàìîñòîÿòåëüíî ðàçðàáîòàëà JScript äëÿ ñâîåãî áðîóçåðà, çà ÷òî ïðàâäà òîæå íå èçáåæàëà ðàçáèðàòåëüñòâ ñ Sun.
Êðîìå Java, MSIE3.0 (è âûøå), ìîæåò åùå è èñïîëíÿòü ïðîãðàììû íà VBScript. Netscape Navigator íå ïîääåðæèâàåò ïîêà (íàäåþñü, ÷òî ïîêà) VBScript, ïîýòîìó ýòîò ÿçûê íå î÷åíü øèðîêî ïðèìåíÿåòñÿ, à ìíîãèì äàæå íå èçâåñòåí. À æàëü, ÷åëîâåêó óìåþùåìó ïèñàòü íà îáû÷íîì QB äîñòàòî÷íî ìåñÿöà, à òî è ìåíüøå, ÷òîáû ïåðåéòè íà VBscript è ñîçäàâàòü êðàñèâûå àêòèâíûå âåá ñòðàíèöû, íè ÷åì íå óñòóïàþùèå ñòðàíèöàì ñ JavaScript è äàæå âî ìíîãèì ïðåâîñõîäÿùèå èõ. Ïîýòîìó, åñëè ñ íàäåæäîé ñìîòðåòü â áóäóùåå, òî èçó÷èòü VBScript ìîæíî óæå ñåé÷àñ.  ýòîé ñòàòüå ÿ ïîïûòàþñü ðàññêàçàòü îñíîâû VBScript, íå âäàâàÿñü â òîíêîñòè. Ìîÿ öåëü, òîëüêî çàèíòåðåñîâàòü ðÿäîâîãî ïîëüçîâàòåëÿ è íà÷èíàþùèõ WebÄèçàéíåðîâ. Âîò è âñå èç èñòîðèè:) Íà÷íåì.
Cðàâíåíèå VBScript è JavaScript.
Ïðåæäå ÷åì íà÷èíàòü ïîçíàâàòü VBScript, äàâàéòå ñðàâíèì äâå îäèíàêîâûå, ïðîñòûå ïðîãðàììû íà JS è VBS. Ýòî áóäåò ïîëåçíûì äëÿ òåõ, êòî çíàåò JavaScript (ê êîèì ÿ íå îòíîøóñü:(.
Ñóòü ïðîãðàììû: ââîäèì òåêñò â âåðõíåå ïîëå, íàæèìàåì êíîïêó "Ñêîïèðîâàòü" è òåêñò êîïèðóåòñÿ â íèæíåå ïîëå.
| Java Script | VB Script |
| <FORM NAME=forma> <INPUT TYPE="text" NAME="text1"><BR> <INPUT TYPE="text" NAME="text2"><BR> <INPUT TYPE="button" NAME="knopka" VALUE="Ñêîïèðîâàòü" OnClick=copyfun()> </FORM> <SCRIPT LANGUAGE="JavaScript"> function copyfun() </SCRIPT> |
<FORM NAME=forma> <INPUT TYPE="text" NAME="text1"><BR> <INPUT TYPE="text" NAME="text2"><BR> <INPUT TYPE="button" NAME="knopka" VALUE="Ñêîïèðîâàòü" OnClick=copyfun()> </FORM> <SCRIPT LANGUAGE="VBScript"> sub copyfun </SCRIPT> |
Äà, êàê âèäíî, ðàçëè÷èé ïðàêòè÷åñêè íåò. JS ïîääåðæèâàåò òîëüêî ôóíêöèè, VBS è ôóíêöèè è ïðîöåäóðû (ïîäïðîãðàììû). Òàê æå ñëåäóåò îòìåòèòü, ÷òî VBS îòëè÷èå îò JS íå ÷óâñòâèòåëåí ê ðåãèñòðó ñèìâîëîâ, ò.å. äëÿ íåãî ÷òî copyfun(), ÷òî CoPYfuN() - îäèí ïåñ:). Òàê ÷òî ìîæåòå ñäåëàòü âûâîäû, òåì, êòî çíàåò ÿâà ñêðèïò, áóäåò ëåãêî îñâîèòü VBS, à òåì êòî íå çíàåò ïîêà íè òîãî íå äðóãîãî áóäåò åùå ëåã÷å, ïîñêîëüêó ïåðåó÷èâàòüñÿ íå ïðèäåòñÿ. Ó÷èòüñÿ ëó÷øå íà ïðèìåðàõ, ïîýòîìó ïîñòàðàþñü èõ çäåñü ïðèâîäèòü ïîáîëüøå. ß íàäåþñü, ÷òî Âû õîòÿ áû óìååòå ïèñàòü ïðîãðàììû íà îáûêíîâåííîì Áåéñèêå (QB èëè TB)? Òîãäà ýòà ñòàòüÿ èìåííî äëÿ Âàñ.
Îò QuickBasic äî VBscript - îäèí øàã.
Íà÷íåì èçó÷åíèå íå ñòàíäàðòíûì ïîäõîäîì. Îáû÷íî ñíà÷àëà âñå ïèøóò ïðîãðàììó, âûâîäÿùóþ íà ýêðàí ñòðîêó "ÏÐÈÂÅÒ ÏÈÏËÛ :)" Ìû æå ïîïðîáóåì ïåðåâåñòè îáû÷íóþ "Áåéñèêîâñêóþ" ïðîãðàììó - íà VBscript, ÷òîáû ïîêàçàòü - êàê ìåæäó íèìè ìíîãî îáùåãî.
Ïîñòàâèì çàäà÷ó, íàïèñàòü ïðîãðàììó, êîòîðàÿ áû ñëó÷àéíûì îáðàçîì çàãàäûâàëà ÷èñëî îò 1 äî 100, è ïðåäëàãàëà Âàì åãî óãàäàòü. Ïðè íåïðàâèëüíîì ïðåäïîëîæåíèè, ïðîãðàììà äîëæíà âûâîäèòü ñîîáùåíèå î òîì, áîëüøå çàãàäàííîå ÷èñëî èëè ìåíüøå. Âåäåòñÿ ïîäñ÷åò ïîïûòîê.  ñëó÷àå ïîáåäû âûâîäèòñÿ ïîçäðàâëåíèå.Ïðîãðàììà íà îáû÷íîì Áåéñèêå:
10 CLS : RANDOMIZE
20 a = INT ( RND(1)*100+1 ) : p = 1
30 PRINT "Çàãàäàíî ÷èñëî îò 1 äî 100, óãàäàéòå åãî:)"
40 PRINT "Âàø âàðèàíò";
50 INPUT v
60 IF a > v THEN PRINT "Çàãàäàííîå ÷èñëî áîëüøå" :
p = p + 1 : GOTO 40
70 IF a
Êàê âèäèòå, òàêàÿ ïðîãðàììà ïîøëà áû äàæå íà ÁÊ0010:) ß äàæå îñòàâèë íåíàâèñòíûå îïåðàòîðû GOTO (èíòåðåñíî, îá íèõ åùå ïîìíÿò?). Äëÿ òåõ êòî íå ïîíèìàåò, îïèøó àëãîðèòì:
10 î÷èñòêà ýêðàíà è âêëþ÷åíèå ãåíåðàòîðà ñëó÷àéíûõ ÷èñåë. 20 ïåðåìåííîé "a" ïðèñâàèâàåòñÿ öåëîå ñëó÷àéíîå çíà÷åíèå îò 1 äî 100, ñ÷åò÷èêó ÷èñëà ïîïûòîê ïðèñâàèâàåòñÿ çíà÷åíèå=1. 30, 40 âûâîäèòñÿ ñîîáùåíèå. 50 ââîä Âàøåãî âàðèàíòà "v". 60 åñëè çàãàäàííîå ÷èñëî áîëüøå Âàøåãî âàðèàíòà, òî âûâîäèòñÿ ñîîáùåíèå, íà åäèíèöó óâåëè÷èâàåòñÿ ñ÷åò÷èê ïîïûòîê è ïðîãðàììà îòïðàâëÿåòñÿ íà ñòðîêó 40. 70 åñëè çàãàäàííîå ÷èñëî ìåíüøå Âàøåãî âàðèàíòà, òî âûâîäèòñÿ ñîîáùåíèå, íà åäèíèöó óâåëè÷èâàåòñÿ ñ÷åò÷èê ïîïûòîê è ïðîãðàììà îòïðàâëÿåòñÿ íà ñòðîêó 40. 80 Åñëè ÷èñëà ñîâïàäóò òî âûâîäèòñÿ ïîçäðàâëåíèå, êñòàòè, ïî èäåå, ïðîâåðêó ýòîãî óñëîâèÿ ìîæíî è îïóñòèòü. 90 THE END
Êîä òèïè÷íîé ñòðàíèöû ñî ñêðèïò ïðîãðàììîé áóäåò âûãëÿäåòü ïðèìåðíî òàê:
<html>
<head>
<title>Óãàäàé ÷èñëî</title>
</head>
<body bgcolor="white" text="black">
< ... html êîä ôîðìû âçàèìîäåéñòâèÿ ñ VB ïðîãðàììîé ... >
<script language="VBscript">
... êîä ïðîãðàììû ...
</script>
</body>
</html>
Èòàê, íàïèøåì ïðîãðàììó ðåàëèçóþùóþ çàäàííûå óñëîâèÿ ñ ïîìîùüþ VBscript
Íàæìèòå íà êíîïêó "Çàãàäàòü ÷èñëî" è óãàäàéòå åãî:)
ÊÎÄ ÏÐÎÃÐÀÌÌÛ:
<FORM NAME=ugadai>
<INPUT TYPE="button" NAME="begin" VALUE="Çàãàäàòü
÷èñëî"><BR><BR>
Âàø âàðèàíò:<BR>
<INPUT TYPE="text" NAME="chislo"> <BR>
<INPUT TYPE="button" NAME="but" VALUE="Enter">
</FORM>
<!--************************* óãàäàé ÷èñëî
******************************-->
<script language="vbscript"><!--
dim a ' îïðåäåëÿåì ïåðåìåííûå dim p dim v sub begin_onclick ' ïðîöåäóðà ñðàáàòûâàþùàÿ ïðè íàæàòèè (ñîáûòèå onclick) ' êíîïêè ñ èìåíåì begin randomize ' âêëþ÷åíèå ãåíåðàòîðà ñëó÷àéíûõ ÷èñåë a=int(rnd(1)*100+1) ' ïðèñâàèâàíèå ïåðåìåííîé (a) ñëó÷àéíîãî çíà÷åíèÿ p = 1 ' îáíóëåíèå ñ÷åò÷èêà alert "÷èñëî çàãàäàíî" ' âûâîä ñîîáùåíèÿ â îòäåëüíîì îêíå end sub ' êîíåö ïðîöåäóðû sub but_onclick ' ïðîöåäóðà ñðàáàòûâàþùàÿ ïðè íàæàòèè (ñîáûòèå onclick) êíîïêè ñ èìåíåì but v = document.ugadai.chislo.value ' ïåðåìåííîé (v) ïðèñâàèâàåòñÿ çíà÷åíèå ' ñîäåðæàùååñÿ â ïîëå ââîäà ôîðìû ' ïóòü: äîêóìåíò (ïðîñòî ýòà html ñòðàíèöà).ôîðìà ñ èìåíåì ugadai. ' îáúåêò- ïîëå äëÿ ââîäà ñ èìåíåì chislo. ñâîéñòâî value v=cint(v) ' ïîñêîëüêó ïîëå äëÿ ââîäà ñîäåðæèò òåêñòîâóþ ' èíôîðìàöèþ, òî ïåðåìåííóþ (v) íàäî ïðåîáðà- ' çîâàòü â öåëî÷èñëåííûé òèï (ôóíêöèÿ cint) if a > v then alert "çàãàäàííîå ÷èñëî áîëüøå, ïîïðîáóéòå åùå" p = p + 1 end if if a < v then alert "çàãàäàííîå ÷èñëî ìåíüøå, ïîïðîáóéòå åùå" p = p + 1 end if if a = v then document.write"<center>Ïîáåäà çà "&p&" õîäîâ.</center>" end if ' îïåðàòîð document.write âûâîäèò ñîäåðæàùóþñÿ ' â êàâû÷êàõ èíôîðìàöèþ â íîâîå îêíî áðîóçåðà ' êàê html êîä. end sub --></script>
Åñëè âäóìàòüñÿ è âíèìàòåëüíî èçó÷èòü ïðèâåäåííûé êîä, òî äóìàåòñÿ ìíîãîå ñòàíåò ÿñíûì. Îòâåòèì íà íåêîòîðûå âîïðîñû, êîòîðûå ìîãóò âîçíèêíóòü ïî õîäó îñìûñëåíèÿ ïðîãðàììû:
__×òî áû ïðîèçîøëî, åñëè áû ìû â íà÷àëå ñêðèïòà íå îáúÿâèëè ïåðåìåííûå? Òîãäà áû çíà÷åíèå ïåðåìåííîé "a" çàäàííîé â ïðîöåäóðå "sub begin_onclick" íå áûëî "âèäíî" â äðóãèõ ïðîöåäóðàõ (íàïðèìåð "sub but_onclick" ). Ýòî óïóùåíèå ïðèâåäåò èëè ê îøèáêå, èëè ê òîìó, ÷òî çíà÷åíèþ "a" íå áóäåò íè÷åãî ïðèñâîåíî. Ìîæíî òàêæå âîñïîëüçîâàòüñÿ îïåðàòîðîì "public a" âìåñòî "dim a" òîãäà çíà÷åíèå "a" ñòàíåò âèäíûì âî âñåõ îòêðûòûõ íà äàííûé ìîìåíò äîêóìåíòàõ, ýòî àêòóàëüíî ïðè ôðåéìîâîé ñòðóêòóðå. Åñëè íàïèñàòü "dim a(100)" òî áóäåò çàäàí ìàññèâ èç ñîòíè ïåðåìåííûõ "a", â òî÷íîñòè êàê â îáû÷íîì Áåéñèêå. Âî ìíîãèõ ñëó÷àÿõ ïåðåìåííûå ìîæíî è íå îáúÿâëÿòü, åñëè òåëî ïðîãðàììû íàõîäèòñÿ â îäíîé ïðîöåäóðå.
__×òî òàêîå ýòè ïðîöåäóðû? Ïðîöåäóðà ýòî îáùåå íàçâàíèå ôóíêöèé èëè ïîäïðîãðàìì. Èìååò ñèíòàêñèñ:
sub name_ñîáûòèå ....... end sub.
name - ýòî èìÿ ïðîöåäóðû, íàïðèìåð ìû íàïèñàëè, ÷òî êíîïêà "çàãàäàòü ÷èñëî" íàçûâàåòñÿ "chislo", çíà÷èò ïîäïðîãðàììà sub chislo_onclick âûïîëíèòñÿ ïðè íàæàòèè íà ýòó êíîïêó.
ñîáûòèå - òî, ÷òî ìîæåò "ñëó÷èòüñÿ" â îêíå áðîóçåðà. Íàïðèìåð "onclick" îçíà÷àåò, ÷òî ïðîöåäóðà âûïîëíèòñÿ, ïðè íàæàòèè íà êíîïêó, ïðåäâàðèòåëüíî çàäàííóþ â ôîðìå (êàê â íàøåì ñëó÷àå). Ñóùåñòâóåò íåñêîëüêî âèäîâ ñîáûòèé. Èç ñàìûõ ðàñïðîñòðàíåííûõ ìîæíî îòìåòèòü: window_onload - çàïóñêàåòñÿ ïðè ïîëíîé çàãðóçêå äîêóìåíòà:
<Script language="VBscript"><!--
Sub window_onload
Alert "Äîáðî ïîæàëîâàòü íà ìîþ äîìàøíþþ
ñòðàíèöó!"
end sub
--></Script>
Ïðè çàãðóçêå äîêóìåíòà ïîÿâèòñÿ îêîøêî ñ äàííîé íàäïèñüþ è êíîïêîé ÎÊ
Ñîáûòèå onmouseover - âîçíèêàåò ïðè íàâåäåíèè óêàçàòåëÿ ìûøè íà ãèïåð ññûëêó.
<a href="http://wanderfly.da.ru/" name="link">
Íàâåäèòå íà ýòó ññûëêó óêàçàòåëü ìûøè</a>
<script language="vbscript"><!--
sub link_onmouseover
alert "ññûëêà"
end sub
--></script>
Ðàçóìååòñÿ, äàííûé ïðèìåð Âû ìîæåòå èñïîëüçîâàòü òîëüêî êàê øóòêó íà ññûëêó "xxx", ïîòîìó ÷òî íàæàòü íà íåå íåâîçìîæíî:) Íî åñëè ïîìåíÿòü alert "ññûëêà" íà status="Ìîÿ äîìàøíÿÿ ñòðàíèöà", òî ýòî ñîîáùåíèå ïîÿâèòñÿ â ñòðîêå ñòàòóñà.
__ Êàêîâ ïîëíûé ñèíòàêñèñ îïåðàòîðîâ óêàçûâàþùèõ êàê "äîáðàòüñÿ" äî äàííûõ â ïîëå ââîäà?
x = top.èìÿ_ôðåéìà.document.èìÿ_ôîðìû.èìÿ_îáúåêòà_text_box.value
Òàêèì îáðàçîì, ìîæíî äîáðàòüñÿ äî ëþáûõ äàííûõ â îêíå áðîóçåðà, äàæå åñëè îíè ðàñïîëîæåíû â äðóãîì ôðåéìå.
Ïîäâåäåì ïåðâûå èòîãè. VBscript ïåðåíÿë îò îáû÷íîãî Áåéñèêà áîëüøèíñòâî îïåðàòîðîâ è ôóíêöèé (ìàòåìàòè÷åñêèõ, ïðåîáðàçîâàíèÿ äàííûõ è ò.ä.). Îòëè÷èå âûðàæàåòñÿ â ñïåöèôè÷åñêèõ îïåðàòîðàõ ââîäà-âûâîäà èíôîðìàöèè èç îêíà áðîóçåðà è âîçìîæíûõ ñîáûòèÿõ, êîòîðûå ìîãóò "ñëó÷èòüñÿ" ïðè âçàèìîäåéñòâèè ïîëüçîâàòåëÿ è ñòðàíèöû.
Ñïðàâî÷íàÿ èíôîðìàöèÿ. Íåêîòîðûå îïåðàòîðû è ôóíêöèè.
×òîáû Âàì áûëî ëåã÷å ýêñïåðèìåíòèðîâàòü â íàïèñàíèè ñêðèïòîâ, ïðèâåäåì îñíîâíûå îïåðàòîðû è ôóíêöèè VBscript. À òî íà÷íåòå ïèñàòü PRINT "ïðèâåò" èëè ïûòàòüñÿ çàêîí÷èòü öèêë For îïåðàòîðîì Next x :)
| ÑÈÍÒÀÊÑÈÑ | ÏÐÈÌÅÐ | ÎÏÈÑÀÍÈÅ |
Îïåðàòîðû ðàáîòû ñ ìàññèâàìè.
| Dim èìÿ_ìàññèâà (èíäåêñû) | dim a(10),b(20,30) | Îáúÿâëåíèå ìàññèâà |
| Erase èìÿ_ìàññèâà | erase a | Î÷èñòêà ñîäåðæèìîãî ìàññèâà |
Îïåðàòîðû ïðèñâàèâàíèÿ.
| ïåðåìåííàÿ = çíà÷åíèå | a=137 a=b c="ïðèâåò" | Ïðèñâàèâàíèå |
| Set ïåðåìåííàÿ = îáúåêò | set a=document.forma1 | Ïðèñâàèâàíèå ïåðåìåííîé çíà÷åíè ññûëêè íà îáúåêò. |
Êîììåíòàðèè.
| ' êîììåíòàðèè | ' òåêñò | Â |
| Rem êîììåíòàðèè | rem òåêñò | Â |
Êîíñòàíòû Boolean.
| ïåðåìåííàÿ = False | if a=false then ... | Çíà÷åíèå òèïà boolean ðàâíîå 0 |
| ïåðåìåííàÿ = True | if a=true then ... | Çíà÷åíèå òèïà boolean ðàâíîå -1 |
Ôóíêöèè.
The two clash, leading to a hilarious competition to determine who can swindle a young American heiress (played by Glenne Headly) out of $50,000 first. The loser must leave town, while the winner gets to continue their luxurious lifestyle undisturbed. Why Dirty Rotten Scoundrels is Still Relevant
Searching peer-to-peer networks for old movie files exposes users to significant digital security risks, including malware disguised as video codecs, phishing attempts, and copyright infringement notices from internet service providers. Where to Experience the Best Quality Today
In this article, we'll explore the phenomenon of "Dirty Rotten Scoundrels" and its enduring appeal, as well as the world of torrent and DVD rips. We'll examine the reasons behind the film's popularity, the impact of file sharing on the movie industry, and what it means for fans who continue to seek out and share copies of the film.
This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later. dirty rotten scoundrels torrent dvd rip
The popularity of searching for terms like "dirty rotten scoundrels torrent dvd rip" underscores the ongoing demand for accessible, cost-effective ways to view movies. Torrenting, a peer-to-peer file-sharing technology, allows users to download and share files, including movies, directly from other users' computers. This method can offer a vast library of content, including hard-to-find films and TV shows, often without the need for subscription services.
(PAL). While not HD, a quality rip can still look excellent on modern screens, offering that classic, warm, 80s movie aesthetic.
Torrenting relies on peer-to-peer (P2P) technology. When you download a file via a torrent client, you are simultaneously uploading (distributing) pieces of that file to other users. In many jurisdictions, unauthorized distribution of copyrighted material is a serious legal infraction that can result in warning letters from your Internet Service Provider (ISP), fines, or service termination. 3. Poor Quality and Dead Files The two clash, leading to a hilarious competition
: Two con men—the sophisticated Lawrence Jamieson (Michael Caine) and the crude Freddy Benson (Steve Martin)—compete to swindle a wealthy American heiress out of $50,000. The loser must leave town.
Torrent sites are frequently filled with malware, spyware, and phishing scams disguised as movie files.
To understand why audiences still hunt for copies of this film, one must look at the perfect alignment of talent, script, and setting that occurred in 1988. A Dual of Wits and Styles Where to Experience the Best Quality Today In
The plot is deceptively simple: on the glamorous French Riviera, the suave and sophisticated con artist Lawrence Jameson (Michael Caine) finds his territory threatened by a brash, small-time American hustler named Freddy Benson (Steve Martin). Unwilling to share the playground of wealthy socialites, they make a wager: the first one to extract $50,000 from a naive target, a "soap queen" named Janet Colgate (Glenne Headly), gets to stay, and the other must leave town. What follows is a hilarious escalation of schemes, double-crosses, and brilliantly executed physical comedy.
Dirty Rotten Scoundrels is regularly available for rent or purchase in full High Definition (HD) or 4K on platforms like Amazon Prime Video, Apple TV, Google Play, and Vudu. These options cost only a few dollars, support the creators, and guarantee a virus-free, high-quality stream.
This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later.
In this article, we'll explore the enduring appeal of "Dirty Rotten Scoundrels," examine the world of torrent and DVD rips, and discuss the implications of this phenomenon for the film industry.
and was later adapted into a 2005 Broadway musical and a 2019 female-led remake titled The Hustle Key Themes for Analysis
Îïåðàòîðû èñïîëüçóåìûå â âûðàæåíèÿõ
| Ïðèâîæó ïðîñòî ñïèñîê, íàäåþñü âñå è òàê ÿñíî: + And / = Eqv ^ > <= Imp <> \ < => Mod * - Or & Xor |
Òåêñòîâûå Ôóíêöèè
| Instr (íà÷àëî, ñòðîêà, èñêîìàÿ ïîäñòðîêà) | If Instr(1,mail,@) then ... | Âîçâðàùàåò íîìåð ñèìâîëà â ñòðîêå ñ êîòîðîãî íà÷èíàåòñÿ èñõîäíàÿ ïîäñòðîêà |
| Lcase (ñòðîêà) | a=Lcase("ÏÐèâÅÒ") ... a="ïðèâåò" | Ïðåîáðàçîâàíèå ñèìâîëîâ ñòðîêè â ñòðî÷íûå áóêâû |
| Ucase (ñòðîêà) | a=Ucase("ÏÐèâÅÒ") ... a="ÏÐÈÂÅÒ" | Ïðåîáðàçîâàíèå ñèìâîëîâ ñòðîêè â çàãëàâíûå áóêâû |
| Left (ñòðîêà,N ñèìâîëîâ) | a=Left("Ïðèâåò",3) ... a="Ïðè" | Ëåâàÿ ÷àñòü ñòðîêè äëèííîé N ñèìâîëîâ |
| Right (ñòðîêà,N ñèìâîëîâ) | a=Right("Ïðèâåò",3) ... a="âåò" | Ïðàâàÿ ÷àñòü ñòðîêè äëèííîé N ñèìâîëîâ |
| Len (ñòðîêà) | a=Len("Ïðèâåò") ... a=6 | Äëèíà ñòðîêè |
| Ltrim (ñòðîêà) | a=Ltrim(" Ïðèâåò ",) a="Ïðèâåò " | Óäàëÿåò íà÷àëüíûå ïðîáåëû |
| Rtrim (ñòðîêà) | a=Rtrim(" Ïðèâåò ",) a=" Ïðèâåò" | Óäàëÿåò êîíå÷íûå ïðîáåëû |
| Trim (ñòðîêà) | a=Ttrim(" Ïðèâåò ",) a="Ïðèâåò" | Óäàëÿåò íà÷àëüíûå è êîíå÷íûå ïðîáåëû |
| Mid (ñòðîêà, íà÷àëî, N ñèìâîëîâ) | a=Mid("Ïðèâåò",3,2) a="âå" | ×àñòü ñòðîêè ñ ïîçèöèè "íà÷àëî" è äëèíîé N ñèìâîëîâ |
| Left(ñòðîêà,N ñèìâîëîâ) | a=Left("Ïðèâåò",3) a="Ïðè" | Ëåâàÿ ÷àñòü ñòðîêè äëèííîé N ñèìâîëîâ |
| Space (N) | a=Space(5) | Ñòðîêà èç N ïðîáåëîâ |
| String (N ñèìâîëîâ, ñèìâîë) | a=String(5,"A") a="AAAAA" | Ñòðîêà èç N ñèìâîëîâ |
| Ltrim (ñòðîêà) | a=Ltrim(" Ïðèâåò ",) a="Ïðèâåò " | Óäàëÿåò íà÷àëüíûå ïðîáåëû |
Âåòâëåíèå è öèêëû
| Call èìÿ_ñîáûòèå | Call but_onclick | Âûçîâ ïîäïðîãðàììû |
| Do ... Loop Until óñëîâèå |
Do a=a+1 Loop Until a>=5 |
Âûïîëíÿåò êîä õîòÿ áû îäèí ðàç, ïîêà óñëîâèå íå áóäåò èñòèííûì |
| Do ... Loop While óñëîâèå |
Do a=a+1 Loop While a<5 |
Âûïîëíÿåò êîä õîòÿ áû îäèí ðàç, ïîêà óñëîâèå ñïðàâåäëèâî |
| Do Until óñëîâèå ... Loop |
Do Until a>=5 a=a+1 Loop |
Ïîâòîðÿåò âûïîëíåíèå êîäà, ïîêà óñëîâèå íå ñòàíåò èñòèííûì |
| Do While óñëîâèå ... Loop |
Do While a<5 a=a+1 Loop |
Ïîâòîðÿåò âûïîëíåíèå êîäà, ïîêà óñëîâèå ñïðàâåäëèâî |
| For ñ÷åò÷èê=íà÷àëî To êîíåö Step øàã ... next |
For i=1 to 5 a=a+1 next |
Öèêë (çàìåòüòå: ïèøåòñÿ "next" à íå "next i") |
| IF óñëîâèå Then äåéñòâèå1 Else äåéñòâèå2 End if |
IF a>1 Then alert"áîëüøå" | Âûïîëíåíèå êîäà ïðè âûïîëíåíèè óñëîâèÿ |
| Select Case X Case çíà÷åíèå1 äåéñòâèå Case çíà÷åíèå2 äåéñòâèå2 ... End select |
Select Case X Case 10 alert"x=10" Case 20 alert"x=20" End select |
Âûáîðî÷íîå âûïîëíåíèå êîäà ïðè ñîâïàäåíèè çíà÷åíèÿ |
| While óñëîâèå äåéñòâèå Wend |
While a<5 a=a+1 Wend |
Âûïîëíåíèå êîäà ïîêà óñëîâèå èñòèííî |
Oáúÿâëåíèå ôóíêöèé è ïðîöåäóð
| Dim ïåðåìåííàÿ | Dim a | Îáúÿâëåíèå ïåðåìåííîé |
| Sub èìÿ_ñîáûòèå êîä End sub |
Sub but_onclick Alert x End sub |
Ïîäïðîãðàììà |
| Function èìÿ(ïàðàìåòðû) êîä End function |
Function(x,y) x=x*y End function |
Ôóíêöèÿ |
| Exit ... | Exit Do (For, Function, Sub) | Äîñðî÷íûé âûõîä |
Êàê âûçâàòü ñöåíàðèé â VBscript.
Âåá ñòðàíèöà ñ àêòèâíûì ñîäåðæèìûì, âñåãäà äåëèòñÿ êàê áû íà äâå ÷àñòè: Ïåðâàÿ, ýòî html êîä ñàìîé ñòðàíèöû ñîäåðæàùèé íåîáõîäèìûå ýëåìåíòû óïðàâëåíèÿ (ññûëêè, êíîïêè, ôîðìû äëÿ ââîäà èíôîðìàöèè è ò.ä.), è Âòîðàÿ, ñöåíàðèè íà ñêðèïòå, êîòîðûå íà÷èíàþò ðàáîòàòü ïðè ðàçëè÷íûõ ñîáûòèÿõ ïðîèñõîäÿùèõ ñ ýëåìåíòàìè óïðàâëåíèÿ. Ýòî ìîæíî íàçâàòü ãëàâíîé îòëè÷èòåëüíîé îñîáåííîñòüþ ïðîãðàìì äëÿ âåá ñòðàíèö, îò îáû÷íûõ èñïîëíÿåìûõ ïðèëîæåíèé.
Ðàññìîòðèì îñíîâíûå ïðèåìû âûçîâà ñöåíàðèåâ, èëè ïðîöåäóð.
Ñöåíàðèé âûçûâàåìûé íåÿâíî:
<html> <head> <script language="VBScript"> Sub but_onclick Alert "Ïðèâåò ïèïëû:)" End sub </script> </head> <body> <form> <input type="button" name="but"> </form> </body> </html>
Òàêîé ñïîñîá, ïî ìîåìó ìíåíèþ, ñàìûé ïðîñòîé. Óêàçûâàåì èìÿ îïåðàòîðîì name="èìÿ" â òåãå õàðàêòåððèçóþùèì ýëåìåíò óïðàâëåíèÿ, ýòî æå "èìÿ" ïèøåì â âûçûâàåìîé ïðîöåäóðå è ÷åðåç çíàê ïîä÷åðêèâàíèÿ ïèøåì ñîáûòèå, êîòîðîå äîëæíî ïðîèçîéòè äëÿ èñïîëíåíèÿ ñöåíàðèÿ.
Âûçîâ ñöåíàðèÿ îïðåäåëÿåìûé â ýëåìåíòå óïðàâëåíèÿ:
<html>
<head>
<script language="VBScript">
Sub scenariy
Alert "Ïðèâåò ïèïëû:)"
End sub
</script>
</head>
<body>
<form>
<input type="button" name="but" _
onclick="scenariy" language="VBScript">
</form>
</body>
</html>
Òàêîé ñïîñîá îáðàäóåò ïðèâåðæåíöåâ Java Script. Ñðåäè åãî ïðåèìóùåñòâ, ïåðåä ïåðâûì ìåòîäîì ìîæíî îòìåòèòü òî, ÷òî îäèí è òîò æå ñöåíàðèé ìîæíî âûçûâàòü èç ðàçíûõ ýëåìåíòîâ óïðàâëåíèÿ.
Àâòîìàòè÷åñêèé âûçîâ ñöåíàðèÿ:
<html> <body> <script language="VBScript"> Alert "Ïðèâåò ïèïëû" </script> </body> </html>
Êîä ïðîãðàììû â ýòîì ñëó÷àå âûïîëíèòñÿ ñðàçó ïîñëå çàãðóçêè äîêóìåíòà.
Âûçîâ èç äðóãîé ïðîöåäóðû:
<html>
<head>
<script language="VBScript">
Sub but_onclick
Call butalert("Ïðèâåò ïèïëû")
End Sub
Sub butalert(a)
Alert a
End Sub
</script>
</head>
<body>
<form>
<input type="button" name="but" _
onclick="scenariy" language="VBScript">
</form>
</body>
</html>
Âñå ñïîñîáû, êðîìå àâòîìàòè÷åñêîãî âûçîâà
ñöåíàðèÿ, ÷èñòî âèçóàëüíî áóäóò âûãëÿäåòü òàê:
Îñíîâíûå òèïû äàííûõ VBscript
Íàâåðíîå, òå êòî çíàêîì ñî "ñòàðûì" áåéñèêîì, åùå ïîìíÿò, ÷òî äëÿ îáîçíà÷åíèÿ ñèìâîëüíîé ïåðåìåííîé íàäî áûëî ïèñàòü çíàê áàêñà èëè ñîëíûøêà (a$="ïðèâåò").  VBscript ýòîãî äåëàòü íå ñëåäóåò, îí èìååò òîëüêî îäèí òèï äàííûõ, íàçûâàåìûé VARIANT. Îí ìîæåò ñîäåðæàòü êàê ñèìâîëû òàê è ÷èñëà ðàçíîé òî÷íîñòè. Ïîýòîìó äëÿ òîãî, ÷òîáû òî÷íî îïðåäåëèòü òèï äàííûõ, æåëàòåëüíî èñïîëüçîâàòü ôóíêöèè ïðåîáðàçîâàíèÿ. Ê ïðèìåðó, òåêñò ââîäèìûé â ïîëå ôîðìû èìååò òåêñòîâûé ôîðìàò, è ïîïûòêà ñëîæèòü öèôðó "3" ñ öèôðîé "2" ïðèâåäåò ê ðåçóëüòàòó "32":
<Script language="VBscript"> sub summa summatext1=document.formasum.summa1.value summatext2=document.formasum.summa2.value alert summatext1+summatext2 end sub </Script>
Ïîýòîìó íàäî ñäåëàòü òàê, ÷òîáû ïåðåìåííûå summatext1 è summatext2 áûëè ïðåîáðàçîâàíû â öåëûå ÷èñëà ôóíêöèåé Cint(ïåðåìåííàÿ):
<Script language="VBscript"> sub summa summatext1=Cint(document.formasum.summa1.value) summatext2=Cint(document.formasum.summa2.value) alert summatext1+summatext2 end sub </Script>
Ïîäòèïû äàííûõ VARIANT.
| ÏÎÄÒÈÏ | ÔÓÍÊÖÈß ÏÐÅÎÁÐÀÇÎÂÀÍÈß | ÎÏÈÑÀÍÈÅ |
| Epty | - | Àâòîìàòè÷åñêè ïðèñâàèâàåòñÿ íîâûì ïåðåìåííûì, êîãäà èì åùå íå ïðèñâîåíî ÿâíîå çíà÷åíèå. |
| Null | - | Óêàçûâàåò íà òî, ÷òî ïåðåìåííàÿ íå ñîäåðæèò äîïóñòèìûõ äàííûõ. |
| Boolean | CBool(x) | Èñïîëüçóåòñÿ äëÿ îáîçíà÷åíèÿ ëîãè÷åñêèõ ïåðåìåííûõ, ïðèíèìàþùèõ äâà äîïóñòèìûõ çíà÷åíèÿ True èëè False |
| Byte | CByte(x) | Ñàìûé êîðîòêèé òèï äàííûõ ïðèíèìàþùèé çíà÷åíèå 0..255 |
| Integer | CInt(x) | Öåëûé òèï â ïðåäåëàõ -32768 .. 32768 |
| Long | CLng(x) | Äëèííûé òèï öåëîé ïåðåìåííîé â ïðåäåëàõ -2147483648 .. 2147483647 |
| Single | CSngl(x) | Òèï ÷èñåë ñ ïëàâàþùåé òî÷êîé îäèíàðíîé òî÷íîñòè |
| Double | CDbl(x) | Òèï ÷èñåë ñ ïëàâàþùåé òî÷êîé äâîéíîé òî÷íîñòè |
| Date/Time | CDate(x) | ×èñëî â ôîðìàòå îòîáðàæàþùåå âðåìÿ è äàòó îò 1 ÿíâàðÿ 100 ãîäà äî 31 äåêàáðÿ 9999 ãîäà |
| Currency | CCur(x) | Ñïåöèàëüíûé ÷èñëîâîé ôîðìàò äëÿ äåíåæíûõ âåëè÷èí |
| String | CStr(x) | Ñèìâîëüíûå òèï äàííûõ |
| Object | - | Ññûëêà íà îáúåêòû ole, html, ActiveX |
| Error | - | Òèï äàííûõ ïðåäíàçíà÷åííûé äëÿ õðàíåíèÿ íîìåðîâ îøèáîê |
Íåêîòîðûå ïðàâèëà VBscript
 çàêëþ÷åíèè ñëåäóåò óïîìÿíóòü íåêîòîðûå îñíîâíûå ïðèåìû ïðè íàïèñàíèè êîäà ñêðèïòà.
Åñëè êîä íå óìåùàåòñÿ â îäíîé ñòðîêå, òî ìîæíî èñïîëüçîâàòü ñèìâîë ïðîäîëæåíèÿ ñòðîêè:
if a=1 and b=2 or c=3 then alert a ìîæíî íàïèñàòü êàê if a=1 _ and b=2 _ or c=3 _ then alert a
Äëÿ "ñêëåèâàíèÿ" äâóõ ÷èñëåííûõ ïåðåìåííûõ ëó÷øå èñïîëüçîâàòü çíàê "&" ÷åì "+", ò.å. a="ïðè" b="âåò" òîãäà a&b="ïðèâåò"
Êîä ñöåíàðèÿ æåëàòåëüíî, íà âñÿêèé ñëó÷àé, çàêëþ÷àòü â òåãè êîììåíòàðèÿ <Script language="Vbscript><!-- êîä --></script>
Çàêëþ÷åíèå
ß óæå ãîâîðèë, ÷òî ìîåé çàäà÷åé íå áûëî ðàññêàçàòü âñå è âñÿ ïðî VBscript, â ñòàòüå áûëè ïðèâåäåíû òîëüêî ñïðàâî÷íûå äàííûå è îñíîâíûå ìåòîäû, ïðèãîäíûå äëÿ íàïèñàíèÿ ïðîñòåéøèõ ñöåíàðèåâ, áåç ïðèìåíåíèÿ ActiveX òåõíîëîãèè. Òåì, êîãî çàèíòåðåñîâàë ýòîò ÿçûê ïðîãðàììèðîâàíèÿ, ìîæíî ïîðåêîìåíäîâàòü êíèãó (èç áóìàãè :) "Èçó÷àåì VBscript" àâòîð Ïîë Ëîìàêñ. Íåêîòîðûå ñïðàâî÷íûå äàííûå ÿ áðàë èìåííî èç íåå.
Òàê ÷òî äåðçàéòå!
Àëåêñåé Ìîõîâîé (23.09.1998) www.midi.ru