Title: VBScript
1VBScript
2What we learn last session?
- VBScript string manipulation.
- VBScript string math.
- VBScript date manipulation.
- VBScript Formatting Strings.
3Subjects for session 11
- The OOP model.
- Objects.
- COM objects.
- Set statement.
- Nothing keyword
- CreateObject function.
- New keyword.
- FileSystem object.
4OOP Model
- Abstractions
- Encapsulation
- Polymorphism
- Inheritance
- Reusabillity
5OOP ModelAbstractions
- The ability for a program to ignore some aspects
of the information it's manipulating, i.e. the
ability to focus on the essential. - An abstract class cannot be instantiated.
- An abstract class may contain abstract methods
and accessors. - An abstract class can be partially implemented,
or not at all implemented. - Abstract classes are useful when creating
components because they allow you specify an
invariant level of functionality in some methods,
but leave the implementation of other methods
until a specific implementation of that class is
needed.
6OOP ModelEncapsulation
- The ability for the program to hide information
about the implementation of a module from its
users, i.e. the ability to prevent users from
breaking the invariants of the program. - The term encapsulation refer to Information
hiding in software.
7OOP ModelPolymorphism
- Polymorphism is the ability for classes to
provide different implementations of methods that
are called by the same name. - Polymorphism allows a method of a class to be
called without regard to what specific
implementation it provides.
8OOP ModelPolymorphism
- You might have a class named Road which calls the
Drive method of an additional class. - This Car class may be SportsCar, or SmallCar, but
both would provide the Drive method. - Though the implementation of the Drive method
would be different between the classes, the Road
class would still be able to call it, and it
would provide results that would be usable and
interpretable by the Road class.
9OOP ModelInheritance
- Defining classes as extensions of existing
classes. - In computer science, the term inheritance may be
applied to a variety of situations in which
certain characteristics are passed on from one
context to another. - The term originates with the biological concept
of a parent passing on certain traits to a child
10Shape
Dimensions Flanks
Area
Perimeter
Circle
Radious pi
Rectangle
Triangle
Height Width
angles
3D
depth
11OOP ModelReusabillity
- reusability is the likelihood a segment of
structured code can be used again to add new
functionalities with slight or no modification. - Reusable code reduces implementation time,
increases the likelihood that prior testing and
use has eliminated bugs and localizes code
modifications when a change in implementation is
required. - Subroutines or functions are the simplest form of
reuse. - A chunk of code is regularly organized using
module or namespace. - Proponents claim that objects and software
components offer a more advanced form of
reusability.
12Object Model
- Object.
- Collection.
- Container object.
- Method.
- Event.
- Property.
- Attribute.
13Object Model Objects
- In computer science , an object is a data
structure (incorporating data and methods) whose
instance is unique and separate from other
objects, although it can "communicate" with other
objects. - In some occasions, some object can be conceived
of as a sub program which can communicate with
others by receiving or giving instructions based
on its, or the other's, data or methods. Data can
consist of numbers, literal strings , variables,
and references. - the object lifetime (or life cycle) of an object
in OOP is the time between an object's creation
(also known as instantiation or construction)
till the object is no longer used, and is
destructed or freed.
14Object Model Collection
- An object that contains zero or more objects
(member). - Collections normally contain objects of the same
class. - Also referred to as a collection object or an
object collection. - Collection has normally two single read-only
properties, Item and Count - you usually use the Item property or method and
pass the name or index number of the member.
15Object Model Container Object
- An object that contains other objects from
different classes. - Collection can have properties and/or methods.
16Object ModelMethods
- Method is a function or subroutine that is
associated with a class in OPP. - Like a function in procedural languages, it may
contain a set of program statements that perform
an action, and (in most computer languages ) can
take a set of input arguments and can return some
kind of result. - The purpose of a method is to provide a mechanism
for changing or accessing information stored in
an object of the class.
17Object ModelMethods
- A method should preserve invariants associated
with the class, and should be able to assume that
every invariant is valid on entry to the method - A method can have parameters.
- method may produce output, which are constrained
by postconditions of the method. - If the arguments to a method do not satisfy
their preconditions, a method can raise an
exception
18Object Model Event
- In the context of programming, the occurrence of
some particular action or the occurrence of a
change of state that can be handled by an
application or COM object that is invoked in
response to the triggering of an event. . - For example, the arrival of a message to the SMTP
service is an event that can be handled by any
number of Applications or objects.
19Object ModelProperty
- Properties are like smart fields.
- A property is an information that is associated
with an object. - Each property has a value. value is a keyword in
the syntax for the property definition. - The variable value is assigned to the property in
the calling code. - The type of value must be the same as the
declared type of the property to which it is
assigned. - properties fall into two categories run-time
properties and persistent properties.
20Object ModelAttribute
- Each property has attributes.
- Attributes provide information about the
property. - For example, the First Name property has the
following attributes Name, Display Name,
Description, and Type. - Attributes include information such as the data
type of the profile property (for example,
number, text, decimal, or site term), and whether
the property is single-valued (for example, only
one First Name entry is allowed per user) or
multi-valued.
21COMComponent Object Model
- An architecture for defining interfaces (a set of
abstract methods and properties that encompass
some common purpose) and interaction among
objects implemented by widely varying software
applications. - All COM interfaces are extend and derived from
the IUnknown, interface which includes the
methods QueryInterface, AddRef, and Release. - COM interfaces additionally define a binary
signature that acts as a contract between the
interface designer and client applications
written to use the interface COM classes provide
concrete implementations of COM interfaces.
22COMIUnknown
- The fundamental COM interface, which must be
extended by every valid COM interface. - IUnknown exposes three methods
- QueryInterface, used to find out if the object
supports a certain interface and return the
interface if it does. - AddRef, to increment the interface reference
count. - Release, to decrement the interface reference
count.
23COMCOM Class
- An implementation of one or more COM interfaces.
- COM objects are instances of COM classes.
24COMCOM Interface
- A pointer to a vtable pointer where the first
three methods in that table are QueryInterface,
AddRef, and Release.
25COM ObjectsCOM Extensions Technologies
- COM(Component Services )
- ActiveX, OLE
- SOM, DSOM IBMs System object model
- DCOM (Distributed COM)
- Distributed COM
- CORBA Common Object Request Broker Architecture
- RMI, JavaBeans SUN Microsystems technologies.
- RPC Remote Procedure Call.
26COM objects Where they are?
- In the registry under HKEY_CLASSES_ROOT you will
se all the classes registered in your system. - You can find there the Scripting.FileSystemObject
Key, Excel.Application key etc - All those classes can be used in VBScript.
- Each class has a description, a CLSID entry and
some a version entry. - In CLSID you will find the class identifier.If
you move to HKEY_CLASSES_ROOT\CLSID you will see
wich dlls using this class. - For more information search for ltregistrationgt
Element topic in VBScript documentation.
27Set statement
- Assigns an object reference to a variable or
property, or associates a procedure reference
with an event. - To be valid, object must be an object type
consistent with the object being assigned to it. - The Dim, Private, Public, or ReDim statements
only declare a variable that refers to an object.
- No actual object is referred to until you use the
Set statement to assign a specific object. - Generally, when you use Set to assign an object
reference to a variable, no copy of the object is
created for that variable. - Instead, a reference to the object is created.
- More than one object variable can refer to the
same object. - Because these variables are references to (rather
than copies of) the object, any change in the
object is reflected in all variables that refer
to it.
28Nothing Keyword
- The Nothing keyword in VBScript is used to
disassociate an object variable from any actual
object. - Use the Set statement to assign Nothing to an
object variable. For example - Set MyObject Nothing
- Several object variables can refer to the same
actual object. - When Nothing is assigned to an object variable,
that variable no longer refers to any actual
object. - When several object variables refer to the same
object, memory and system resources associated
with the object to which the variables refer are
released only after all of them have been set to
Nothing, either explicitly using Set, or
implicitly after the last object variable set to
Nothing goes out of scope.
29CreateObject Function
- CreateObject(servername.typename , location)
- Creates and returns a reference to an Automation
object. - servername - Required. The name of the
application providing the object. - typename - Required. The type or class of the
object to create. - location - Optional. The name of the network
server where the object is to be created. - Automation servers provide at least one type of
object. - For example, a word-processing application may
provide an application object, a document object,
and a toolbar object.
30CreateObject Function
- For example, a word-processing application may
provide an application object, a document object,
and a toolbar object. - To create an Automation object, assign the object
returned by CreateObject to an object variable - Dim ExcelSheet
- Set ExcelSheet CreateObject("Excel.Sheet")
31CreateObject Function
- Once an object is created, refer to it in code
using the object variable you defined. - you can access properties and methods of the new
object using the object variable. - Creating an object on a remote server can only be
accomplished when Internet security is turned
off. - You can create an object on a remote networked
computer by passing the name of the computer to
the servername argument of CreateObject. - That name is the same as the machine name portion
of a share name. - For a network share named "\\myserver\public",
the servername is "myserver". In addition, you
can specify servername using DNS format or an IP
address.
32CreateObject FunctionSummary
- Creating an object
- Set myDoc CreateObject (Word.Document)
- Using The object
- MyDoc.content abc
- MyDoc.SaveAs Doc1.doc
- MyDoc.Close
- Free the object
- Set Mydoc Nothing
- Type COM
- Library Class
33FileSystemObject ObjectBasics
- When writing scripts it's often important to add,
move, change, create, or delete folders and
files. - It may also be necessary to get information about
and manipulate drives attached to the machine. - Scripting allows you to process drives, folders,
and files using the FileSystemObject (FSO) object
model.
34New Keyword
- Keyword used to create a new instance of a class.
- If objectvar contained a reference to an object,
that reference is released when the new one is
assigned. - The New keyword can only be used to create an
instance of a class. - Using the New keyword allows you to concurrently
create an instance of a class and assign it to an
object reference variable. - The variable to which the instance of the class
is being assigned must already have been declared
with the Dim (or equivalent) statement.
35FileSystemObejct Object Model
- The FileSystemObject (FSO) object model allows
you to use the familiar object.method syntax with
a rich set of properties, methods, and events to
process folders and files. - The FSO object model gives to the QTP the ability
to create, alter, move, and delete folders, or to
detect if particular folders exist, and if so,
where. You can also find out information about
folders, such as their names, the date they were
created or last modified, and so forth. - The FSO object model also makes it easy to
process files. When processing files, the primary
goal is to store data in a space- and
resource-efficient, easy-to-access format. - You need to be able to create files, insert and
change the data, and output (read) the data.
36FileSystemObejct Object Model
- The FSO object model, which is contained in the
Scripting type library (Scrrun.dll), supports
text file creation and manipulation through the
TextStream object. - Although it does not yet support the creation or
manipulation of binary files, future support of
binary files is planned.
37FileSystemObject ObjectsMain
- Main object.
- Contains methods and properties that allow you to
create, delete, gain information about, and
generally manipulate drives, folders, and files. - Many of the methods associated with this object
duplicate those in other FSO objects they are
provided for convenience.
38FileSystemObject ObjectsDrive Object
- Contains methods and properties that allow you to
gather information about a drive attached to the
system, such as its share name and how much room
is available. - Note that a "drive" isn't necessarily a hard
disk, but can be a CD-ROM drive, a RAM disk, and
so forth. A drive doesn't need to be physically
attached to the system it can be also be
logically connected through a network.
39FileSystemObject ObjectsDrive Collection
- Provides a list of the drives attached to the
system, either physically or logically. - The Drives collection includes all drives,
regardless of type. - Removable-media drives need not have media
inserted for them to appear in this collection.
40FileSystemObject ObjectsFile Object
- Contains methods and properties that allow you to
create, delete, or move a file. - Also allows you to query the system for a file
name, path, and various other properties.
41FileSystemObject ObjectsFiles Collection
- Provides a list of all files contained within a
folder.
42FileSystemObject ObjectsFolder Object
- Contains methods and properties that allow you to
create, delete, or move folders. - Also allows you to query the system for folder
names, paths, and various other properties.
43FileSystemObject ObjectsFolders Collection
- Provides a list of all the folders within a
Folder.
44FileSystemObject ObjectsTextStream Object
- Allows you to read and write text files.
45Programming the FileSystemObject
- Use the CreateObject method to create a
FileSystemObject object. - Use the appropriate method on the newly created
object. - Access the object's properties.
- Set objFSO CreateObject("Scripting.FileSystemObj
ect") - Scripting is the name of the type library and
FileSystemObject is the name of the object that
you want to create.
46Accessing Existing Drives, Files, and Folders
- To gain access to an existing drive, file, or
folder, use the appropriate "get" method of the
FileSystemObject object - GetDrive
- GetFolder
- GetFile
- Do not use the "get" methods for newly created
objects, since the "create" functions already
return a handle to that object. - For example, if you create a new folder using the
CreateFolder method, don't use the GetFolder
method to access its properties, such as Name,
Path, Size, and so forth. - Just set a variable to the CreateFolder function
to gain a handle to the newly created folder,
then access its properties, methods, and events.
47Accessing the Object's Properties
- Once you have a handle to an object, you can
access its properties. - For example, to get the name of a particular
folder, first create an instance of the object,
then get a handle to it with the appropriate
method (in this case, the GetFolder method, since
the folder already exists).
48Working with Drives and Folders
- With the FileSystemObject (FSO) object model, you
can work with drives and folders programmatically
just as you can in the Windows Explorer
interactively. - You can copy and move folders, get information
about drives and folders, and so forth.
49Getting Information About Drives
- The Drive object allows you to gain information
about the various drives attached to a system,
either physically or over a network.
50Getting Information About Drives
- The total size of the drive in bytes (TotalSize
property). - How much space is available on the drive in bytes
(AvailableSpace or FreeSpace properties). - What letter is assigned to the drive (DriveLetter
property). - What type of drive it is, such as removable,
fixed, network, CD-ROM, or RAM disk (DriveType
property). - The drive's serial number (SerialNumber
property). - The type of file system the drive uses, such as
FAT, FAT32, NTFS, and so forth (FileSystem
property). - Whether a drive is available for use (IsReady
property) - The name of the share and/or volume (ShareName
and VolumeName properties) - The path or root folder of the drive (Path and
RootFolder properties)
51Working With Folders
- Create a folder - FileSystemObject.CreateFolder
- Delete a folder - Folder.Delete or
FileSystemObject.DeleteFolder - Move a folder - Folder.Move or FileSystemObject.Mo
veFolder - Copy a folder - Folder.Copy or FileSystemObject.Co
pyFolder - Retrieve the name of a folder - Folder.Name
- Find out if a folder exists on a drive -
FileSystemObject.FolderExists - Get an instance of an existing Folder object -
FileSystemObject.GetFolder - Find out the name of a folder's parent folder -
FileSystemObject.GetParentFolderName - Find out the path of system folders -
FileSystemObject.GetSpecialFolder
52Working With Files
- There are two major categories of file
manipulation - Creating, adding, or removing data, and reading
files. - Moving, copying, and deleting files.
53Creating Files
- There are three ways to create an empty text
file. - The first way is to use the CreateTextFile
method. - The second way to create a text file is to use
the OpenTextFile method of the FileSystemObject
object with the ForWriting flag set. - A third way to create a text file is to use the
OpenAsTextStream method with the ForWriting flag
set.
54Adding Data to the File
- Once the text file is created, add data to the
file using the following three steps - Open the text file.
- Write the data.
- Close the file.
- To open an existing file, use either the
OpenTextFile method of the FileSystemObject
object or the OpenAsTextStream method of the File
object. - To write data to the open text file, use the
Write, WriteLine, or WriteBlankLines methods of
the TextStream object according to your task. - To close an open file, use the Close method of
the TextStream object. - Note The newline character contains a character
or characters to advance the cursor to the
beginning of the next line. Be aware that the end
of some strings may already have such nonprinting
characters.
55Reading Files
- To read data from a text file, use the Read,
ReadLine, or ReadAll method of the TextStream
object. - If you use the Read or ReadLine method and want
to skip to a particular portion of data, use the
Skip or SkipLine method. - The resulting text of the read methods is stored
in a string which can be displayed in a control,
parsed by string functions (such as Left, Right,
and Mid), concatenated, and so forth.
56Moving, Copying, and Deleting Files
- The FSO object model has two methods each for
moving, copying, and deleting files - Move a file - File.Move or FileSystemObject.MoveFi
le - Copy a file - File.Copy or FileSystemObject.CopyFi
le - Delete a file - File.Delete or FileSystemObject.De
leteFile
57Lab 11.1
- Tip
- Const DRV_UNKNOWN 0
- Const DRV_REMOVABLE 1
- Const DRV_FIXED 2
- Const DRV_NETWORK 3
- Const DRV_CDROM 4
- Const DRV_RAMDISK 5
58Lab 11.2
- Declare the follow constants
- Constants returned by Drive.DriveType
- Const conDriveTypeRemovable 1
- Const conDriveTypeFixed 2
- Const conDriveTypeNetwork 3
- Const conDriveTypeCDROM 4
- Const conDriveTypeRAMDisk 5
- Constants returned by File.Attributes
- Const conFileAttrNormal 0
- Const conFileAttrReadOnly 1
- Const conFileAttrHidden 2
- Const conFileAttrSystem 4
- Const conFileAttrVolume 8
- Const conFileAttrDirectory 16
- Const conFileAttrArchive 32
- Const conFileAttrAlias 64
- Const conFileAttrCompressed 128
- Constants for opening files
- Const conOpenFileForReading 1
59Lab 11.2
- Write the following functions.
- ShowDriveType(objDrive) - Generates a string
describing the drive type of a given Drive
object. - ShowFileAttr(objFile) - Generates a string
describing the attributes of a file or folder. - GenerateDriveInformation(objFSO) reports about
the Drive Letter,Path, Type, IsReady, ShareName,
VolumeName, TotalSize, FreeSpace, AvailableSpace,
and SerialNumber. - GenerateFileInformation(objFile) File Name,
Type, File Attributes, Date Created, Last
Accessed, Last Modified and Size - GenerateFolderInformation(objFolder) Folder
Name, Folder Attributes, Date Created, Last
Accessed, Last Modified and Size
60Lab 11.1
- Create a Folder in the D\ drive, if not exist in
C\ Drive. - The name of the folder is VBSInfo.
- Create a file in the folder, TestInfo.txt
- The file will contain the report of the program.
- The data will displayed like a table (rows and
columns with headers) use the vbTab for separate
the data. - For getting information about the directories and
files, please DONT do it an all drives, select
only the drive were you created your file.
61Lab 11.1
- Create a Folder in the D\ drive, if not exist in
C\ Drive. - The name of the folder is VBSInfo.
- Create a file in the folder, TestInfo.txt
- The file will contain the report of the program.
- The data will displayed like a table (rows and
columns with headers) use the vbTab for separate
the data. - For getting information about the directories and
files, please DONT do it an all drives, select
only the drive were you created your file.
62Whats Next
- What means error handling.
- When to use On Error statements.
- Using the error object.
- Raising our own errors.
- The next session is for advanced users.
63Make sure to visit us
- Tutorials
- Articles
- Proikects
- And much more
- www.AdvancedQTP.com