Език за скриптове за уеб страници на VBScript. Сравнителен анализ на JavaScript и VBScript

Типове данни

VBScript използва един тип данни, Variant, който ви позволява да съхранявате число, низ, дата, булева стойност, препратка към обект и друга информация в променлива. Можете да определите типа съдържание на променлива, като използвате набор от функции: VarType, TypeName, IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject, които ще бъдат обсъдени по-долу. Типът информация, която съдържа, се нарича още вариантен подтип. Пълен списък с подтипове е показан в следната таблица:

Подтип Описание
Празен На променливата не е присвоена стойност. При използване на неинициализирана променлива в числови изрази, 0 ще бъде заменена, а в низове - празен низ.
Нула Променливата не съдържа данни.
булев Булевото може да бъде True или False.
байт Цяло число в диапазона от 0 до 255.
цяло число Цяло число в диапазона от -32 768 до 32 767.
Валута Номер с фиксирана точка в диапазона -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
Дълго Цяло число в диапазона от -2 147 483 648 до 2 147 483 647.
Неженен Единично прецизно число с плаваща запетая. За отрицателни стойности валидният диапазон е

от -3,402823E38 до -1,401298E-45. За положителни - от 1.401298E-45 до 3.402823E38.

Двойна Число с двойна точност с плаваща запетая. За отрицателни стойности приемливият диапазон е

79769313486232E308 до -4,94065645841247E-324. За положителни - от 4.94065645841247E-324 до 1.79769313486232E308.

Време за среща) Съдържа число, което представлява дата в диапазона от 1 януари 100 до 31 декември 9999.
низ Поредица от знаци. Максималната дължина е около 2 милиарда знака.
Обект Предмет.
Грешка Номер на грешка.

В зависимост от израза, в който участва променливата, съдържанието й ще бъде автоматично прехвърлено към необходимия тип. Помислете за този пример:

Опция Explicit Sub TestVBScript Dim A, B A = 5 B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub

Тъй като в израза участва числова променлива А, интерпретаторът преобразува стойността на променливата Бот низ "12" в числото и ги сумирайте:

Нека променим макроса, така че променливата Асъдържаше и реда:

Опция Explicit Sub TestVBScript Dim A, B A = "5" B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub

Нека го стартираме за изпълнение. Сега екранът ще покаже резултата от сливането (конкатенацията) на два низа, а не сумата от техните числови представяния:

За да избегнете объркване с автоматичното преобразуване на типа, се препоръчва да използвате функции за преобразуване: CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr.

Ако резултатът от израз е точно конкатенацията на низове, а не сумата от техните числови представяния, тогава операторът & трябва да се използва вместо +.

Променливи

Променливата е удобно символно представяне на област от памет, където приложението съхранява някои данни. По време на изпълнението на приложението стойността на променливата може да се промени. Променливата трябва да бъде декларирана с израза Dim преди употреба.

Използвайки един оператор, можете да декларирате няколко променливи наведнъж, ако посочите имената им, разделени със запетаи:

Затъмняване отляво, отдясно, отгоре, отдолу

При деклариране не е необходимо да се посочва типа данни, тъй като всички променливи са от типа Variant.

Ако опцията Explicit не е посочена в първия ред на текста на скрипта, тогава променливите могат да се използват без декларация. Но този път може да доведе до трудни за откриване грешки. Достатъчно е да направите грешка веднъж в изписването на името на променливата в текста на програмата, за да получите непредвидим резултат. Препоръчваме ви винаги да указвате Option Explicit и да декларирате променливи.

Името на променливата трябва да отговаря на следните изисквания:

  1. Започнете със знак от латинската азбука;
  2. Състои се само от знаците на латинската азбука или от знаците на латинската азбука и цифрите;
  3. Дължината не надвишава 255 знака;
  4. Бъдете уникални в рамките на своя обхват.

Обхват и живот

Обхватът на променливата се определя от мястото, където е декларирана. Ако е вътре в тялото на процедура, тогава такава променлива се нарича локална и е достъпна само в рамките на тази процедура. Ако променлива е декларирана в текста на скрипта, тогава тя ще бъде видима за всички процедури или функции, дефинирани в този скрипт. Локалните променливи могат да имат едно и също име, ако са декларирани в различни процедури.

В дървото на Explorer на прозореца на редактора на скриптови обекти има специален раздел - Константи и променливи - за деклариране на глобални променливи, видими за всички скриптови функции на проекта.

Интерпретаторът заделя памет за локални променливи в момента, в който са декларирани и я освобождава при излизане от процедурата. Глобалните променливи съществуват от момента, в който са декларирани и докато скриптът завърши изпълнението си. По отношение на Gedymin това означава, че глобалните променливи съществуват през цялото време на изпълнение на програмата.

Присвояване на стойност на променлива

Стойността на декларирана променлива се присвоява с помощта на оператора =. Името на променливата е посочено отляво на оператора, новата стойност е посочена вдясно. Например:

A = 200 B = "Име"

Скаларни променливи и масиви

Променлива, съдържаща една стойност, се нарича скаларна. Понякога става необходимо да се съхраняват няколко стойности в една променлива. В този случай трябва да декларирате масив. Синтаксисът на декларацията е идентичен с декларацията на скаларната променлива, с изключение на това, че след името в скоби, ние указваме измерението на масива. Следната декларация ще създаде масив от 12 елемента:

Мрачни месеци (11)

Във VBScript лявата граница на индекса на масива винаги е 0. По този начин размерът на масива се изчислява като числото в скоби плюс едно. Когато присвоявате стойност на елемент от масива, трябва да посочите неговия индекс в скоби:

Месеци (0) = "януари" Месеци (1) = "февруари" Месеци (2) = "март" ... Месеци (10) = "ноември" Месеци (11) = "декември"

По същия начин, когато се позоваваме на стойността на елемент, ние използваме неговия индекс:

Име на месец = Месеци (5)

Масивът не трябва да е едномерен. VBScript ни позволява да посочим до 60 измерения при деклариране на масив. Например следното изявление ще създаде двуизмерен масив от 12 реда и две колони:

Мрачни дни на месеца (11, 1)

При достъп до елементите на многоизмерен масив трябва да бъдат посочени всички индекси:

Дни на месец (0, 0) = "Януари" Дни на месеца (0, 1) = 31 Дни на месеца (1, 0) = Дни на месец "Февруари" (1, 1) = 28 ...

По-горе декларирахме масиви, чийто размер не се променя, докато програмата работи. Ако не знаете предварително колко елемента ще са необходими, тогава можете да декларирате динамичен масив:

Преди да използвате, трябва да зададете размера на динамичния масив с помощта на оператора ReDim:

ReDim A (25)

По време на изпълнение можете да извикате оператора ReDim няколко пъти, като всеки път променяте размера на масива. Опцията Запазване запазва стойностите на елементите на масива при преоразмеряване. Например, следният код ще увеличи горния масив с пет елемента, оставяйки съществуващите непокътнати:

ReDim Preserve A (30)

Не забравяйте, че когато намалите размера на масива, стойностите на изтритите елементи ще бъдат безвъзвратно загубени. С помощта на оператора Erase можете да изтриете елементите на фиксиран масив или да освободите паметта, заета от динамичен масив.

