Π€Π°ΠΉΠ» сцСнария vbscript Ρ‡Ρ‚ΠΎ это

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎ VBScript

Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ язык сцСнария, Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сцСнарий написан Π½Π° JavaScript ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ появятся сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….
Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ Π½Π° VBScript ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ vbs ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Π—Π΄Π΅ΡΡŒ ΠΈ Π΄Π°Π»Π΅Π΅ Π² тэгах HTML послС ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΡƒΠ³ΠΎΠ»ΠΊΠΎΠ² MsgBox
Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с сообщСниСм ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΎΠΊ; Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, какая ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‹Π·ΠΎΠ²Π°:

MsgBox(сообщСниС, число, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ)
MsgBox сообщСниС, число, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ

Бинтаксис с ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌΠΈ скобками для записи Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ MsgBox ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

x = MsgBox(«Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ!», 20, «ΠŸΡ€ΠΈΠ²Π΅Ρ‚ствиС»)

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ обязатСлСн. Π’Ρ‚ΠΎΡ€ΠΎΠΉ числовой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, какая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ появятся Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.

ЗначСния числового ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€ ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅:

ЗначСния числового ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ константы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько установок, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния числового ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НапримСр, Ссли трСбуСтся вывСсти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ с вопросом ΠΈ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Yes ΠΈ No, Ρ‚ΠΎ слСдуСт Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ 4 + 32 = 36.
НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ intButtonClicked:

Если трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сообщСниС Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строках, Ρ‚ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Chr(13), Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ слуТСбный символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² качСствС раздСлитСля строк. НапримСр,
MsgBox «ΠŸΡ€ΠΈΠ²Π΅Ρ‚!» + Chr(13) + «Π”ля продолТСния Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ OK»

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ с ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ двумя ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ОК ΠΈ Cancel (ΠžΡ‚ΠΌΠ΅Π½Π°). Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ тСкст Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π±Ρ‹Π» Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ OK, ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Empty, Ссли Π±Ρ‹Π» Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Cancel. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π²Ρ‹Π·ΠΎΠ²Π°:
InputBox(подсказка, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, исходноС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, x, y)
InputBox подсказка, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, исходноС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, x, y

Бинтаксис с ΠΊΡ€ΡƒΠ³Π»Ρ‹ΠΌΠΈ скобками для записи Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ MsgBox ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:
x = InputBox(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ»,»Π’Ρ…ΠΎΠ΄ Π² систСму»,», 1000,2000)

Подсказка прСдставляСт собой тСкст, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, исходный_тСкст β€” содСрТимоС поля Π²Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΠΊΠ½Π°, x ΠΈ y β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ соотвСтствСнно Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΡƒΠ³Π»Π° экрана ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, измСряСмыС Π² Ρ‚Π²ΠΈΠΏΠ°Ρ… (1Ρ‚Π²ΠΈΠΏ = 1/1440 дюйма). На рис. 13.2 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

2. Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² VBScriptt

Для прСобразования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ слуТат ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, числа ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· 6 Ρ‚ΠΈΠΏΠΎΠ². Однако Π½Π΅ всС эти Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π²Π½ΠΎΡ†Π΅Π½Π½Ρ‹ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния точности прСдставлСния чисСл ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ мСста Π² памяти. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ число 3.14 Π² Ρ†Π΅Π»ΠΎΠ΅, Ρ‚ΠΎ Ρ‚ΠΈΠΏ Byte окаТСтся Π±ΠΎΠ»Π΅Π΅ экономным, Ρ‡Π΅ΠΌ Integer. Для привСдСния числового значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x ΠΊ Ρ‚ΠΈΠΏΡƒ Integer ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция Cint(x), Π° для привСдСния ΠΊ Ρ‚ΠΈΠΏΡƒ Byte β€” функция CByte(x).
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π”Π°Ρ‚Ρƒ ΠΈ врСмя ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСпосрСдствСнно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΡ„Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ #. ΠŸΡ€ΠΈ этом Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄Π°Ρ‚Ρ‹ являСтся Π»ΠΈΠ±ΠΎ дСфис, Π»ΠΈΠ±ΠΎ прямой слэш, Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅; Π΄Π°Ρ‚Π° ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ. Однако Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ отобраТСния (Π° Π½Π΅ хранСнСния) Π΄Π°Ρ‚Ρ‹ опрСдСляСтся настройками ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Empty ΠΈΠΌΠ΅Π΅Ρ‚ объявлСнная пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅Ρ‰Π΅ Π½Π΅ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΊΠ°ΠΊ 0 Π² опСрациях Π½Π°Π΄ числами ΠΈ ΠΊΠ°ΠΊ пустая строка β€” Π² опСрациях Π½Π°Π΄ строками. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Empty нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания, ΠΎΠ½ΠΎ назначаСтся автоматичСски ΠΏΡ€ΠΈ создании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· присваивания Π΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния.
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Null ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС допустимого значСния. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π½Π΅ΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ нСпосрСдствСнного присваивания Π΅ΠΉ этого значСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Empty, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Null ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания.

