For any corporate training requirements Please mail To sudhakar@qtpsudhakar.com
New Schedule in MindQ Systems, Madhapur By SUDHAKAR
Course Name Date Time Duration Type Branch
UFT + UFTPro 20th September 2017 7.30 AM - 9.00 AM IST 25Days Classroom + Online Hitech City
Selenium+Appium 4th October 2017 4.30 PM - 6.00 PM IST 40Days Online -

A book "Cracking the QTP interview" authored by Sudhakar.Read More. Buy From FlipKart

Wednesday, June 24, 2009

VBScript Basics

Data types in VB Script

VBScript has only one data type called a Variant. A Variant is a special kind of data type that can contain different kinds of information, depending on how it is used. 
If you use a variable for assigning a numeric value, that variable behaves like a numeric data type. If you assign string value, that variable behaves like a string.

However VBSCRIPT is having sub data types in Variant.

1. Empty
2. Null
3. Boolean
4. Byte
5. Integer
6. Currency
7. Long
8. Single
9. Double
10. Date (Time)
11. String
12. Object
13. Error.

We can use conversion functions to convert data from one subdatatype to another type. To find subdatatype of a variant we need to use 
vartype function.

A variable is a convenient placeholder to store program information. You can change variable value in script running time. In VBScript variables are always of one fundamental data type Variant.
Use of variables in script:
Variable is very useful for carrying a value. For example if your script is using a value 10 in five places (3rd, 7th, 12th, 17th, 20th lines). Suppose if that value is changed from 10 to 20 then you need to change that value in all the places where ever it is used. But if you have used variable in place of value (x=10) you need to change in only one place if that value is changed from 10 to 20(x=20).  Variables are having flexibility to change value in run time.
Declaring Variables:
Because of vbscript is having only one data type no need to declare any variable in the script. By default all variables are comes under variant datatype. But it is not the good practice because you could misspell the variable name in one or more places, causing unexpected results when your script is run.
For that reason, the Option Explicit statement is available to require explicit declaration of all variables. Option Explicit statement will enforce you to declare all the variables.
We can declare the variables using Dim statement.
Ex:       Dim x
            X=10   'Normal Declaration

Optional Explicit
Dim x
X=10   'When working with optional explicit
Naming Restrictions to Variables:
Variable names follow the standard rules for naming anything in VBScript. 
A variable name:
  • Must begin with an alphabetic character.
  • Cannot contain an embedded period.
  • Must not exceed 255 characters.
  • Must be unique in the scope in which it is declared.
scope of a Variable:
If you declare a variable with in a Function then it is local to that function only. You can access that variable only with in that function. Now It has local scope and is a procedure-level variable.
If you declare a variable with in a Script then it can be used by entire script and can be accessed by all functions. Now It has local scope and is a procedure-level variable. This is a script-level variable, and it has script-level scope.

Array Variables

a variable containing a single value is a scalar variable. you can create a variable that can contain a series of values using an index number. This is called an array variable. Arrays are useful when you're storing sets of similar data.You can store any kind of data in an array. The array can hold a combination of data types.
Creating Arrays:
Using Dim Statement we can create an array. we can convert a variable in to an array using array function.
Types of Arrays:
1. Fixed Length Arrays
2. Dynamic Arrays
Fixed arrays have a specific number of elements in them, whereas dynamic arrays can vary in the number of elements depending on how many are stored in the array.
Creating Fixed Length Arrays:
Dim a(10)
Here 'a' is an array and is having 11 elements (Array count starts from 0). Here it's a fixed size array with size 10.
Creating Dynamic Arrays:
A dynamic array is created in the same way as a fixed array, but you don't put any bounds in the declaration.
Dim x()
Here 'x' is the dynamic array and we can store n number of elements in it. The benefit of a dynamic array is that if you don't know how large the array will be when you write the code, you can create code that sets or changes the size while the VBScript code is running.
We can store more values in dynamic array by redeclaring the array using Redim statement.
ReDim Statement:
Using Redim we can redeclare an array size. ReDim tells VBScript to "re-dimension" the array for how many elements you specify. If you use redim statement in your script it will clear all existing data which is stored in that array and declares that array as fresh array.
Redim with Preserve Keyword:
When your working redim it will clear all the existing data in an array. The preserve keyword is useful to overcome this problem. Preserve keyword will preserve the existing data and resize the array with the specified size.
Ex: Redim preserve a(20)
Using Fixed arrays:
Dim x(2)
for i=lbound(x) to ubound (x)
msgbox x(i)
Here we cann't store more than 3 elements. Because this is a fixed length array..
Using Dynamic Arrays:
Dim x()
Redim preserve x(2)
Redim preserve x(3)
Here 'x' is a dynamic array and by redeclaring x it can able to store more values into it.

Converting a variable into an array:
We can convert a variable in to array variable using array function. 
Dim v
for i=lbound(v) to ubound (v)
msgbox v(i)
Here 'v' is a dynamic array. We can store some more elements by redeclaring the array.

A constant is a meaningful name that takes the place of a number or string and never changes. The difference between variable and constant is we can change the variable value in run time but for constants its not possible.
Creating constants:
const str="QTP"
here str is a constant and the value will never change.
We have public and Private constants. By default all are public. If you want specify the type then
Public const str="QTP"
Private const str="QTP"

VB Script Procedures
There are two types of procedures
1. Function Procedure
2. Sub Procedure
Function Procedure
A Function procedure is a series of VBScript statements enclosed by the Function and End Function statements. Function Procedure can able to return the value.
Function demo_add(a,b)
End Function
msgbox oVal    'Returns 5
In this example demo_add function returns a value to oVal. In Function procedures we can use function name to assign a value.
Sub Procedure
A Sub procedure is a series of VBScript statements enclosed by the Sub and End Sub statements. Sub Procedure cannot return any value.
Sub demo_sub(a,b,c)
End sub
demo_sub 2,3,x
msgbox x    'Returns 5
This example will do the same as what function procedure is doing above. But in sub Procedure we need to use one more parameter to get values from the sub procedure.Types of arguments in procedures
1. ByVal
2. ByRef
Indicates that the argument is passed by value. 
ByRef :
Indicates that the argument is passed by reference. 
By default all arguments are 'ByRef'.
Function demo_add(a,b)
End Function
Here a,b are the arguments. By default these are 'ByRef'.
In simple words ByRef Means the value which is assigned to the variable with in the function is permanent and we can use that value out side of that function also.
ByVal means the value which is assigned to the variable with in the function is temporary and we can use that value only with in that function.
Function demo_parameters(byref x,byval y)
End Function
msgbox demo_parameters(a,b)
msgbox a
msgbox b

In the above function x and y are the arguments, declared as byref and byval.
With in that function i assigned values to x and y.
Outside of the function i assigned values to two variables and passing those variables in to the function.
'a' is passing reference to x and b is passing value to y.
With in that function i am changing the value for x. This value is permanent for 'a'. Because 'a' is passed as 'ByRef'.
But the value of 'b' will not be changed because it is passed as 'ByVal'.

Please send your Suggestions and Doubts to my yahoo group http://in.groups.yahoo.com/group/qtpsudhakar

No comments :

Post a Comment