Dim A ReDim A (25) ... Изтриване на A

Константи

Добра практика е да се декларират константи за стойности, използвани повторно в текста на програмата. Добре зададеното име на константа подобрява четимостта, а самото му използване опростява процеса на извършване на промени в кода. За разлика от променливите, стойността на константа не може да се променя по време на изпълнение на програмата. Константите се създават с помощта на оператора Const:

Const CountryName = "Беларус" Const CountryCode = 375

В рамките на един оператор могат да бъдат декларирани няколко константи, разделени със запетаи. Подобно на променлива, константата има свой собствен обхват в зависимост от това къде (в или извън процедурата) и как (публична или частна) е била декларирана. Константите, създадени от оператора Const без указание Public или Private, са публични по подразбиране.

В дървото на Explorer на прозореца на редактора на скриптови обекти има специален раздел - Константи и променливи - за деклариране на глобални константи, видими за всички функции на скрипта на проекта.

Стойностите на низовите константи са затворени в двойни кавички.

Стойностите от тип Дата трябва да бъдат заобиколени от знаци за лири (#) и да използват формата месец/ден/година в САЩ. Например:

Const Public Independence Day = # 03/25/1918 #

За да избегнете объркване между константи и променливи, се препоръчва да използвате един префикс за всички константи, например "con", или да въведете името на константата с главни букви.

За да улесни работата на програмиста, VBScript съдържа набор от предварително дефинирани константи.

Оператори

Операторите на VBScript попадат в пет категории: аритметика, сравнение, сливане, булеви и присвояване.

Аритметични оператори

Оператор Пример за употреба Описание
^ число ^ степен Повишава числото до степен. Числото може да бъде по-малко от нула само в случай на цяла степен. Ако един от операндите е Null, целият израз се оценява на Null. Ако се извършват множество експоненции в ред, резултатът се изчислява отляво надясно.
* число1 * число2 Произведение на две числа. Ако операндът е Empty, тогава се приема, че е нула. Ако поне един от операндите е Null, целият израз се оценява на Null.
/ номер 1 / номер 2 Реално деление на две числа. За операндите правилата са подобни на оператора за умножение.
\ номер 1 \ номер 2 Целочислено деление. И двата операнда се прехвърлят към тип Byte, Integer или Long, преди да бъдат оценени. В противен случай важат същите правила като за оператора на разделяне.
Мод номер1 Мод номер2 Остатък от целочислено деление. Прехвърляне на операнди към цяло число, както и правилата за работа с Empty и Null, както при целочислено деление.
+ израз1 + израз2 Ако и двата операнда са числа, резултатът е тяхната аритметична сума. Ако и двата операнда са низове - конкатенация (конкатенация) на два низа. Ако единият операнд е число, а другият е низ, тогава низовият операнд ще бъде преобразуван в число и добавен към числовия. Ако поне един от операндите е Null, целият израз се оценява на Null. Ако и двата операнда са празни, резултатът е целочислена стойност от 0. Ако само един оператор е празен, стойността на втория операнд се връща като резултат.
- номер1 - число2 или - число В първия случай връща разликата от две числа. Във втория, той обръща знака на числото. Правилата за Null и Empty операндите са същите като за оператора за умножение.

Оператори за сравнение

Формат на оператора за сравнение:

Резултат = израз1 оператор за сравнение израз2

където се използват следните оператори за сравнение:< (меньше), <= (меньше или равно), >(по-голямо от),> = (по-голямо или равно), = (равно),<>(не е равно).

В зависимост от видовете и стойностите на операндите, сравнението се извършва, както следва:

Ако Че
И двата операнда са числа. Сравнява две числа.
И двата операнда са низови. Извършва се сравнение на две струни.
Един от операндите е число, а вторият е низ. Операндът низ се прехвърля към число и се извършва сравнение между двете числа.
Единият от операндите е празен, а другият е число. Приема се, че операндът със стойност Empty е 0.
Един от операндите е Empty, а вторият е низ. Приема се, че операндът със стойност Empty е празният низ "". Извършва се сравнение на две струни.
И двата операнда са празни. Операндите се считат за равни.
Поне един от операндите е Null. Резултатът е Нул.

Специалният оператор Is се използва за сравняване на две обектни променливи и връща True, ако и двете променливи се отнасят до един и същ обект.

Оператори за конкатенация

Резултат = израз1 и израз2

Ако операндът не е низ, той се прехвърля към низов тип. Ако и двата операнда са Null, тогава резултатът също е Null, но за разлика от други оператори, ако само един операнд е Null, тогава се приема, че е празен низ. Операнд със стойност Empty също се третира като празен низ "".

Логически оператори

VBScript ни предоставя следните логически оператори:

  1. Логическо изключване (Xor);
  2. Булев еквивалент (Eqv);
  3. Логическа импликация (Imp).

Булеви изрази или числови стойности могат да се използват като операнди за логически оператори. В първия случай резултатът ще бъде булева константа, във втория - число. В зависимост от оператора, подаването на една или две нулеви стойности към входа може да доведе до нулев резултат. Операторът Not е унарен и връща логическото отрицание на израза. Операторът Not извършва побитова инверсия на числов операнд. Останалите логически оператори са двоични. Таблицата по-долу показва резултатите от изпълнението на всеки от операторите в зависимост от стойността на операндите Exp1 и Exp2:

Exp1 Exp2 И Или Xor Eqv Имп
Вярно Вярно Вярно Вярно Невярно Вярно Вярно
Вярно Невярно Невярно Вярно Вярно Невярно Невярно
Невярно Вярно Невярно Вярно Вярно Невярно Вярно
Невярно Невярно Невярно Невярно Невярно Вярно Вярно
Вярно Нула Нула Вярно Нула Нула Нула
Невярно Нула Невярно Нула Нула Нула Вярно
Нула Вярно Нула Вярно Нула Нула Вярно
Нула Невярно Невярно Нула Нула Нула Нула
Нула Нула Нула Нула Нула Нула Нула

В живота най-често се използват операторите And и Or и много по-рядко - Xor. Не ни се е налагало да се занимаваме с практическото използване на операторите Eqv и Imp. Ако ви е трудно да се справите с горната таблица, ние обобщаваме ефекта от тези оператори:

  • И е True само ако и двата операнда са True. Във всеки друг случай е или False, или Null.
  • Или е True, ако поне един от операндите е True.
  • Xor е True, ако стойностите на операндите са различни и False, ако са еднакви.

Когато се изпълнява побитово над числови операнди, резултатът от логическия оператор се определя от следната таблица:

Exp1 Exp2 И Или Xor Eqv Имп
0 0 0 0 0 1 1
0 1 0 1 1 0 1
1 0 0 1 1 0 0
1 1 1 1 0 1 1

Оператор на присвояване

Операторът за присвояване (=) е описан подробно в раздела "Променливи".

Операторска поръчка

Ако изразът съдържа множество оператори, те се прилагат в ред, който се нарича приоритет на оператора. Можете да промените реда по подразбиране, като използвате скоби. Израз в скоби винаги се оценява първи.

В израз, съдържащ оператори от различни категории, първо се изпълняват аритметични операции, след това операторите за сравнение и накрая логическите оператори. Всички оператори за сравнение имат еднакъв приоритет и се оценяват отляво надясно. Аритметичните и логическите оператори се оценяват в следния ред:

  1. Експоненция (^);
  2. Промяна на знака за число, унарно минус (-);
  3. Умножение (*) и деление (/);
  4. Целочислено деление (\);
  5. Остатък от целочислено деление (Mod);
  6. Събиране (+) и изваждане (-);
  7. Обединяване на низове (&).

Ако умножението и деленето се извършват в един и същ израз, тогава операциите се извършват в ред отляво надясно. Подобно правило се прилага и в случай на едновременно присъствие на операторите за събиране и изваждане.

Операторът за конкатенация на низове (&) не е аритметичен и има приоритет между аритметични и оператори за сравнение.

Последователността на логическите оператори е както следва:

  1. Логическо отрицание, инверсия (Не);
  2. Логическо умножение, съюз (И);
  3. Логическо събиране, дизюнкция (Или);
  4. Логическо изключване (Xor);
  5. Булев еквивалент (Eqv);
  6. Логическа импликация (Imp).

Условни изрази

Условните изрази се използват за контрол на реда на изпълнение на командите на програмата и ви позволяват да организирате преходи (разклонения) и повторения на команди. Обикновено операторите за сравнение се използват във връзка с условни изрази.

Израз If..Then..Else

Условният разклонен израз If ви позволява да изпълнявате определена група от команди в зависимост от резултата от логически израз или стойността на булева променлива.

За да се изпълни една команда, когато дадено условие е изпълнено, се използва синтаксисът на едноредов израз:

Dim S Ако DatePart ("w", Now) = vbMonday Тогава S = "Monday" Application.MessageBox S, "", vbOkOnly

Имайте предвид, че разделът Друго е пропуснат в този случай. За да изпълните група от оператори, ги оградете между ключовите думи Then и End If.

Dim S If DatePart ("w", Now) = vbMonday Тогава S = "Днес е понеделник" Application.MessageBox S, "", vbOkOnly End If

Ако, когато условието е изпълнено, трябва да се изпълни един код, а ако условието не е изпълнено, друг, тогава се използва синтаксисът на израза със секцията Else:

Dim S Ако DatePart ("w", Now) = vbMonday Тогава S = "Днес е понеделник" Иначе S = "Днес не е понеделник" Край, ако Application.MessageBox S, "", vbOkOnly

Ако трябва да избирате от няколко алтернативи, синтаксисът с конструкцията ElseIf е подходящ:

Dim S, DD = DatePart ("w", сега) Ако D = vbMonday Тогава S = "понеделник" ElseIf D = vbTuesday Тогава S = "вторник" ElseIf D = vbWednesday Тогава S = "сряда" ... Край, ако приложението. MessageBox S, "", vbOkOnly

Ако изразите могат да бъдат вложени:

Dim S, DD = DatePart ("w", сега) Ако D = vbMonday Тогава S = "понеделник" Иначе Ако D = vbTuesday Тогава S = "вторник" Иначе Ако D = vbWednesday Тогава S = "сряда" Иначе ... Край Ако Край Ако Край Ако

Въпреки че броят на секциите ElseIf в условен израз е неограничен, тяхната интензивна употреба може да доведе до объркващ, нечетлив код. В случай на избор на една алтернатива от множество възможни, в зависимост от стойността на някой селектор, се препоръчва да се използва изразът Select Case.

Изберете..Case Expression

Нека пренапишем примера за деня от седмицата, използвайки израз за избор:

Dim S Изберете Case DatePart ("w", сега) Case vbMonday S = "Monday" Case vbTuesday S = "Tuesday" Case vbWednesday S = "Wednesday" ... Case Else Err.Raise 32000, "", "Неизвестен ден от седмицата „End Select

Тъй като изразът на селектора се оценява само веднъж, използването на Select..Case води до по-ефективен код. Препоръчително е винаги да използвате секцията Case Else за улавяне на невалидни или необработени стойности на селектора.

Оператори на цикъл

Доста често възниква ситуация, когато кодът трябва да се изпълни отново. За да направите това, напишете цикличен оператор, който повтаря определени команди отново и отново. Цикълните оператори се използват в много ситуации: при изчисляване на обща стойност върху списък с числа, при преминаване през записи в набор от данни или за изпълнение на блок от код за множество обекти. Има няколко цикъла, описани в следващите раздели. Някои от тях са изпълнени, докато условието е Вярно, други - докато False. И накрая, има такива, които се изпълняват определен брой пъти.

Оператор Do..Loop

Този оператор е предназначен да изпълнява група от команди, докато дадено условие е True или докато стане True. Състоянието може да се провери както в началото на цикъла:

Извършете [(Докато | До) условие] Цикъл

и накрая:

Извършване на цикъл [(Докато | До) условие]

Командата Exit Do може да се появи неограничен брой пъти в тялото на цикъла. Обикновено се използва във връзка с условния израз If..Then и ви позволява да прехвърлите контрола към оператора непосредствено след цикъла. Когато използвате Exit Do вътре в вложен цикъл, контролът ще потече към външния цикъл.

Следният код замества заровете:

Dim Resp, Num Do Num = Int (6 * Rnd + 1) Resp = Application.MessageBox (Num & "Another number?", "", _ VbYesNo или vbQuestion) Цикъл до Resp = vbNo

Докато..Уенд

Това е съкратена версия на оператора Do..Loop и ви позволява да изпълнявате група от команди, докато условието е True. Синтаксис на оператора:

Докато условието Wend

Имайте предвид, че Exit Do няма ефект в рамките на този цикъл. Докато..Wend циклите могат да бъдат вложени.

За..Напред

Този цикъл повтаря определен набор от команди определен брой пъти. Синтаксисът на оператора е:

За брояч = начало До край Следващ

Преди да започне цикълът, променливата на брояча е настроена да стартира. След това се проверява изпълнението на условието за брояча<= end, при step >= 0 или брояч> = край, ако стъпката е отрицателна. След изпълнението на блока от команди, броячът на променливата се увеличава със стойността на стъпката и всичко се повтаря отначало.

Промяната на брояча в тялото на цикъла не е забранена, но е силно не се препоръчва, тъй като усложнява разбирането на логиката на програмата и нейното отстраняване на грешки.

Exit For може да се появи произволен брой пъти в тялото на цикъла. Циклите могат да бъдат вложени. Например, цикъл като този инициализира 3D масив:

Dim A (9, 9, 9) Dim I, J, K За I = 0 до 9 За J = 0 до 9 За K = 0 до 9 A (I, J, K) = 1 Следващ Следващ Следващ

За всеки..Следващ

Операторът на цикъла For Every..Next повтаря определен набор от команди за всеки елемент от масив или колекция и има следния синтаксис:

За всеки елемент В групата Next

Цикълът се изпълнява, ако има поне един елемент в масива или колекцията. Exit For може да се появи произволен брой пъти в тялото на цикъла.

Нека илюстрираме използването на For Every..Next със следния код, който показва списък с файлове от основната директория на устройството c: \

Dim fso, f, f1, fc, s Задайте fso = CreateObject ("Scripting.FileSystemObject") Задайте f = fso.GetFolder ("c: \") Задайте fc = f.Files за всеки f1 в fc s = s & f1 .name & vbNewLine Следващо Application.MessageBox s, "Файлове в c: \", vbOkOnly

Процедури

За да спестите памет и да структурирате програмата, част от кода, която се извиква многократно на различни места, може да бъде форматирана като процедура. Има два вида процедури във VBScript: Subs и Functions. Подпрограмата е поредица от изрази, заобиколени от ключовите думи Sub и End Sub. Подпрограмата може да приема параметри като вход, но не връща стойност. Функция - поредица от изрази, затворени между функция и крайна функция - връща резултат и следователно може да се използва в израз. Всяка процедура трябва да има име, което е уникално в рамките на модула. Имената на процедурите, декларирани в глобалния модул, трябва да са уникални в целия проект.

Дефиницията на подпрограма и функция има следния синтаксис:

| Private] Sub name [(arglist)] End Sub | Private] Име на функция [(arglist)] Крайна функция