Π’ VBScript, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ JavaScript, строковыС значСния Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ΠžΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ для этой Ρ†Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.

3. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Dim, ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Empty. Одним ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Dim ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
Dim x, y, myvar

ВмСстС с Ρ‚Π΅ΠΌ, объявлСнная ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Dim пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ присвоСно ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Empty. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ HTML-ΠΊΠΎΠ΄:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ выраТСния:
имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Let имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Set имя_ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Let Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для присваивания значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Set ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присваивания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CreateObject().

ВмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Dim ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Private ΠΈ Public для объявлСния соотвСтствСнно Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… (частных) ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

4. ΠœΠ°ΡΡΠΈΠ²Ρ‹

Π—Π΄Π΅ΡΡŒ n β€” количСство элСмСнтов массива минус 1. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ элСмСнтов массива начинаСтся с 0. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число n Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ массива β€” индСкс послСднСго элСмСнта.
ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ статичСский массив задаСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½ΠΎ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ количСства элСмСнтов минус 1 ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡŽ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Π΅Ρ‚ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠ· 8 строк ΠΈ 3-Ρ… столбцов:
Dim myarray(7, 2)

Для получСния значСния элСмСнта массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π°:
имя_массива(индСксы)

НапримСр, для получСния значСния элСмСнта Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива myarray, находящСгося Π² 3-ΠΉ строкС ΠΈ 2-ΠΌ столбцС, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ: myarray(2, 1).
Π’ ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ статичСском массивС нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ количСство элСмСнтов ΠΈ размСрностСй. Π’ динамичСском массивС, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², это ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ Ρ€Π°Π·. ДинамичСский массив задаСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ статичСскому, Π½ΠΎ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ указываСтся:
Dim имя_массива()

ДинамичСский массив отличаСтся ΠΎΡ‚ статичСского Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ позволяСт ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ количСство элСмСнтов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Π’ случаС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов количСство элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для послСднСго измСрСния. ПослС опрСдСлСния динамичСского массива ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ назначСния Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ‹ (количСства элСмСнтов):
Redim имя_массива(n)

Π—Π΄Π΅ΡΡŒ n β€” количСство элСмСнтов массива минус 1.

Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ измСняСтся Π΄Π»ΠΈΠ½Π° массива, Ρ‚ΠΎ значСния Π΅Π³ΠΎ ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов элСмСнтов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ потСряны.

Для сохранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ динамичСского массива ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слов Preserve (ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ):
Redim Preserve имя_массива(n)

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами, особСнно динамичСскими, часто трСбуСтся Π·Π½Π°Ρ‚ΡŒ ΠΈΡ… Π΄Π»ΠΈΠ½Ρƒ. Для этой Ρ†Π΅Π»ΠΈ слуТат Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
Lbound β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наимСньший индСкс для Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива
Ubound β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ наибольший индСкс массива. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов всСгда Π½Π° 1 большС этого значСния

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄Π»ΠΈΠ½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ массива myarray увСличиваСтся Π½Π° 1 с сохранСниСм всСх Π΅Π³ΠΎ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:
Redim Preserve myarray(Ubound(myarray) + 1) /

5. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

Имя константы задаСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π’ VBScript имССтся большоС количСство ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… констант, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ систСмных Ρ†Π²Π΅Ρ‚ΠΎΠ²

6. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹


6.1. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Π’ JavaScript для однострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ символы //, Π° для многострочных β€” /* … */

6.2. АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹


6.3. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ равСнства ΠΈ присваивания ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ VBScript Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΈΡ… ΠΏΠΎ контСксту ΠΈΡ… примСнСния Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Π’ JavaScript для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° равСнства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° подряд ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… символа=, Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания β€” ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ символ =

6.4. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Π’ JavaScript Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π˜Π›Π˜, эквивалСнтности ΠΈ ΠΈΠΌΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Однако Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ выраТСния.

6.5. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹


6.6. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

If условиС Then
выраТСния
End If

If условиС-1 Then
[выраТСния-1]
[ElseIf условиС-2 Then
[выраТСния-2]] …
[Else
[выраТСния-n]]
End If

Π—Π΄Π΅ΡΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ лишь Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… элСмСнты синтаксичСской конструкции Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊΠΎΠ² Π²ΠΈΠ΄Π° ElseIf ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ Π²ΠΈΠ΄Π° Else ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Select Case
Когда трСбуСтся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ со значСниями ΠΈΠ· Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… списков, ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Select Case:
Select Case тСстируСмоС_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
[Case список_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ-1
[выраТСния-1]]
[Case список_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ-2
[выраТСния-2]]
…
[Case список_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ-n
[выраТСния-n]]
[Case Else
[выраТСния-n+1]]
End Select

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
Π’ JavaScript Π±Π»ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎ смыслу ΠΊ Select Case являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch

6.7. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†ΠΈΠΊΠ»Π°

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ For … Next
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ†ΠΈΠΊΠ»Π° со счСтчиком Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:
For счСтчик=Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ To ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ [Step ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅]
выраТСния
Next

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сначала ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ счСтчик присваиваСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ выраТСния, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅Π»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС выраТСния Π½Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ, Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, нСпосрСдствСнно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° Next. Π—Π°Ρ‚Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика увСличиваСтся Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ приращСния, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Step (Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ Π½Π° 1). НовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика сравниваСтся с ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄Π°Π»Π΅Π΅ всС повторяСтся описанным Π²Ρ‹ΡˆΠ΅ способом.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ For Each … Next
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ For Each … Next позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» ΠΏΠΎ элСмСнтам массива ΠΈΠ»ΠΈ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈΠ· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мноТСства, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… количСство Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ извСстно. Π­Ρ‚ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ выполняСт Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ выраТСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ мноТСства. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:
For Each элСмСнт In мноТСство
выраТСния
Next

7.Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования
Π­Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прСобразования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Microsoft Visual Basic Scripting

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопрос, ΠΊΠΎΠΌΡƒ ΠΈ для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ VBScript? ΠžΡ‚Π²Π΅Ρ‚ прост: Π½Π° ΠΌΠΎΠΉ взгляд, это идСальная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для создания простых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ быстро ΠΈ просто. НапримСр, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΏΠ°ΠΏΠΊΡƒ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ», поТалуйста. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… областях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡŽ Microsoft:
— автоматизация администрирования систСм Windows;
— сСрвСрный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² страницах ASP;
— клиСнтскиС скрипты Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Internet Explorer.

Π’ основном VBS-сцСнарии ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, управлСния систСмой, Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², взаимодСйствия с офисными прилоТСниями, Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… слоТных Π·Π°Π΄Π°Ρ‡.

Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΡƒΠ΄ΠΎΠ±Π΅Π½ для вирусописатСля, ΠΊΠ°ΠΊ Π½ΠΈ ΠΏΠΎΠ΄Π»ΠΎ это Π·Π²ΡƒΡ‡ΠΈΡ‚. Волько ΠΏΡ€ΠΈ написании вирусов компиляция практичСски ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°. Один ΠΈΠ· самых Π³Ρ€ΠΎΠΌΠΊΠΈΡ… вирусов, I love you, Π±Ρ‹Π» написан ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° VBScript, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Π΅ΡΡ‚ΡŒ ΠΊΡƒΠ΄Π° расти.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² срСдС VBScript, Π±Π΅Π· компилятора, Π²Π°ΠΌ понадобится Notepad++, Π² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΡ‰Π΅, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠ³Π΄Π° подсвСчиваСтся синтаксис, Π° Ρ‚Π°ΠΊΠΆΠ΅ Internet Explorer, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ 80% Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈΠ΄Π΅Ρ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с компилятором, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Visual Basic Scripting Edition. VBS ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ тСкстового Ρ„Π°ΠΉΠ»Π°, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСкстового Ρ„Π°ΠΉΠ»Π°. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ тСкстового Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ удастся (ΡΠΏΠ»ΠΎΡˆΠ½Ρ‹Π΅ крякозябры).

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠ°Ρ€Ρƒ слов ΠΎ спСцификации. ОписаниС всСго, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ VBScript, Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½Π΅ Π±ΠΎΠΉΡ‚Π΅ΡΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² VB, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚, Π’Ρ‹ ΠΎΠ± этом ΡƒΠ·Π½Π°Π΅Ρ‚Π΅.

ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Variant (ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ любого Ρ‚ΠΈΠΏΠ°.). ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Dim x – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ пСрСмСнная VBScript сам разбСрСтся.

— Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Visual Basic.

Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² VB, константа вызываСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ: vbNo.
Бамая, Π½Π° ΠΌΠΎΠΉ взгляд, приятная Ρ„ΠΈΡ‡Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с FileSystemObject. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ, ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ‚.Π΄.).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΠ°Ρ€Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ€ΠΎΠ±ΠΎΡ‚Ρ‹ с VBScript.

НапишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° числа.

Для Π½Π°Ρ‡Π°Π»Π°, создадим Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ sum.vbs Π² Π½Π΅Π³ΠΎ запишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Dim a,b,c ‘ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для чисСл
a = inputbox («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число»)
b = inputbox («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число»)
c = cint(a) + cint(b) ‘суммируСм
msgbox («Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: » & c) ‘Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

БохраняСм, запускаСм, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ (рисунок Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ):

Π€Π°ΠΉΠ» сцСнария vbscript Ρ‡Ρ‚ΠΎ это

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд всС понятно, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ: cint. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρƒ нас Variant, Π° inputbox Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строку ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‚ΠΎ строка c = a + b Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ слоТСниС Π΄Π²ΡƒΡ… строк, Π° Π½Π΅ чисСл, ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ чисСл 1 ΠΈ 2 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ 12. ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cint Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Integer, послС этого складываСт числа.
Рассмотрим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» FileSystem.vbs ΠΈ запишСм Π² Π½Π΅Π³ΠΎ:
Dim fso, FolderName, FileName ‘ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
‘создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ FileSystemObject Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Π˜ΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ?») ‘имя ΠΏΠ°ΠΏΠΊΠΈ
FileName = InputBox(«Π˜ΠΌΡ Ρ„Π°ΠΉΠ»Π° для создания?») ‘имя Ρ„Π°ΠΉΠ»Π°
fso.CreateFolder («c:\» & FolderName) ‘создадим ΠΏΠ°ΠΏΠΊΡƒ
MsgBox «Π‘ΠΎΠ·Π΄Π°Π½Π° ΠΏΠ°ΠΏΠΊΠ°: » & FolderName ‘сообщим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим Ρ„Π°ΠΉΠ»
MsgBox «Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ»: » & FileName ‘сообщим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ

БохраняСм, запускаСм, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ (рисунок Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ):

Π€Π°ΠΉΠ» сцСнария vbscript Ρ‡Ρ‚ΠΎ это

Π’Π΅ΠΏΠ΅Ρ€ΡŒ объясню Π±ΠΎΠ»Π΅Π΅ внятно. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΌΡ‹ создали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ FileSystemObject Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ fso. ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ CreateFolder для создания ΠΏΠ°ΠΏΠΊΠΈ, ΡƒΠΊΠ°Π·Π°Π² Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅. ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ CreateTextFile для создания Ρ„Π°ΠΉΠ»Π°.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠΌ тСкстовый Ρ„Π°ΠΉΠ» ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ:
Dim fso, Text, FolderName, FileName ‘ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
‘создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ FileSystemObject Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Π˜ΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ?») ‘имя ΠΏΠ°ΠΏΠΊΠΈ
FileName = InputBox(«Π˜ΠΌΡ Ρ„Π°ΠΉΠ»Π° для создания?») ‘имя Ρ„Π°ΠΉΠ»Π°
fso.CreateFolder («c:\» & FolderName) ‘создадим ΠΏΠ°ΠΏΠΊΡƒ
MsgBox «Π‘ΠΎΠ·Π΄Π°Π½Π° ΠΏΠ°ΠΏΠΊΠ°: » & FolderName ‘сообщим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
Set Text = fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим Ρ„Π°ΠΉΠ»
MsgBox «Π‘ΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ»: » & FileName ‘сообщим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
Text.Write «Π­Ρ‚ΠΎ»
Text.WriteLine » ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ VBScript»
Text.WriteBlankLines 2
Text.WriteLine «ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ibm.at.ua»
Text.Close

