Microsoft VBScript (Visual Basic Script) è un linguaggio di scripting generico, leggero e attivo sviluppato da Microsoft modellato su Visual Basic. Al giorno d'oggi, VBScript è il linguaggio di scripting principale per Quick Test Professional (QTP), che è uno strumento di automazione dei test.

Di seguito sono riportati i vantaggi di VBScript:

  • VBScript è un linguaggio di scripting leggero, dotato di un interprete velocissimo.

  • VBScript, per la maggior parte, non fa distinzione tra maiuscole e minuscole. Ha una sintassi molto semplice, facile da imparare e da implementare.

  • A differenza di C ++ o Java, VBScript è un linguaggio di scripting basato su oggetti e NON un linguaggio di programmazione orientato agli oggetti.

  • Utilizza Component Object Model (COM) per accedere agli elementi dell'ambiente in cui è in esecuzione.

  • L'esecuzione corretta di VBScript può avvenire solo se viene eseguita in un ambiente host come Internet Explorer (IE), Internet Information Services (IIS) e Windows Scripting Host (WSH).

Di seguito sono riportati gli svantaggi di VBScript:

  • VBscript viene utilizzato solo dai browser IE. Altri browser come Chrome, Firefox DONOT supportano VBScript. Quindi, JavaScript è preferito a VBScript.

  • VBScript ha un supporto della riga di comando limitato.

  • Poiché non è disponibile un ambiente di sviluppo per impostazione predefinita, il debug è difficile.

No! VBScript è un linguaggio senza distinzione tra maiuscole e minuscole. Ciò significa che le parole chiave della lingua, le variabili, i nomi delle funzioni e qualsiasi altro identificatore NON devono essere digitati con lettere maiuscole.

Quindi gli identificatori int_counter, INT_Counter e INT_COUNTER hanno lo stesso significato all'interno di VBScript.

La variabile è una posizione di memoria denominata utilizzata per contenere un valore che può essere modificato durante l'esecuzione dello script. VBScript ha solo UN tipo di dati fondamentale, Variant.

Regole per la dichiarazione delle variabili -

  • Il nome della variabile deve iniziare con un alfabeto.

  • I nomi delle variabili non possono superare i 255 caratteri.

  • Le variabili NON devono contenere un punto (.)

  • I nomi delle variabili dovrebbero essere univoci nel contesto dichiarato.

Le variabili vengono dichiarate utilizzando la parola chiave "dim".

No! Poiché esiste un solo tipo di dati fondamentale, tutte le variabili dichiarate sono varianti per impostazione predefinita. Quindi, un utente NON BISOGNA menzionare il tipo di dati durante la dichiarazione.

I valori numerici devono essere assegnati senza virgolette doppie.