Публичните процедури са глобални и достъпни във всички скриптове на програмата. Частните процедури са достъпни само в скрипта, в който са декларирани. Освен ако не е посочено друго, декларираната процедура е публично достъпна. Ключовата дума Default може да се използва само в тялото на класа и служи за обозначаване на метода по подразбиране на този клас.

Списъкът с параметри има следния синтаксис:

Varname [, ...]

Параметрите могат да се предават по стойност (ByVal) или по препратка (ByRef). По подразбиране всички параметри се предават по стойност. Константи, резултатите от оценката на изразите могат да се предават само по стойност. Промяната на параметъра, предаван чрез препратка, ще промени стойността на външната променлива. Нека обясним прехвърлянето на параметри в процедурата, като използваме следния пример:

Sub DoCalculation (ByRef A, ByVal B, ByVal C) A = C * 2 B = C / 2 End Sub Sub TestVar Dim V1, V2 V1 = 1 V2 = 2 DoCalculation V1, V2, 10 "След процедурата на DoCalculation" V1 = 20 "V2 = 2 крайни под

Променливите, декларирани в тялото на процедурата, са локални и се унищожават, когато тя завърши изпълнението си. Стойностите на локалните променливи не се записват.

Списъкът с параметри е посочен в скоби при извикване на функция или при извикване на подпрограма с помощта на оператора Call. И така, можем да напишем извикването на процедурата DoCalculation в горния пример, както следва:

Обадете се на DoCalculation (V1, V2, 10)

Изпълнете израз

VBScript класове

VBScript ви позволява да създавате нови класове, които ще наричаме VB класове по-долу. Най-общо казано, те не са пълноценни класове в разбирането за обектно-ориентирано програмиране, тъй като не поддържат наследяване и съответно полиморфизъм. Така че от трите кита, на които се основава обектно-ориентираната парадигма, остава само капсулиране – способността да се комбинират данни и методи в рамките на един обект.

Дефинирането на клас се извършва с помощта на следната конструкция:

Изявления за име на клас Край на класа

където name е името на класа, а изразите са една или повече дефиниции на променливи, свойства, процедури или функции, наричани също членове на класа. Имайте предвид, че за разлика от Delphi, където кодът на дефиниция на клас съдържа само декларации на процедури и функции, в VB клас кодът на члена се записва директно в текста на класа.

Членовете на класа могат да бъдат обявени за частни или публични. Първите са видими само вътре в кода на този клас, докато вторите са достъпни както за вътрешния код, така и извън него. Ако променлива или функция (процедура) не съдържа изрична дефиниция на Public или Private, тогава те се считат за публични. Процедури или функции, декларирани като Public вътре в блок на клас, стават методи на този клас.

Променливите, декларирани като публични, стават свойства на класа заедно със свойствата, декларирани директно с помощта на конструкциите Property Get, Property Let, Property Set.

Дефиниране на свойства на класа

По-горе вече казахме, че полетата на клас, независимо дали са изрично или не декларирани като Public, стават негови свойства. Освен това можете да създадете свойство на клас, като дефинирате специални функции за четене на стойността на свойството (Property Get), както и за присвояването му (Property Let или Property Set).

Синтаксисът за дефиниране на такива функции е както следва:

| Частно] Собственост Получаване на име [(arglist)] [име = израз] [име = израз] Край на свойство Свойство Нека име (стойност) Край на свойство Име на набор (референт) Край на свойство

Като дефинирате само една функция, четене или присвояване, можете да създадете съответно свойство само за четене или само за запис. Процедурата Property Let се използва за присвояване на прости типове данни, а процедурата Property Set се използва за предаване на препратка към обект. Имайте предвид, че и трите функции могат да приемат произволен списък с параметри като вход. Ето как можете да организирате, например, свойства на масива, като предадете индекса на елемента като аргумент.

Създаване и унищожаване на екземпляр от VB клас

С помощта на оператора New се създава екземпляр на VB клас.

Dim X Set X = Ново име на клас

Унищожаването на предварително създаден екземпляр става автоматично при завършване на блока от код, където е декларирана съответната променлива и при условие, че няма външни препратки към нея. Ако трябва ръчно да унищожите екземпляра, трябва да присвоите стойността Nothing на променливата.

'Деклариране на променлива и създаване на екземпляр на класа Dim X Set X = New classname ...' с помощта на екземпляр на класа ... 'унищожаване на екземпляр на класа Set X = Notning ...

Инициализирайте и прекратете събития

Събитието Initialize възниква, когато класът е инстанциран, и Terminate, когато е унищожен. Разработчикът може да дефинира свои собствени манипулатори на данни за събития. По-долу е даден пример за използване на събития за създаване и изтриване на обект:

Клас TestClass "Дефинирайте манипулатора на събитие Initialize. Private Sub Class_Initialize MsgBox (" TestClass started ") End Sub" Дефинирайте манипулатора на събитието за прекратяване. Private Sub Class_Terminate MsgBox („TestClass terminated“) End Sub End Class „Създаване на екземпляр на класа TestClass.“ Съобщението „TestClass started“ Set X = New TestClass „Destroy the instance.“ Съобщението „TestClass terminated“ Set X = Нищо

Този урок ще се фокусира върху Функция... Крайна функция- подпрограма, която връща конкретна стойност и около процедура Под... Край Под- подпрограма, която не връща нищо. Двойка, те може да са просто жизненоважни необходими при решаването на някои проблеми вVBScript скриптове.

Функция... Крайна функция.

VBScript езикще ви позволи да създадете свои собствени функции и процедури и сега трябва да разберем това.

Функцията (Function ... End Function) може да ни бъде полезна, когато трябва да извършим едно и също действие (скрипт, иначе - израз) няколко пъти, но с различни данни. Вместо да дублирате един и същ израз сто пъти, можете да го напишете само веднъж.

Първо идва ключовата дума Функция, а след него идва името на функцията, която измисляте сами. След името й в скоби, разделени със запетаи, се посочват параметрите на функцията. Следва тялото на функцията, което е затворено с ключови думи Крайна функция... Да видим пример:

"VBScript урок № 3" file_1.vbs dim a, b Function fun_name (a, b) Dim резултат резултат = a + b fun_name = rezultat "присвоете стойността на функцията, която ще ни върне Край Функция MsgBox fun_name (5,110 ) MsgBox fun_name (15 , 16) MsgBox fun_name (25,15)

„VBScript урок № 3