Π”ΡƒΠΌΠ°ΡŽ, Ρ‚ΡƒΡ‚ всС понятно. ΠžΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ.

Рассмотрим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послоТнСС. НуТно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ своСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ собраны Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ».
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» spec_report.vbs, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
[spoiler=Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:]
Const SILENT = False ‘Ρ‚ΠΈΡ…ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ΠΎ имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°
‘Const SILENT = True ‘Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΎ локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π±Π΅Π· Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²

‘Π³Π΄Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚
Const DATA_DIR = «comp\» ‘Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ + «\» Π² ΠΊΠΎΠ½Ρ†Π΅
‘Const DATA_DIR = «\\SRV\Invent\comp\» ‘сСтСвой рСсурс + «\» Π² ΠΊΠΎΠ½Ρ†Π΅

‘ΠΏΡ€ΠΎΡ‡Π΅Π΅
Const TITLE = «Π‘пСцификация ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°» ‘Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½
Const DATA_EXT = «.csv» ‘Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
Const HEAD_LINE = True ‘Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС CSV-Ρ„Π°ΠΉΠ»Π°

‘Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ скрипт Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ
‘Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
On Error Resume Next

‘ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для доступа ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС
Dim fso
Set fso = CreateObject(«Scripting.FileSystemObject»)

‘ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ WMI
Dim wmio

‘Ρ„Π°ΠΉΠ» ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
Dim tf

‘ΡƒΠ·Π½Π°Ρ‚ΡŒ имя локального ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°
Dim nwo, comp
Set nwo = CreateObject(«WScript.Network»)
comp = LCase(nwo.ComputerName)

‘Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°
If Not SILENT Then
comp = InputBox(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°:», TITLE, comp)
‘ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°
If Unavailable(comp) Then
MsgBox «ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ нСдоступСн:» & vbCrLf & comp, vbExclamation, TITLE
comp = «»
End If
End If

‘ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Ρ‹
If Len(comp) > 0 Then InventComp(comp)

‘Ссли ошибка
If Len(Err.Description) > 0 Then _
If Not SILENT Then MsgBox comp & vbCrLf & «ΠžΡˆΠΈΠ±ΠΊΠ°:» & vbCrLf & Err.Description, vbExclamation, TITLE

‘инвСнтаризация Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСтСвым ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ IP-адрСсом
‘сохранСниС ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ
Sub InventComp(compname)

Set wmio = GetObject(«WinMgmts:!\\» & compname & «\Root\CIMV2»)

‘Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ WMI-классы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π΅ Π²ΠΎ всСх вСрсиях Windows
Dim build
build = BuildVersion()

‘Ρ„Π°ΠΉΠ» ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
Set tf = fso.CreateTextFile(DATA_DIR & compname & DATA_EXT, True)

‘Π΄Π°Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
tf.WriteLine «ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€;Π”Π°Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ;1;» & Now

Log «Win32_ComputerSystemProduct», _
«UUID», «», _
«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€», _
«UUID»

Log «Win32_ComputerSystem», _
«Name,Domain,PrimaryOwnerName,UserName,TotalPhysicalMemory», «», _
«ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€», _
«Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ имя,Π”ΠΎΠΌΠ΅Π½,Π’Π»Π°Π΄Π΅Π»Π΅Ρ†,Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ,ОбъСм памяти (Мб)»

Log «Win32_OperatingSystem», _
«Caption,Version,CSDVersion,Description,RegisteredUser,SerialNumber,Organization,InstallDate», «», _
«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ВСрсия,ОбновлСниС,ОписаниС,ЗарСгистрированный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ,Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€,ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ,Π”Π°Ρ‚Π° установки»

Log «Win32_BaseBoard», _
«Manufacturer,Product,Version,SerialNumber», «», _
«ΠœΠ°Ρ‚Сринская ΠΏΠ»Π°Ρ‚Π°», _
«ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,НаимСнованиС,ВСрсия,Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€»