I valori String devono essere racchiusi tra virgolette doppie (").

Le variabili di data e ora devono essere racchiuse all'interno del simbolo cancelletto (#).

Di seguito sono riportati gli ambiti della variabile in VBScript:

  • Dim

  • Public

  • Private

Le variabili dichiarate utilizzando la parola chiave "Dim" a livello di procedura sono disponibili solo all'interno della stessa procedura. Le variabili dichiarate utilizzando la parola chiave "Dim" a livello di script sono disponibili per tutte le procedure all'interno dello stesso script.

Le variabili dichiarate utilizzando la parola chiave "pubblica" sono disponibili per tutte le procedure in tutti gli script associati. Quando si dichiara una variabile di tipo "public", la parola chiave Dim viene sostituita da "Public".

Le variabili dichiarate come "Private" hanno ambito solo all'interno dello script in cui sono dichiarate. Quando si dichiara una variabile di tipo "Private", la parola chiave Dim viene sostituita da "Private".

Le costanti vengono dichiarate utilizzando la parola chiave "const".

Le costanti Public sono disponibili per tutti gli script e le procedure.

Le costanti private sono disponibili all'interno della procedura o della classe.

Il linguaggio VBScript supporta i seguenti tipi di operatori:

  • Operatori aritmetici

  • Operatori di confronto

  • Operatori logici (o relazionali)

  • Operatori di concatenazione

L'opeatore MOD viene utilizzato per ottenere il modulo di due numeri.

Esempio -

Dim a : a = 5
Dim b : b = 10
Dim c
c = b MOD a
Document.write ("Modulus Result is " &c)

^ opeator viene utilizzato per ottenere l'esponente di due numeri.

Esempio -

Dim a : a = 5
Dim b : b = 10
Dim c
c = b ^ a
Document.write ("Exponentiation Result is " &c)

L'operatore <> viene utilizzato per verificare se due numeri sono uguali o meno.

Esempio -

Dim a : a = 5
Dim b : b = 10
Dim c
c = b <> a
Document.write ("Equality Check is " &c)

XOR Chiamato operatore di esclusione logica. Viene utilizzato per eseguire un'operazione XOR.

Esempio -

A. Dim a : a = 5
Dim b : b = 10
Dim c
c = b XOR a
Document.write ("XOR Check is " &c)

L'operatore + aggiunge due valori poiché i valori delle variabili sono numerici. Quindi A + B darà 15.

L'operatore + concatena due valori se i valori sono stringa. Quindi A + B darà VBScript.

L'operatore & concatena due valori. Quindi A + B darà 510.

L'operatore & concatena due valori. Quindi A & B darà VBScript.

VBScript può anche manipolare i cookie utilizzando la proprietà cookie dell'oggetto Document. JavaScript può leggere, creare, modificare ed eliminare il cookie oi cookie che si applicano alla pagina Web corrente.

Il modo più semplice per creare un cookie è assegnare un valore stringa all'oggetto document.cookie, che assomiglia a questo:

Sintassi -

document.cookie = "key1 = value1; key2 = value2; expires = date";

L'attributo qui scade è facoltativo. Se fornisci a questo attributo una data o un'ora valide, il cookie scadrà alla data o all'ora specificate e dopo tale data il valore del cookie non sarà accessibile.

Leggere un cookie è semplice come scriverne uno, perché il valore dell'oggetto document.cookie è il cookie. Quindi puoi usare questa stringa ogni volta che vuoi accedere al cookie.

La stringa document.cookie manterrà un elenco di coppie nome = valore separate da punto e virgola, dove nome è il nome di un cookie e valore è il suo valore stringa.

È possibile utilizzare la funzione split () delle stringhe per suddividere la stringa in chiave e valori.

A volte potresti voler eliminare un cookie in modo che i successivi tentativi di leggere il cookie non restituiscano nulla. Per fare ciò, è sufficiente impostare la data di scadenza su un tempo nel passato.

Utilizzando la funzione CDbl, che converte un dato numero di qualsiasi sottotipo variante in doppio.

Esempio -

x = 123
y = 123.882
document.write("x value after converting to double - " & CDbl(x) & "<br />")

Utilizzando la funzione CInt, che converte un dato numero di qualsiasi sottotipo di variante in Intero.

Esempio -

x = 123
y = 123.882
document.write("y value after converting to Int - " & CInt(y) & "<br />")

Utilizzando la funzione CLng, che converte un dato numero di qualsiasi sottotipo di variante in Long.

Esempio -

x = 123
y = 123.882
document.write("x value after converting to Long -" & CLng(x) & "<br />")

Utilizzando la funzione CSng, che converte un dato numero di qualsiasi sottotipo di variante in Single.

Esempio -

x = 123
y = 123.882
document.write("x value after converting to Single -" & CSng(x) & "<br />")

Utilizzando la funzione esadecimale, che converte un dato numero di qualsiasi sottotipo variante in esadecimale.

Esempio -

x = 123
y = 123.882
document.write("y value after converting to Hex -" & Hex(y) & "<br />")

Utilizzando la funzione FormatNumber, che restituirebbe un'espressione formattata come numero.

Esempio -

Dim num : num = -645.998651
document.write(FormatNumber(num, 3))& "<br/>"     '-645.999

Utilizzando la funzione FormatPercent, che restituirebbe un'espressione formattata come percentuale.

Esempio -

Dim num : num = -645.998651
document.write(FormatPercent(num, 2))& "<br/>"    '-64,599.86%

Utilizzando la funzione Int, che restituisce la parte intera del numero specificato.

Esempio -

Dim num : num = -645.998651
document.write("int Result of num is : " & int(num))& "<br/>"  '-646

Utilizzando la funzione Log, che restituisce il logaritmo naturale del numero specificato.

Esempio -

Dim num : num = 210
document.write("Log Result of num2 is : " & Log(num2))& "<br/>" '5.34710753071747

Utilizzando la funzione Oct, che restituisce il valore ottale del numero specificato.

Esempio -

Dim num : num = -645.998651
document.write("Oct Result of num is : " & Oct(num))& "<br/>" '37777776572

Utilizzando la funzione Hex, che restituisce il valore esadecimale del numero specificato.

Esempio -

Dim num : num = -645.998651
document.write("Hex Result of num is : " & Hex(num))& "<br/>" 'FFFFFD7A

Utilizzando la funzione Rnd, che restituisce un numero casuale compreso tra 0 e 1.

Esempio -

Dim num : num = -645.998651
document.write("Rnd Result of num is : " & Rnd(num))& "<br/>" '0.5130115

Utilizzando la funzione Sqr, che restituisce la radice quadrata del numero specificato.

Esempio -

Dim num : num = -210
document.write("Sqr Result of num is : " & Sqr(num))& "<br/>" '14.4913767461894

Utilizzando la funzione Abs, che restituisce il valore assoluto del numero specificato.

Esempio -

Dim num : num = -645.998651
document.write("Abs Result of num is : " & Abs(num))& "<br/>" '645.998651

Utilizzando la funzione Exp, che restituisce il valore di e elevato al numero specificato.

Esempio -

Dim num : num = -645.998651
document.write("Exp Result of num is : " & Exp(num))& "<br/>" '2.79479883633128E-281

Utilizzo della funzione InStr, che restituisce la prima occorrenza di una stringa all'interno di un'altra stringa. La ricerca avviene da sinistra a destra.

Utilizzando la funzione InStrRev, che restituisce la prima occorrenza di una stringa all'interno di un'altra stringa. La ricerca avviene da destra a sinistra.

Utilizzando la funzione Lcase, che restituisce le lettere minuscole della stringa specificata.

Utilizzando la funzione Ucase, che restituisce le maiuscole della stringa specificata.

Utilizzando la funzione Ltrim, che restituisce una stringa dopo aver rimosso gli spazi sul lato sinistro della stringa specificata.

Utilizzando la funzione Rtrim, che restituisce una stringa dopo aver rimosso gli spazi sul lato sinistro della stringa specificata.

Utilizzo della funzione Trim, che restituisce un valore stringa dopo aver rimosso gli spazi vuoti iniziali e finali.

Utilizzando la funzione Len, che restituisce la lunghezza della stringa data.

Utilizzando la funzione Sostituisci, che restituisce una stringa dopo aver sostituito una stringa con un'altra stringa.

Utilizzo della funzione Space, che riempie una stringa con il numero di spazi specificato.

Utilizzando la funzione StrComp, che restituisce un valore intero dopo aver confrontato le due stringhe specificate.

La funzione StrComp restituisce un valore intero dopo aver confrontato le due stringhe date. Può restituire uno qualsiasi dei tre valori -1, 0 o 1 in base alle stringhe di input da confrontare.

  • Se String 1 <String 2, StrComp restituisce -1

  • Se String 1 = String 2, StrComp restituisce 0

  • Se String 1> String 2, StrComp restituisce 1

Utilizzando la funzione String, che restituisce una stringa con un carattere specificato il numero di volte specificato.

Utilizzando la funzione StrReverse, whihc restituisce una stringa dopo aver invertito la sequenza dei caratteri della stringa data.

rray vengono dichiarati nello stesso modo in cui è stata dichiarata una variabile, tranne per il fatto che la dichiarazione di una variabile array utilizza le parentesi. Nell'esempio seguente, la dimensione dell'array è menzionata tra parentesi.

Esempio -

'Method 1 : Using Dim
Dim arr1() 'Without Size
'Method 2 : Mentioning the Size
Dim arr2(5)  'Declared with size of 5
'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")

I valori vengono assegnati all'array specificando il valore dell'indice dell'array rispetto a ciascuno dei valori da assegnare.

Esempio -

Dim arr(5)
arr(0) = "VBScript"    'String
document.write("Value stored in Array index 0 : " & arr(0) & "<br />")

Utilizzando l'istruzione ReDim, possiamo dichiarare variabili di matrice dinamica e allocare o riallocare lo spazio di archiviazione.

Utilizzando la funzione LBound, che restituisce un numero intero che corrisponde al più piccolo indice degli array dati.

Utilizzo della funzione UBound, che restituisce un numero intero che corrisponde al pedice più grande degli array dati.

Utilizzo della funzione Split, che restituisce un array che contiene un numero specificato di valori. Diviso in base a un delimitatore.

Utilizzando la funzione Join, che restituisce una stringa che contiene un numero specificato di sottostringhe in una matrice. Questa è una funzione esattamente opposta del metodo Split.

Utilizzando la funzione Filtro, restituisce una matrice in base zero che contiene un sottoinsieme di una matrice di stringhe in base a criteri di filtro specifici.

Utilizzando la funzione IsArray, che restituisce un valore booleano che indica se la variabile di input è o meno un array.

Utilizzando la funzione di cancellazione, che recupera la memoria allocata per le variabili dell'array.

Il modo più comune per definire una funzione in VBScript è utilizzare la parola chiave Function, seguita da un nome di funzione univoco e può o meno contenere un elenco di parametri e un'istruzione con una parola chiave End Function, che indica la fine della funzione .

Per richiamare una funzione in un punto successivo dello script, è necessario semplicemente scrivere il nome di quella funzione con la parola chiave Call.

Per restituire un valore da una funzione, è sufficiente assegnare il valore al nome della funzione stessa.

Sì! Una funzione può restituire più valori separati da virgola come un array assegnato al nome della funzione stessa.

Le procedure secondarie sono simili alle funzioni ma ci sono poche differenze.

  • Sottoprocedure DONOT Restituisce un valore mentre le funzioni possono o meno restituire un valore.

  • Procedure secondarie Possono essere chiamate senza parola chiave di chiamata.

  • Le procedure Sub sono sempre racchiuse nelle istruzioni Sub e End Sub.

Se viene specificato ByVal, gli argomenti vengono inviati come per valore quando viene chiamata la funzione o la procedura.

Se viene specificato ByRef, gli argomenti vengono inviati come riferimento quando viene chiamata la funzione o la procedura.

dobbiamo dichiarare l'oggetto e istanziarlo usando Set Keyword.

Esempio -

Dim obj  
Set obj = CreateObject("Scripting.Dictionary")

Per distruggere gli oggetti, dobbiamo usare Set Keyword seguito dal nome dell'oggetto e puntarlo su Nothing.

Esempio -

Dim obj  
Set obj = CreateObject("Scripting.Dictionary")
Set obj = Nothing

La classe è un costrutto utilizzato per definire un tipo univoco. Come la programmazione orientata agli oggetti, VbScript 5.0 supporta la creazione di classi ed è molto simile alla scrittura di oggetti COM con VB.

La classe è semplicemente il modello per un oggetto e noi istanziamo un oggetto per accedere alle proprietà e ai metodi di esso. Le classi possono contenere variabili, proprietà, metodi o eventi.

Le classi VBScript sono racchiuse in Class .... End Class

'Defining the Class
Class classname    'Declare the object name
...
End Class
' Instantiation of the Class
Set objectname = new classname

Le classi possono contenere variabili, che possono essere private o pubbliche. Le variabili all'interno delle classi dovrebbero seguire le convenzioni di denominazione di VBScript. Per impostazione predefinita, le variabili nella classe sono pubbliche. Ecco perché è possibile accedervi al di fuori della classe.

Esempio -

Dim var1 , var2.
Private var1 , var2.
Public var1 , var2.

Proprietà della classe, come Property Let, che gestisce il processo di convalida dei dati e l'assegnazione del nuovo valore alla variabile privata. Insieme di proprietà, che assegna il nuovo valore della proprietà alla variabile dell'oggetto privato.

Le proprietà di sola lettura hanno solo una procedura Property Get mentre le proprietà di sola scrittura (che sono rare) hanno solo una procedura Property Let o Property Set.

Esempio -

Class Comp
   
   Private modStrType
   Private OS
 
   Public Property Let ComputerType(strType)
      modStrType = strType
   End Property
 
   Public Property Get ComputerType()
      ComputerType = modStrType
   End Property
 
   Public Property Set OperatingSystem(oObj)
      Set OS = oObj
   End Property
 
   Public Property Get OperatingSystem()
      Set OperatingSystem = OS
   End Property
 
End Class

I metodi consentono alla classe di eseguire l'operazione desiderata dallo sviluppatore. I metodi non sono altro che funzioni o subroutine.

Esempio -

Class Car
   
   Private Model
   Private Year
 
   Public Start()
      Fuel = 2.45
   Pressure =  4.15
   End Function
 
End Class

Ci sono due eventi che vengono associati automaticamente a ogni classe per impostazione predefinita. Class_Initialize e Class_Terminate.

Class_Initialize viene attivato ogni volta che si crea un'istanza di un oggetto in base alla classe. L'evento Class_Terminate viene generato quando l'oggetto esce dall'ambito o quando l'oggetto è impostato su Nothing.

Esempio -

Nell'esempio seguente, ti faremo capire come funzionano gli eventi in VBScript.

'Instantation of the Object
Set objectname = New classname 
   
Private Sub Class_Initialize(  )
 Initalization code goes here
End Sub
'When Object is Set to Nothing
Private Sub Class_Terminate(  )
 Termination code goes here
End Sub

Questa classe fornisce oggetti del file system che aiutano gli sviluppatori a lavorare con unità, cartelle e file.

Esempio -

Dim oFS, drive
Set oFS = CreateObject("Scripting.FileSystemObject")
Set drive = oFS.GetDrive(oFS.GetDriveName("C:\"))
Document.write drive.VolumeName

Drive contiene metodi e proprietà che consentono di raccogliere informazioni su un'unità collegata al sistema.

File contiene metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare un file.

File fornisce un elenco di tutti i file contenuti in una cartella.

Folder fornisce metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare cartelle.

Cartelle fornisce un elenco di tutte le cartelle all'interno di una cartella.

TextStream consente agli sviluppatori di leggere e scrivere file di testo.

L'oggetto RegExp aiuta gli sviluppatori ad abbinare il modello di stringhe e le proprietà e i metodi ci aiutano a lavorare facilmente con le espressioni regolari.

Di seguito sono riportate le proprietà dell'oggetto RegExp:

  • Pattern − Il metodo Pattern rappresenta una stringa utilizzata per definire l'espressione regolare e deve essere impostato prima di utilizzare l'oggetto espressione regolare.

  • IgnoreCase −Una proprietà booleana che rappresenta se l'espressione regolare deve essere testata rispetto a tutte le possibili corrispondenze in una stringa se vera o falsa. Se non specificato in modo esplicito, il valore IgnoreCase è impostato su False.

  • Global −Una proprietà booleana che rappresenta se l'espressione regolare deve essere verificata rispetto a tutte le possibili corrispondenze in una stringa. Se non specificato in modo esplicito, il valore globale è impostato su False.

Il metodo Test accetta una stringa come argomento e restituisce True se l'espressione regolare può essere confrontata correttamente con la stringa, altrimenti viene restituito False.

Il metodo di sostituzione accetta 2 parametri. Se la ricerca ha esito positivo, sostituisce quella corrispondenza con la stringa di sostituzione e viene restituita la nuova stringa. Se non ci sono corrispondenze, viene restituita la stringa di ricerca originale.

Il metodo Execute funziona come Replace, tranne per il fatto che restituisce un oggetto di raccolta Matches, contenente un oggetto Match per ogni corrispondenza riuscita. Non modifica la stringa originale.

Se vogliamo catturare l'errore, viene utilizzato Err Object.

Usa Err.Raise per generare un errore.

Esempio -

Err.Raise 6   ' Raise an overflow error.

Err.Number fornisce il numero di errore e Err.Description fornisce la descrizione dell'errore.

Esempio -

Err.Raise 6   ' Raise an overflow error.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description

Err.Cancella azzera un errore.

Esempio -

Err.Raise 6   ' Raise an overflow error.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear   ' Clear the error.