"Функции (Функция ... Крайна функция) и процедури (Под... Край Под)

"file_1.vbs

тъмно а, б

Функция fun_name (a, b)

Тъмен резултат

резултат = a + b

fun_name = резултат „задайте стойност на функцията, която тя ще ни върне

Крайна функция

MsgBox fun_name (5, 110)

MsgBox fun_name (15, 16)

MsgBox fun_name (25, 15)

Примерът показва, че можете да декларирате свои собствени променливи във функция. Възможно е също в тялото на самата функция да присвоим стойност на променлива, която тя ще ни върне. Тази променлива има същото име като функцията. Това е необходимо, за да може функцията да ни върне стойности, когато бъде извикана с помощта на MsgBox в края на примера. Ако това не е необходимо, тогава функцията се извиква така: fun_name 5,110 (без скоби).

С това изглежда всичко е ясно. Сега да продължим.

Под... Край на подпроцедура.

Процедурата Sub... End Sub може да се използва за същите цели като функцията (Function... End Function), но с едно условие - не връща стойност. Всичко се случва в тялото на самата процедура.

Процедурата се декларира с ключова дума под, последвано от произволно име на процедурата и нейната стойност в скоби. Процедурата приключва с ключови думи Край под... Да видим пример:

"VBScript урок № 3" Функции (функция ... Крайна функция) и процедури (Sub ... End Sub) "file_2.vbs dim a, b Sub sub_name (a, b) Dim резултат резултат = a + b MsgBox резултат Край на подповикване sub_name (5,110) Call sub_name (15,16) Call sub_name (25,15) sub_name 25,1

„VBScript урок № 3

"Функции (Функция ... Крайна функция) и процедури (Под... Край Под)

"file_2.vbs

тъмно а, б

Под_име (a, b)

Въпреки че във VBScript е дефиниран само един тип

, в рамките на този тип има разделение на подтипове, чието описание е дадено в табл. A2.1. За да конвертирате променливи към конкретен подтип, трябва да използвате съответната функция за преобразуване; такива функции също са представени в табл. A2.1.

Таблица A2.1.Подтипове данни

Подтип Функция за преобразуване Описание
- Автоматично се присвоява на нови променливи, когато все още не е дефинирана изрична стойност за тях
- Показва, че променливата не съдържа валидни стойности
Използва се за работа с булеви променливи, които приемат две валидни стойности: или
Съдържа цели числа в диапазона от 0 до 255
Съдържа цели числа в диапазона от –32768 до 32768
Специален цифров формат за парични стойности
Съдържа цели числа в диапазона -2147483648 до 2147483647
Тип с плаваща запетая с единична точност
Двойно прецизен тип с плаваща запетая
Съдържа числа, съответстващи на дати и часове от 1 януари 100 до 31 декември 9999 г.
Подтип данни за символи. Текстовите низове във VBScript са поредица от знаци, затворени в двойни кавички
- Препратка към обект
- Тип данни за съхраняване на номера на грешки

В променлива, която преди това е била декларирана с помощта на ключовата дума

, можете да напишете връзка към всеки обект. Това се прави с помощта на оператор, например:
Задайте FSO = CreateObject ("Scripting.FileSystemObject")

Ето функцията

връща екземпляр на обект, препратката към който се съхранява в променлива. :

Константи

Персонализираните константи във VBScript се декларират с помощта на ключовата дума

, например:
Const MyConst = "Това е моята константа"

В допълнение, VBScript поддържа много вградени именувани константи (те не е необходимо да бъдат декларирани допълнително в скрипта), използването на които улеснява използването на различни вътрешни функции (напр.

или ). Имената, стойностите и описанията на вътрешните константи са дадени в табл. A2.2 – A2.9.

Таблица A2.2.Константи за обозначаване на цветове

име смисъл Описание
& h00 Черен цвят
& hFF червен цвят
& hFF00 Зелен цвят
& hFFF жълт
& hFF0000 Син цвят
& hFF00FF Лилаво
& hFFFF00 Тюркоазено
& hFFFFFF бял цвят

Таблица A2.3.Константи за номериране на дни от седмицата

име смисъл Описание
1 неделя
2 понеделник
3 вторник
4 сряда
5 четвъртък
6 петък
7 събота

Таблица A2.4.Константи за определяне на първия ден от седмицата и първата седмица от годината

име смисъл Описание
0 Използвайте регионалните настройки на системата, за да определите първия ден от седмицата
1 Първата седмица от годината се счита за тази, в която беше 1 януари
2 Първата седмица от годината се счита за тази, в която е имало поне четири дни от новата година.
3 Първата седмица от годината се счита за първата пълна седмица.

Таблица A2.5.Константи за работа с дата и час

име смисъл Описание
0 Датата и часът се показват във формат, определен от регионалните настройки на системата
1 Показване на дата в пълен формат
2 Показване на дата в кратък формат
3 Показване на времето с пълен формат
4 Показване на времето в кратък формат

Таблица A2.6.Константи на диалоговия прозорец

име смисъл Описание
0 Бутонът се показва Добре
1 Бутоните се показват Добреи Отмяна(Отказ)
2 Бутоните се показват Спри се(Прекратяване), Повторете(Опитайте отново) и Пропусни(Игнориране)
3 Бутоните се показват да(да), Не(Не) и Отмяна(Отказ)
4 Бутоните се показват да(Да и Не(Не)
5 Бутоните се показват Повторете(Опитайте отново) и Отмяна(Отказ)
16 Показва се иконата Спри Марк
32 Показва се иконата Въпросителен знак
48 Показва се иконата Удивителен знак
64 Показва се иконата
0 По подразбиране първият бутон е избран в прозореца.
256 По подразбиране вторият бутон е избран в прозореца.
512 По подразбиране третият бутон е избран в прозореца.
768 По подразбиране четвъртият бутон е избран в прозореца.
0 Диалоговият прозорец се показва в модален режим
4096 Диалоговият прозорец се показва в модален режим и се намира в горната част на всички стартирани приложения

Таблица A2.7.Резултати от щракване върху бутони в диалоговите прозорци

име смисъл Описание
1 Бутонът е натиснат Добре
2 Бутонът е натиснат Отмяна(Отказ)
3 Бутонът е натиснат Спри се(Прекратяване)
4 Бутонът е натиснат Повторете(Опитайте отново)
5 Бутонът е натиснат Пропусни(Игнориране)
6 Бутонът е натиснат да(да)
7 Бутонът е натиснат Не(Не)

Таблица A2.8.Константи за обозначаване на подтипове данни

име смисъл Описание
0 Променливата не е инициализирана
1 Променливата не съдържа валидни данни
2 Променливата има подтип
3 Променливата има подтип
4 Променливата има подтип
5 Променливата има подтип
6 Променливата има подтип
7 Променливата има подтип
8 Променливата има подтип
9 Променливата има подтип
10 Променливата има подтип
11 Променливата има подтип
12 Променливата има подтип (само за масиви от тип променливи)
13 Обект за достъп до данни
14 Променливата има подтип
17 Променливата има подтип
8192 Променливата е масив

Таблица A2.9.Други константи

име смисъл Описание
Chr (13) Връщане на карета
Chr (13) и Chr (10) Връщане на каретка и преместване на реда
Chr (12) Превод на страницата
Chr (10) Превод на редове
Chr (0) Знак с нулев код
Нулева линия Нулева линия
Chr (9) Табулаторен знак
Chr (11) Вертикален табулаторен знак
-2 Използвайте настройките по подразбиране от регионалните настройки на системата
-1 Булева истина
0 Булева стойност "false"
-2147221504 Указва минималната стойност за дефинирани от потребителя номера на грешки

Масивите във VBScript могат да бъдат от два типа: статични (с фиксирана дължина) и динамични (променлива дължина). Масивите се декларират, както обикновените променливи, с помощта на ключовата дума

.

За да декларирате статичен масив, след неговото име, трябва да посочите в скоби най-голямата стойност, която може да приеме индексът на елемент в този масив, например:

Във VBScript (за разлика например от VBA) номерирането в масивите винаги започва от нула, следователно масивът, деклариран по-горе

ще съдържа 11 елемента, които трябва да се отнасяте, както следва:

Можете да декларирате двуизмерен масив, като посочите максималните стойности на индекса съответно за редове и колони, например:

Dim MyArr (5, 10) „Масив от 6 реда и единадесет колони

Когато се декларира динамичен масив, неговите размери не са посочени в скоби:

За да използвате динамичен масив в скрипт, използвайте оператора

който дефинира конкретната дължина на масива, например:

След това елементите на динамичния масив могат да бъдат достъпни по същия начин като елементите на обикновения:

MyArr (0) = "Това е първият елемент"
MyArr (1) = "Това е вторият елемент"

Имайте предвид, че динамичният масив може да бъде преоразмерен няколко пъти (използвайки същия

). За да запазите съдържанието на масива, използвайте ключова дума в оператора, например:

Оператори

Във VBScript се поддържат няколко типа оператори, които са описани по-долу.

Аритметични оператори

Аритметичните оператори на езика VBScript са представени в табл. A2.10.


Таблица A2.10.Аритметични оператори

Оператор Описание
(унарен оператор) Обръщане на знака на аргумент
(двоичен оператор) Изваждане на две числа
Добавяне на две числа
Умножение на две числа
Деление на две числа
Целочислено деление на две числа
Изчисляване на остатъка от две числа
Оператор на степенуване

Релационни и булеви оператори

Релационните оператори се използват за сравняване на стойностите на две променливи. Тези оператори, описани в табл. A2.11, може да връща само булеви стойности

или .

Таблица A2.11.Релационни оператори


Също така, вътре в условните оператори, могат да се използват логически оператори (Таблица A2.12).


Таблица A2.12.Логически оператори

Оператор Описание
Оператор на отрицание. Връща, ако операндът е равен. В противен случай се връща
ИЛИ оператор. Връща, ако един от операндите е равен. В противен случай се връща
Операторът на връзката "ИЗКЛЮЧИТЕЛНО ИЛИ". Връща, ако единият от операндите е равен, а другият е равен. В противен случай се връща
Операторът на връзката "И". Връща, ако и двата операнда са равни. В противен случай се връща

Условни оператори

VBScript поддържа условния оператор

... Общ изглед на този оператор:
Ако условие_1Тогава
израз_3]

При изпълнение на изявлението

логическото условие се оценява ( условие_1) след ключовата дума. Ако в резултат на оценката на условието се получи стойност, тогава и операторът излиза. В противен случай условията след ключовите думи се проверяват на свой ред; ако едно от тези условия е вярно, тогава се изпълнява съответният израз, след което управлението се прехвърля на следващия оператор след End If. Ако нито едно от тестваните условия не е вярно, изразът след ключовата дума се изпълнява. пример:

Друг оператор, който ви позволява да направите избор от няколко опции е

... Синтаксисът на това изявление е:
Изберете Case изразяване
Случай стойност_1
израз_3]

Тук първо се изчислява стойността , което след това се сравнява на свой ред със стойностите след ключовите думи

... Ако има съвпадение, операторите в съответния блок се изпълняват. Ако никоя от наличните стойности не съответства на стойността , след това операторите след думата Else се изпълняват. Пример за използване на оператора:
Цвят = "Цветът не е ясен"

Оператори на цикъл

Във VBScript се поддържат няколко типа цикли: цикъл

, цикъл, цикъл, цикъл. Нека разгледаме всеки един от тях по-подробно.

Цикъл За… Следваща

Като цяло операторът на цикъла

е написано както следва:
За брояч = началоЧе край

Параметър тук е броячът на цикъла;

- началната стойност на този брояч; - крайна стойност; е стъпката на нарастване на брояча. Ако ключовата дума не е посочена, тогава увеличението се приема равно на единица. Цикълът излиза, когато стойността на брояча става по-голямо от стойността на параметъра ... Изразът се използва за безусловно излизане от цикъла.

Пример за използване на цикъл

показано в листинг A2.1. Списък A2.1. Пример за използване на цикъл
„Цикълът ще бъде изпълнен 11 пъти

Цикъл За всеки… Следващ

Оператор на цикъл

е проектиран да преглежда всички елементи на масив или колекция:
За всеки елементВ група

Тук параметър е променлива, в която стойността на текущия елемент от масив или колекция ще бъде записана по време на итерации; - името на масив или колекция от обекти.

Коментирайте

Припомнете си, че в JScript, за да преглеждате всички елементи на колекция, трябва да използвате помощния обект

.

Използване на оператора

можете незабавно да излезете от цикъла.

Пример за използване на цикъл