Log «Win32_BIOS», _
«Manufacturer,Name,SMBIOSBIOSVersion,SerialNumber», «», _
«BIOS», _
«ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,НаимСнованиС,ВСрсия,Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€»

‘Π½Π΅ опрСдСляСтся Core 2 Π² XP SP2, см. http://support.microsoft.com/kb/953955
Log «Win32_Processor», _
«Name,Caption,CurrentClockSpeed,ExtClock,L2CacheSize,SocketDesignation,UniqueId», «», _
«ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ОписаниС,Частота (ΠœΠ“Ρ†),Частота FSB (ΠœΠ“Ρ†),Π Π°Π·ΠΌΠ΅Ρ€ L2-кСша (ΠΊΠ±),РазъСм,UID»

Log «Win32_PhysicalMemory», _
«Capacity,Speed,DeviceLocator», «», _
«ΠœΠΎΠ΄ΡƒΠ»ΡŒ памяти», _
«Π Π°Π·ΠΌΠ΅Ρ€ (Мб),Частота,Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅»

‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ USB-диски
Log «Win32_DiskDrive», _
«Model,Size,InterfaceType», «InterfaceType <> ‘USB'», _
«Π”иск», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,Π Π°Π·ΠΌΠ΅Ρ€ (Π“Π±),Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ»

‘Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ диски
‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ USB-диски, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ NULL
Log «Win32_LogicalDisk», _
«Name,FileSystem,Size,FreeSpace,VolumeSerialNumber», «DriveType = 3 AND Size IS NOT NULL», _
«Π›ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ диск», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,Ѐайловая систСма,Π Π°Π·ΠΌΠ΅Ρ€ (Π“Π±),Π‘Π²ΠΎΠ±ΠΎΠ΄Π½ΠΎ (Π“Π±),Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€»

Log «Win32_CDROMDrive», _
«Name», «», _
«CD-ΠΏΡ€ΠΈΠ²ΠΎΠ΄», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅»

‘Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для XP/2003 ΠΈ Π²Ρ‹ΡˆΠ΅
‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ «Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ», ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ слово «Secondary»
If build >= 2600 Then
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «NOT (Name LIKE ‘%Secondary’)», _
«Π’ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ОбъСм памяти (Мб),ВидСопроцСссор,Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹,Π”Π°Ρ‚Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°,ВСрсия Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°»
Else ‘для Windows 2000
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «», _
«Π’ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ОбъСм памяти (Мб),ВидСопроцСссор,Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹,Π”Π°Ρ‚Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°,ВСрсия Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°»
End If

‘Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для XP/2003 ΠΈ Π²Ρ‹ΡˆΠ΅
‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ сСтСвыС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹, Π² Ρ‚ΠΎΠΌ числС ΠΌΠΈΠ½ΠΈΠΏΠΎΡ€Ρ‚Ρ‹
‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ VMware
If build >= 2600 Then
Log «Win32_NetworkAdapter», _
«Name,AdapterType,PermanentAddress,MACAddress», «NetConnectionStatus > 0 AND NOT (Name LIKE ‘VMware%’)», _
«Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,Π’ΠΈΠΏ,IP-адрСс,MAC-адрСс»
Else ‘для Windows 2000
Log «Win32_NetworkAdapter», _
«Name,PermanentAddress,MACAddress», «», _
«Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,IP-адрСс,MAC-адрСс»
End If

Log «Win32_SoundDevice», _
«Name», «», _
«Π—Π²ΡƒΠΊΠΎΠ²ΠΎΠ΅ устройство», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅»

Log «Win32_SCSIController», _
«Name», «», _
«SCSI ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅»

‘Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для XP/2003 ΠΈ Π²Ρ‹ΡˆΠ΅
‘ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ сСтСвыС ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹
‘условия «Local = True Or Network = False» нСдостаточно для ΠΏΡ€ΠΈΠ½Ρ‚-сСрвСров, поэтому провСряСтся ΠΏΠΎΡ€Ρ‚
If build >= 2600 Then
Log «Win32_Printer», _
«Name,PortName,ShareName», «(Local = True OR Network = False) AND (PortName LIKE ‘%USB%’ OR PortName LIKE ‘%LPT%’)», _
«ΠŸΡ€ΠΈΠ½Ρ‚Π΅Ρ€», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ΠŸΠΎΡ€Ρ‚,Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ имя»
End If