показано в листинг A2.2. Списък A2.2. Пример за използване на цикъл
„Деклариране на променливи
Dim FSO, папка, файлове, файл, s
s = "Списък с файлове" & vbCrLf
„Създайте FileSystemObject
Задайте FSO = CreateObject ("Scripting.FileSystemObject")
„Създайте обект на папка за основната директория на C устройството:
Задайте папка = FSO.GetFolder ("C: \")
„Създайте колекция от файлове от всички файлове в основната директория на C устройството:
„Преглеждам всички елементи на колекцията Files
„Изберете името на файла за текущия елемент от колекцията от файлове
„Показване на генерирания низ на екрана

Цикъл Докато... Уенд

е написано както следва:

Така че в цикъла

условието за изпълнение на тялото на цикъла се проверява преди началото на следващата итерация. Ако състояниеравно, тогава тялото на цикъла се изпълнява, в противен случай цикълът свършва.

Пример за използване на цикъл

показано в листинг A2.3. Списък A2.3. Пример за използване на цикъл
theCount = 42 "Начална стойност на брояча на цикъла
theMoments = "& theCount &" остават секунди до експлозията!"
theMoments = "Остава една секунда!"
theCount = theCount - 1 "Намалете стойността на брояча

Цикъл Направете ... Loop

Този цикъл може да се използва по два начина (с предварително условие, което се проверява преди началото на следващата итерация, и с последващо условие, което се проверява след края на итерацията):

направи състояние
Примка състояние

Ако цикълът използва ключовата дума

, след което итерациите продължават до равно на ; ако се приложи, тогава веднага щом стойността на условието стане, цикълът ще излезе.

Оператор

ви позволява да излезете от цикъла, преди да завършите неговите итерации.

Пример за използване на цикъл

показано в листинг A2.4. Списък A2.4. Пример за използване на цикъл
Dim howFar „Горна граница за брояча на циклите
Dim sum (10) „Масив от 11 елемента, индекси от 0 до 10
„Цикълът ще бъде изпълнен 11 пъти

Други оператори

Нека разгледаме няколко по-често използвани оператора (Таблица A2.13).


Таблица A2.13.Други оператори

Обработка на изключения

Обработката на изключения на VBScript е активирана с помощта на оператора

... Ако след това, докато се изпълнява който и да е оператор в скрипта, възникне грешка по време на изпълнение, тогава контролът ще бъде прехвърлен към следващия израз в текста.

За анализиране на грешки се използва специален обект

, който съдържа две свойства: - цифровия код на възникналата грешка и - кратко описание на тази грешка.

Като пример, ето част от скрипта, който обработва изключения при свързване на мрежово устройство:

При грешка Възобновяване на следващо „Включете обработката на грешки по време на изпълнение
„Свържете мрежово устройство
WshNetwork.MapNetworkDrive Drive, NetPath
Mess = "Грешка при свързване на устройството" & Drive & "to" & NetPath & _
„Код на грешка:“ & e.number & „Description:“ & e.description
WshShell.Popup Mess, 0, "Map Network Drive", vbCritical
Mess = "Drive" & Drive & "успешно свързан към" & NetPath
WshShell.Popup Mess, 0, "Map Network Drive", vbInformation

За да отмените режима за обработка на изключения, трябва да изпълните оператора

.

Процедури и функции

VBScript поддържа два вида подпрограми: вградени функции и потребителски функции или процедури.

Математически функции

Функциите, налични във VBScript за математически изчисления, са описани в табл. A2.14.


Таблица A2.14.Математически функции

Функция Описание
Връща абсолютната стойност на число
Връща арктангенса на число
Връща косинус на число
Експоненциална функция, връща числото e, повдигнато на степен
Връща цялата част от число
Връща естествения логаритъм на число
Връща произволно число между 0 и 1
Кръгъл ( x [, nvmdecimal])
Връща резултата от закръгляне на число точен за десетични знаци
Подписана функция за число
Връща синуса на число
Изчислява корен квадратен от число и връща получената стойност
Връща тангенса на число

Символични функции

Най-често използваните функции, които могат да се използват за извършване на различни операции върху символни низове, са описани в табл. A2.15.


Таблица A2.15.Символични функции

Функция Описание
Връща ASCII кода на първия знак в низ
Връща ASCII символ
InStr ( str1, str2 [, сравни])
Връща индекса на знака, от който започва първото появяване на подниз в редица ... Параметър определя номера на знака, от който да започне търсенето. Ако този параметър не е посочен, тогава търсенето се извършва от началото на реда. Търсенето се извършва отляво надясно. Параметър задава режима на сравнение при обработка на низове (0 - двоичен, сравнение, 1 - текстово сравнение)
InStrRev ( str1, str2 [, начало [, сравнение]])
Същото като функция , но търсенето се извършва от дясно наляво, т.е. връща номера на последния знак, от който започва появата на подниз в редица
Връща низа, получен в резултат на конкатенацията на поднизовете, съдържащи се в масива ... Параметър определя символ, разделящ поднизове (по подразбиране този знак е интервал)
Връща низ с всички азбучни знаци, преобразувани в малки букви
Се завръща знаци от началото на реда
Връща броя на знаците в низ
LTrim ( ул), RTrim ( ул), Подстригване ( ул)
Премахва съответно водещи, крайни или и двете интервали от низ
Среда (ул, начало [, len])
Връща подниз от низ, който започва от позиция и има дължина ... Ако параметърът не е посочено, тогава се връщат всички знаци, започващи от позиция до края на реда
Замяна ( expr, find, replacewith [, start [, count [, compare]]])
Връща низ, който е получен от низ като замените включените в него поднизове върху поднизове ... Параметър дефинира броя на поднизовете, които ще бъдат обработени по този начин (по подразбиране се правят всички възможни замествания). Параметър
Връща знаци от края на низа
Връща низ, състоящ се от интервали
Разделяне (Expr [, delim [, count [, compare]]])
Връща масив от низове в резултат на разделяне на низ в поднизове. Параметър определя знак, който разделя поднизове (по подразбиране този знак е интервал). Параметър определя броя на поднизовете, които ще бъдат обработени по този начин (по подразбиране всички поднизове се записват в масива). Параметър задава режима на сравнение при работа с низове (0 - двоично сравнение, 1 - текстово сравнение)
StrComp (str1,с tr2 [, сравни])
Връща число - резултат от сравнение на низове и ... Ако , след което се връща -1; if, тогава се връща 0; ако , след което се връща 1. Параметър задава режима на сравнение при работа с низове (0 - двоично сравнение, 1 - текстово сравнение)
Връща низ, състоящ се от символи
Връща низ с всички азбучни знаци, преобразувани в главни букви

За работа с дата и час във VBScript има голям набор от функции, основните от които са показани в табл. A2.16.


Таблица A2.16.Функции за работа с дата и час

Функция Описание
Връща текущата системна дата
Добавяне на дата ( интервал, число, дата)
Връща дата, която е отделна от датата На интервали, определени от параметър , който може да приема следните стойности: "yyuy" - година, "q" - тримесечие, "m" - месец, "y" - ден от годината, "d" - ден, "w" - седмица, "ww" - седмица от годината, "h" - час, "m" - минута, "s" - секунда
DateDiff ( интервал, дата1, дата2 [, първи ден от седмицата [, първа седмица на годината]])
Връща разликата в интервалите (възможните стойности на този параметър са същите като във функцията) между датите и ... Параметър - това е константа, показваща кой от дните от седмицата трябва да се счита за първи (виж таблици A2.3, A2.4). Параметър е константа, показваща коя седмица трябва да се счита за първа от годината (виж Таблица A2.4)
Част за дата ( интервал, дата [, първи ден от седмицата [, първа седмица на годината]])
Връща тази част от датата което съответства на параметъра ... Стойности на параметрите и тук са същите като във функцията
Сериална дата ( година, месец, ден)
Връща променлива от подтип, която съответства на посочената година (параметър), месец (параметър) и ден (параметър )
Връща променлива от подтип, която съответства на датата, посочена от параметъра на символа
Извлича номера на часа от датата или часа, посочени от параметъра. Връща цяло число от 0 до 23
Връща, ако параметърът посочва валидна дата, в противен случай
Извлича броя на минутите от датата или часа, посочени от параметъра ... Връща цяло число от 0 до 59
Извлича номера на месеца от датата, посочена от параметъра. Връща цяло число от 1 до 12
Име на месец ( месец [, съкращение])
Връща името на месеца с число ... Ако булев параметър е равно, тогава името на месеца се представя като съкращение, в противен случай - изцяло
Връща текущата дата и час във формата, съответстваща на регионалните настройки на Windows
Връща текущото системно време
Връща броя на секундите от полунощ
TimeSerial ( час, минута, секунда)
Връща променлива от подтип, която съответства на посочения час (параметър), минута (параметър) и секунда (параметър)
Връща променлива от подтип, която съответства на времето, определено от параметъра на символа
Делничен ден (дата [, първи ден от седмицата])
Връща цяло число - деня от седмицата за датата, посочена от параметъра. Параметър е константа, показваща кой ден от седмицата трябва да се разглежда първи
Име на деня на седмицата ( делничен ден [, abbr [, първи ден от седмицата]])
Връща името на деня от седмицата с пореден номер ... Ако булев параметър е равно, тогава името на деня от седмицата се представя като съкращение, в противен случай - изцяло. Стойност на параметъра тук е същото като във функцията
Извлича годината от датата, посочена от параметъра и връща това цяло число

скрипт на оператор за синтактично програмиране

VBScript предоставя два типа процедури: процедури (подпрограми) - ключовата дума Sub и функции (функции) - обозначени с ключовата дума Function. Единствената разлика е, че функциите връщат някаква стойност. И в двата случая процедурите са блок от код. Дефиницията на процедура или функция трябва да завършва с ключовите думи End Sub или End Function Извикване на процедура или функция: Call procedure_name, думата Call може да бъде пропусната. Параметрите могат да се предават на процедура чрез препратка или по стойност. По препратка - стойността на оригиналната променлива се променя, по стойност - се създава копие, а стойността на оригиналната променлива не се променя. По подразбиране във VBScript параметърът се предава чрез препратка (ByRef). Ако трябва да предадете по стойност, можете да използвате ключовата дума ByVal: Функция име_на_функция (ByVal име на променлива)

Вградени VBScript функции

  • 1. Функции за конвертиране и проверка на типове данни на VBScript (C-преобразуване, I-Is (тип)):
    • * CBool ​​() - преобразува променливата в булев тип;
    • * CByte () - преобразува променливата в тип Byte;
    • * CCur () - преобразува променливата в тип валута;
    • * CDate () - преобразува променливата в типа Дата;
    • * CDbl () - преобразува променливата в тип Double;
    • * CInt () - преобразува променливата в тип Integer;
    • * CLng () - преобразува променливата в тип Long;
    • * CSng () - преобразува променливата в тип Single;
    • * CStr () - преобразува променливата в типа String;
    • * TypeName () - който връща името на използвания тип данни;
    • * IsNumeric ();
    • * IsDate ();
    • * IsArray ();
    • * Празно е ();
    • * IsError ();
    • * Липсва ();
    • * IsNull ();
    • * IsObject ();
    • * Hex () - конвертиране на десетични данни в низово представяне на шестнадесетични стойности;
    • * Окт () - Преобразувайте десетичните данни в низово представяне на осмични стойности.
  • 2. Функции на низ във VBScript:
    • * Asc () - връща цифровия код на знака;
    • * AscB () - връща първия байт от цифровия символен код;
    • * AscW () - връща кода за символ в unicode формат;
    • * Chr (), ChrB (), ChrW () - връща символ по код;
    • * InStr () - ви позволява да намерите последователност от знаци в тялото на низова променлива и да върнете нейната позиция. Търсенето се извършва от началото на реда. Ако не се намери нищо, се връща 0;
    • * InStrRev () - изпълнява същото като InStr (), но търсенето се извършва от края на реда;
    • * Ляво () - позволява ви да вземете определен брой знаци от низова последователност, като се брои отляво;
    • * Right () - позволява да вземете определения брой знаци от низовата последователност, като се брои отдясно;
    • * Mid () - позволява ви да вземете определен брой знаци от низова последователност, като се брои от определена позиция;
    • * Len () - връща дължината на низа;
    • * LCase () - преобразува низ в малки букви;
    • * UCase () - преобразува низа в главни букви;
    • * LTrim () - премахва интервали в началото на ред;
    • * RTrim () - премахва интервали в края на ред;
    • * Trim () - премахва интервали в началото и края на ред;
    • * Replace () - замества подниз с друг;
    • * Space () - връща низ с определена дължина от интервали;
    • * String () - връща низ с определена дължина от знаци;
    • * StrComp () - сравнява два низа;
    • * StrConv () - преобразува низ;
    • * StrReverse () - "обръща" последователността от знаци в низ в обратен ред;
    • * Раздел (). - показване на посочения брой табулаторни знаци (подобно на вградената константа vbTab);
  • 3. Числови функции във VBScript:
    • * Abs () - връща модула на число;
    • * Int () - връща най-близкото цяло число;
    • * Fix () - изхвърля дробната част;
    • * Round () - закръгля до посочения брой десетични знаци;
    • * Rnd () и командата Randomize се използват за получаване на произволни стойности. Синтаксис: random_number = Int (минимум + (Rnd () * максимум)). Преди да използвате Rnd (), трябва да инициализирате генератора на произволни числа с командата Randomize;
    • * Sgn () - връща информация за знака на число. Връща -1 за отрицателно, +1 за положително и 0 за 0.
  • 4. Функции за дата и време във VBScript:
    • * Дата () - връща системната дата;
    • * Time () - връща системното време;
    • * Сега () - връща дата и час. Можете да ги зададете с едноименните оператори, например: Дата = # 6/10/2009 # (# Месец / ден / година #);
    • * DateAdd () - Добавя определения брой години, месеци и т.н. към датата;
    • * DateDiff () - връща разликата между датите в единици от години до секунди;
    • * DatePart () - връща посочената част от датата (година, месец, ден от седмицата и т.н.);
    • * DateSerial () - Създава стойност за дата въз основа на предадените символни стойности. Функцията DateValue () прави същото, но с различен формат за получените стойности. TimeSerial () и TimeValue () работят по подобен начин (за време);
    • * Day () - връща деня (подобно на съответния DatePart ());
    • * Година () - връща годината;
    • * Месец () - връща месеца;
    • * Weekday () - връща деня от седмицата;
    • * Hour () - връща часа;
    • * Минута () - връща минути;
    • * Second () - връща секунди;
    • * MonthName () - връща името на месеца;
    • * Таймер () - Връща броя на секундите, изминали от полунощ.
  • 5. Функции за форматиране във VBScript:
    • * Формат () - Синтаксис на форматиране (израз, "формат"), например: Формат (2.505, "#, ## 0.00"). По същия начин за останалите функции;
    • * FormatNumber ();
    • * FormatCurrency ();
    • * FormatDateTime ();
  • 6. Функции за работа с масиви във VBScript:
    • * Масив () - позволява автоматично да създадете масив с необходимия размер и тип и незабавно да заредите предадените стойности в него;
    • * Filter () - ви позволява да получите друг на базата на един масив, филтриране на елементите, от които се нуждаем в оригиналния масив;
    • * LBound () - връща информация за долната граница на масива (номера на първата стойност в масива);
    • * UBound () - връща информация за горната граница на масива (номера на последната стойност в масива)
    • * Join () - обединява множество низове, които съставляват масив, в една низова променлива. Разделителят по подразбиране е интервал, но можете да посочите и свой собствен разделител;
    • * Разделяне () е обратното на Join ().
  • 7. Функции за взаимодействие с потребителя във VBScript:
    • * MsgBox (), константи +
    • * InputBox ().

Пример с използване на MsgBox

Отговор = MsgBox („Щракнете върху бутона“, vbYesNo)

Ако отговор = vbYes Тогава

"ако сте щракнали върху бутона Да

„ако сте натиснали бутона No

Методът WshShell.Popup () и командата Beep също се използват за взаимодействие с потребителя.