Log «Win32_PortConnector», _
«ExternalReferenceDesignator,InternalReferenceDesignator», «», _
«Π Π°Π·ΡŠΠ΅ΠΌ ΠΏΠΎΡ€Ρ‚Π°», _
«Π’Π½Π΅ΡˆΠ½ΠΈΠΉ,Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ»

Log «Win32_Keyboard», _
«Name,Description», «», _
«ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅,ОписаниС»

Log «Win32_PointingDevice», _
«Name», «», _
«ΠœΡ‹ΡˆΡŒ», _
«ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅»

‘Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»
tf.Close
If Not SILENT Then MsgBox «ΠžΡ‚Ρ‡Π΅Ρ‚ сохранСн Π² Ρ„Π°ΠΉΠ»:» & vbCrLf & DATA_DIR & compname & DATA_EXT, vbInformation, TITLE

Const RETURN_IMMEDIATELY = 16
Const FORWARD_ONLY = 32

Dim query, cls, item, prop
query = «Select » & sel & » From » & from

If Len(where) > 0 Then query = query & » Where » & where
Set cls = wmio.ExecQuery(query,, RETURN_IMMEDIATELY + FORWARD_ONLY)

Dim props, names, num, value
props = Split(sel, «,»)
names = Split(param, «,»)

num = 1 ‘Π½ΠΎΠΌΠ΅Ρ€ экзСмпляра
For Each item In cls
For i = 0 To UBound(props)

‘Π²Π·ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
Set prop = item.Properties_(props(i))
value = prop.Value

‘Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Null Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π΅Π½ Π²Ρ‹Π»Π΅Ρ‚ с ошибкой
If IsNull(value) Then
value = «»

‘Ссли ΡƒΠΊΠ°Π·Π°Π½Π° кратная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния, пСрСвСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ElseIf Right(names(i), 4) = «(Мб)» Then
value = CStr(Round(value / 1024 ^ 2))
ElseIf Right(names(i), 4) = «(Π“Π±)» Then
value = CStr(Round(value / 1024 ^ 3))

‘вывСсти Π² Ρ„Π°ΠΉΠ» нСпустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ спСцсимвол «;»
value = Trim(Replace(value, «;», «_»))
If Len(value) > 0 Then tf.WriteLine sect & «;» & names(i) & «;» & num & «;» & value

‘ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ экзСмпляру
num = num + 1
Next ‘item

‘ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° DMTF Π² Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΈΠ΄ (Π”Π”.ММ.Π“Π“Π“Π“)
‘http://msdn.microsoft.com/en-us/library/aa389802.aspx
Function ReadableDate(str)
‘ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСдоступСн Π² Windows 2000, поэтому см. Π΄Π°Π»Π΅Π΅
‘ Dim dto
‘ Set dto = CreateObject(«WbemScripting.SWbemDateTime»)
‘ dto.Value = str
‘ ReadableDate = dto.GetVarDate(True)
ReadableDate = Mid(str, 7, 2) & «.» & Mid(str, 5, 2) & «.» & Left(str, 4)
End Function

‘ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ (Π±ΠΈΠ»Π΄) WMI-сСрвСра
‘Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число
Function BuildVersion()
Dim cls, item
Set cls = wmio.ExecQuery(«Select BuildVersion From Win32_WMISetting»)
For Each item In cls
BuildVersion = CInt(Left(item.BuildVersion, 4))
Next
End Function

‘ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π² сСти
‘Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ True, Ссли адрСс нСдоступСн
Function Unavailable(addr)
Dim wmio, ping, p
Set wmio = GetObject(«WinMgmts:«)
Set ping = wmio.ExecQuery(«SELECT StatusCode FROM Win32_PingStatus WHERE Address = ‘» & addr & «‘»)
For Each p In ping
If IsNull(p.StatusCode) Then
Unavailable = True
Else
Unavailable = (p.StatusCode <> 0)
End If
Next
End Function
[/spoiler]

‘количСство, порядок ΠΈ названия столбцов ΠΎΡ‚Ρ‡Π΅Ρ‚Π°
‘значСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π²ΡƒΠΌ полям CSV Ρ„Π°ΠΉΠ»Π°!
Dim col(21) ‘ » & vbCrLf _
& «

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *