Le langage VBScript

Transcription

Le langage VBScript
L'Altruiste : Le guide des langages Web - Le langage VBScript
L'Altruiste : Le guide des langages Web
Le langage VBScript
Sommaire
1 / Introduction
2 / L'environnement de développement
3 / Insertion des scripts
4 / Les types de variables
5 / Les mots-clés
6 / Les opérateurs
6.1 / Les opérateurs d'affectation
6.2 / Les opérateurs arithmétiques
6.3 / Les opérateurs booléens
6.4 / Les opérateurs de comparaisons
6.5 / Les opérateurs de concaténations
6.6 / La priorité des opérateurs
7 / Les constantes prédéfinies
7.1 / Les constantes 3-états
7.2 / Les constantes d'attributs de fichiers
7.3 / Les constantes chaînes de caractères
7.4 / Les constantes de couleur
7.5 / Les constantes de comparaison
7.6 / Les constantes date/heure
7.7 / Les constantes de dossiers spéciaux
7.8 / Les constantes d'entrée/sortie de fichiers
7.9 / La constante d'erreur
7.10 / Les constantes de format date/heure
7.11 / Les identificateurs de langue
7.12 / Les constantes de msgbox
7.13 / Les constantes de types de variable
8 / Les erreurs dans VBScript
8.1 / Les erreurs d'exécutions
8.2 / Les erreurs de syntaxe
9 / Les fonctions
9.1 / Les fonctions de conversion et de mise en forme
9.2 / Les fonctions sur les chaînes de caractères
9.3 / Les fonctions mathématiques
9.4 / Les fonctions sur les dates et les heures
9.5 / Les fonctions sur les tableaux
9.6 / Les autres fonctions
10 / Les instructions
10.1 / Les commentaires
10.2 / Déclaration de variables
10.3 / L'instruction Const
10.4 / L'instruction Randomize
10.5 / Les instructions liées aux tableaux
10.6 / L'instruction Do...Loop
10.7 / L'instruction While...Wend
10.8 / L'instruction For...Next
10.9 / L'instruction For Each...Next
10.10 / L'instruction If Then Else
10.11 / L'instruction Select Case
10.12 / L'instruction With
10.13 / Déclaration de fonctions et procédures
10.14 / L'instruction Call
10.15 / L'instruction Property
10.16 / L'instruction Class
10.17 / Les événements d'une classe
10.18 / L'instruction Exit
Modifié le 10/05/2003
Page 1 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.19 / L'instruction Set
10.20 / Les instructions d'exécution
10.21 / Les instructions de gestions d'erreurs
11 / Les objets
11.1 / L'objet Class
11.2 / L'objet Err
11.3 / L'objet RegExp
11.4 / L'objet Match
11.5 / L'objet Matches
11.6 / L'objet SubMatches
12 / Les caractères spéciaux
13 / Les méthodes
14 / Les propriétés
Modifié le 10/05/2003
Page 2 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
1 / Introduction
Le langage VBScript est une adaptation pour le Web, du célèbre langage de Microsoft, Visual
Basic.
Le VBScript est un langage de script simplifié et orienté objet dont la syntaxe est basée sur celle
du Visual Basic pour application. Il est possible de créer des classes avec leurs propres propriétés et
méthodes.
Les programmes VBScript sont, la pluart du temps, directement insérés au sein du code HTML
dans les pages ou peuvent être écrits dans un fichier spécifique portant l'extension .vbs.
VBScript est en général utilisé avec d'autres composants tels que ceux de la référence d'exécution
Scripting, de l'objet FileSystemObject, d'ActiveX, les composants COM (Components Object Model), etc,
afin de rendre un site Web dynamique et interactif.
La technologie ASP (Active Server Pages) s'appuie en général sur les programmes VBScript pour
créer de véritables applications Web implémentées du côté serveur.
Ce langage est particulièrement adapté à l'élaboration de sites professionnels tournés vers l'e-commerce
notamment.
L'implémentation du code VBScript peut s'effectuer du côté serveur comme du côté client. Cependant,
des scripts devant être interpétés par le navigateur du client, risque de se heurter à des risques
d'incompatibilités.
Enfin, les programmeurs avertis ne ressentiront guère de difficultés à se familiariser à ce langage
et les débutants devraient par une bonne connaissance des bases de la programmation Internet
et certainement par un bon investissement personnel, réussir à rapidement maîtriser cet outil.
Modifié le 10/05/2003
Page 3 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
2 / L'environnement de développement
Travailler sur la technologie VBScript, il est nécessaire de disposer d'un environnment de
développement approprié.
Dans un premier temps, le système d'exploitation de prédilection du VBScript est évidemment
Microsoft Windows dans l'une des versions :
Windows 95,
Windows 98,
Windows Millenium,
Windows XP,
Windows NT 4.0,
Windows 2000.
Ensuite, un serveur Internet spécifique à chaque système d'exploitation doit être installé et
configuré proprement.
PWS (Personal Web Server) sur Windows 95, 98, Millenium et XP,
Services d'administration Web sur NT 4.0 Workstation ou Windows 2000 Professional,
IIS 4.0 (Internet Information Server) sur NT 4.0 Server,
IIS 5.0 sur NT 2000 Server.
L'installation d'un système de base de données est également souhaitable. Il est possible d'utiliser
un logiciel comme Access ou SQL Server, mais également d'autres comme Oracle ou MySQL peuvent
constituer une alternative intéressante.
Enfin, bien qu'un éditeur de texte conventionnel soit suffisant pour rédiger des pages VBScript, il est
préférable pour des travaux plus ambitieux, d'employer des éditeurs spécialisés tels que :
Visual Basic édité par Microsoft,
Visual InterDev édité par Microsoft,
Dreamweaver édité par Macromedia,
FrontPage édité par Microsoft,
WebExpert édité par Visicom.
Modifié le 10/05/2003
Page 4 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
3 / Insertion des scripts
Les scripts écrits en VBScript doivent être intégrés dans une page HTML par le biais d'un
balisage spécifique.
<!-- Insertion de scripts VBScript -->
<script language="VBScript"
type="text/vbscript"
runat="server">
Script...
</script>
Ce couple de balises est également une alternative plus simple et plus rapide :
<%
Script...
%>
En entête de page, on peut également utiliser la balise suivante afin d'indiquer le langage de script
par défaut au serveur.
<%@ LANGUAGE="VBScript"%>
Des résultats de fonctions ou de variables peuvent être directement insérés au sein d'un balisage
HTML d'une page Web par l'intermédiaire de la construction suivante :
<%= variable%>
Rem Insère le résultat de la fonction calcul() Rem au sein d'une cellule td d'un tableau.
...
<td><%= calcul()%></td>
...
Toutes les pages HTML comportant ces balisages précités, doivent porter l'extension .asp afin
que le serveur puisse traiter correctement l'ensemble des scripts VBScript.
Modifié le 10/05/2003
Page 5 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
4 / Les types de variables
Le langage Visual Basic Script possède un seul type de variable dénommé Variant.
Dim Variable ' Variable est de type Variant
Dans VBScript, les variables ont la possiblité de recevoir n'importe quel genre de données, comme
des nombres entiers ou à virgule flottante, une chaîne de caractères ou encore une valeur logique.
' Variable de sous-type String
Variable = "Chaîne de caractères"
' Variable de sous-type Integer
Variable = 50
' Variable de sous-type Boolean
Variable = True
C'est pourquoi, le type Variant peut contenir diverses valeurs de variables appelées les sous-types
de variables.
Type
Description
Empty
correspond à une non-initialisation de la variable. La valeur est égale à zéro pour les
variables numériques et à une chaîne de longueur nulle ("") pour les variables chaîne de
caractères.
Null
correspond à une valeur incorrecte.
Boolean
correspond à une valeur booléenne True et False.
Byte
correspond à un entier de 0 à 255.
Integer
correspond à un entier de -32768 à 32767.
Currency
correspond à une valeur monétaire de -922 337 203 685 477,5808 à 922 337 203 685
477,5807.
Long
correspond à un entier de -2 147 483 648 à 2 147 483 647.
Single
correspond à un nombre à virgule flottante en précision simple de -3,402823 * 1038 à 1,401298 * 10-45 pour les nombres négatifs; de 1,401298 * 10-45 à 3,402823 * 1038 pour
les nombres positifs.
Double
correspond à un nombre à virgule flottante en précision double de -1,79769313486232 *
10308 à -4,94065645841247 * 10-324 pour les nombres négatifs et de 4,94065645841247 *
10-324 à 1,79769313486232 * 10308 pour les nombres positifs.
er
Date (Time) correspond à un nombre représentant une date entre le 1 janvier 100 et le 31 décembre
9999.
String
correspond à une chaîne 2 milliards de caractères maximum.
Object
correspond à un objet.
Error
correspond à un numéro d'erreur.
Modifié le 10/05/2003
Page 6 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
5 / Les mots-clés
Le langage VBScript comprend cinq mots-clés permettant d'affecter des valeurs spéciales aux
variables d'un programme.
Le mot-clé Empty
signale que la valeur d'une variable n'est pas encore initialisé.
variable = Empty
Le mot-clé Null
signifie qu'une variable ne contient pas de valeur valide.
variable = Null
Le mot-clé True
représente la valeur binaire 1.
variable = True
Le mot-clé False
représente la valeur binaire 0.
variable = False
Les mots-clés précités peuvent être également utilisés dans des expressions conditionnelles comme
dans l'exemple ci-dessous.
If variable <> Null Then
' Instructions...
End if
Le mot-clé Nothing
indique qu'une variable objet est en fin d'utilisation, et partant, libère l'espace mémoire qui lui
était alloué.
Set variable_objet = Nothing
Exemple : [voir]
<html>
<body>
<%
Dim objet
' Création de l'objet
Set objet = Server.CreateObject("MSWC.AdRotator")
Response.Write objet.GetAdvertisement("liste.txt")
' Destruction de l'objet
Set objet = Nothing
%>
</body>
</html>
Modifié le 10/05/2003
Page 7 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6 / Les opérateurs
Le VBScript possède plusieurs types d'opérateurs permettant d'accomplir de nombreuses tâches
à l'intérieur des expressions comme des comparaisons, des multiplications, de la concaténation,
etc..
Un jeu complet d'opérateurs autorisent de multiples combinaisons d'expressions.
Sommaire
6.1 / Les opérateurs d'affectation
6.2 / Les opérateurs arithmétiques
6.3 / Les opérateurs booléens
6.4 / Les opérateurs de comparaisons
6.5 / Les opérateurs de concaténations
6.6 / La priorité des opérateurs
Modifié le 10/05/2003
Page 8 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.1 / Les opérateurs d'affectation
Un opérateur d'affectation assigne la valeur de l'opérande gauche basée sur la valeur de
l'opérande droite.
L'opérateur d'affectation de base est le signe d'égalité (=), qui assigne la valeur de son opérande droite à
son opérande gauche. C'est-à-dire, droit = gauche assigne la valeur de gauche à droit.
variable = valeur
Les exemples ci-dessous, montrent le mécanisme d'affectation de valeurs aux variables.
x = 10
y = 12
x=y
'retourne x = 12
Modifié le 10/05/2003
Page 9 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.2 / Les opérateurs arithmétiques
Les opérateurs arithmétiques prennent des valeurs numériques (des littéraux ou des variables)
comme leurs opérandes et renvoient une valeur numérique.
Les opérateurs arithmétiques standards sont l'addition (+), la soustraction (-), la multiplication (*), et la
division (/).
Opérateur
Description
Exemple
x Mod y
L'opérateur modulo retourne le reste de la division x/y.
20 Mod 3
'retourne 2
x+y
L'opérateur permet d'additionner la valeur x à la valeur y.
5+6
'retourne 11
x-y
L'opérateur permet de soustraire la valeur y de la valeur x.
8 - 10
'retourne -2
x*y
L'opérateur permet de multiplier la valeur x par la valeur y.
4*9
'retourne 36
x/y
L'opérateur permet de diviser la valeur x par la valeur y en retournant un
nombre à virgule flottante.
4 / 16
'retourne 0.25
x\y
L'opérateur permet de diviser la valeur x par la valeur y en retournant un
nombre entier.
5/4
'retourne 1
x^y
L'opérateur permet de calculer l'exponentiation de la valeur x à la valeur y.
3^2
'retourne 9 (3²)
Modifié le 10/05/2003
Page 10 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.3 / Les opérateurs booléens
Les opérateurs logiques sont typiquement utilisés pour comparer des expressions ou des
nombres et retournent en résultat des valeurs booléennes.
Opérateur Usage
Description
Exemple
And
Or
x And y
L'opérateur renvoie True si les deux opérandes sont
vraies; autrement, il retourne False.
x Or y
L'opérateur renvoie True si l'une ou l'autre des
opérandes est vraie ou si toutes les deux sont
fausses, sinon il retourne False.
(a < 10) And (b > 10)
'Si a et b sont inférieures à 10,
l'opérateur retourne True
(a >= 1) Or (b == "fin")
'Si a est supérieur ou égal à 1
ou/et si b est égal à fin
alors l'opérateur renvoie true,
sinon il retourne false
Xor
x Xor y
(a >= 1) Xor (b == "fin")
'Si a est supérieur ou égal à 1 et
L'opérateur renvoie True si les des opérandes sont
vraies ou fausses, sinon il retourne False.
si b est égal à fin ou si les deux
expressions sont fausses
alors l'opérateur renvoie true,
sinon il retourne false
Eqv
x Eqv y
(a >= 1) Eqv (b == "fin")
'Si a est supérieur ou
égal à 1 et si b est égal à fin ou
L'opérateur renvoie True si les des opérandes sont
vraies ou fausses, sinon il retourne False.
si les deux expressions sont fausses
alors l'opérateur renvoie true,
sinon il retourne false
Not
Not x
Not (a <= 100)
'Si a est inférieur ou égal à 100
L'opérateur renvoie false si son unique opérande peut
alors l'opérateur retourne false
être convertie en true, sinon il retourne false.
sinon il renvoie true.
Un autre opérateur Imp permet d'effectuer une implication logique entre deux expressions.
resultat = expression1 Imp expression2
La comparaison obéit à une logique citée dans le tableau ci-dessous.
Expression1 Expression2 Résultat
Modifié le 10/05/2003
True
True
True
True
False
False
True
Null
Null
False
True
True
False
False
True
False
Null
True
Null
True
True
Page 11 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Null
False
Null
Null
Null
Null
L'opérateur Imp effectue une comparaison binaire des bits de position identique dans deux
expressions numériques et définit le bit correspondant en retour.
Expression1 Expression2 Résultat
Modifié le 10/05/2003
0
0
1
0
1
1
1
0
0
1
1
1
Page 12 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.4 / Les opérateurs de comparaisons
Ce type d'opérateur compare ses opérandes et renvoie une valeur logique en fonction du
résultat. Si la comparaison est vraie, la valeur logique true est retournée.
Les opérandes peuvent être des valeurs numériques ou des chaînes de caractères.
Opérateur
Description
Exemples
x=y
Si la valeur y est égale à x, l'opérateur retourne true.
if (choix = 1)...;
x <> y
Si la valeur y est différente de x, l'opérateur retourne true
if (valeur <> prix)
x>y
Si la valeur de y est supérieure à x, l'opérateur retourne true
if (montant > 1500)
x >= y
Si la valeur de y est supérieure ou égale à x, l'opérateur retourne true if (hab >= pop)
x<y
Si la valeur de y est inférieure à x, l'opérateur retourne true
if (numero < page)
x <= y
Si la valeur de y est inférieure ou égale à x, l'opérateur retourne
if (fin <= premier)
Un opérateur spécial Is permet de comparer deux variables de référence à un objet.
resultat = objet1 Is objet2
Si la comparaison révèle que les deux objets font références au même objet alors le résultat est égal à
True, sinon False.
x=a
y=a
resultat = x Is y
'resultat est égal à True
Modifié le 10/05/2003
Page 13 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.5 / Les opérateurs de concaténations
En plus des opérateurs de comparaison, qui peuvent être utilisés sur des valeurs de chaîne de
caractères, l'opérateur d'enchaînement & permet d'enchaîner deux valeurs de chaîne de
caractères ensemble, en renvoyant une autre qui est le résultat de la concaténation des deux
opérandes.
L'opérateur d'affectation + peut également être utilisé pour enchaîner des chaînes de caractères. Mais
cet opérateur pourrait être ambigu du fait de sa fonction initiale, c'est-à-dire l'addition sur des nombres.
"mon" & "programme" 'retourne "mon programme"
texte = "Un programme"
texte_2 = "VBScript"
resultat = texte & texte_2 'retourne "Un programme VBScript"
Modifié le 10/05/2003
Page 14 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6.6 / La priorité des opérateurs
La priorité des opérateurs détermine l'ordre qui leur est appliqué lors de l'évaluation d'une
expression.
Toutefois, il est possible d'ignorer la priorité des opérateurs en utilisant des parenthèses.
Lorsque des expressions sont composées d'opérateurs de différentes catégories, les opérateurs
arithmétiques sont évalués en premier, suivi de l'opérateur de concaténation, puis les opérateurs de
comparaison et enfin les opérateurs logiques.
Les opérateurs arithmétiques
sont évalués dans l'ordre de priorité décrit par le tableau suivant :
Les opérateurs arithmétiques
1 Négation
-
2 Mise à la puissance
^
3 Multiplication et division * /
4 Division entière
\
5 Modulo
Mod
6 Addition et soustraction + -
L'opérateur de concaténation
est évalué avant les opérateurs de comparaisons.
L'opérateur de concaténation
Concaténation de chaînes
&
Les opérateurs de comparaison
possèdent tous une priorité identique.
Cependant, les opérateurs les plus à gauche dans une expression, détiennent une priorité plus élevé.
Les opérateurs de comparaison
1
Égalité
=
1
Inégalité
<>
1
Inférieur à
<
1
Supérieur à
>
1
Inférieur à ou égal à
<=
1
Supérieur à ou égal à
>=
1
Variable de référence
Is
Les opérateurs logiques
sont évalués dans l'ordre de priorité décrit par le tableau suivant :
Les opérateurs logiques
Modifié le 10/05/2003
1
Non
Not
2
Et
And
Page 15 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
3
Ou
Or
4
Ou exclusif
Xor
5
Equivalence
Eqv
6
Implication
Imp
7
&
Exemple :
Dans le cas ci-dessous, une première évaluation accomplit le calcul 10 + x puis, une seconde effectue la
division entre y et 10 + x et enfin la dernière affecte à x le résultat des deux premières évaluations.
x = y / 10 + x
Dans ce second exemple, la multiplication 2 * x et la division y / 4 sont calculés au préalable, ensuite la
comparaison <= est exécuteée afin d'évaluer z par rapport à 2 * x ou (Or) y / 4.
z <= 2 * x Or y / 4
Modifié le 10/05/2003
Page 16 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7 / Les constantes prédéfinies
Les constantes prédéfinies dans Visual Basic Script permettent d'apporter une meilleure
efficacité dans l'utilisation de valeurs pour les variables, ainsi qu'une plus grande lisibilité du
code.
Sommaire
7.1 / Les constantes 3-états
7.2 / Les constantes d'attributs de fichiers
7.3 / Les constantes chaînes de caractères
7.4 / Les constantes de couleur
7.5 / Les constantes de comparaison
7.6 / Les constantes date/heure
7.7 / Les constantes de dossiers spéciaux
7.8 / Les constantes d'entrée/sortie de fichiers
7.9 / La constante d'erreur
7.10 / Les constantes de format date/heure
7.11 / Les identificateurs de langue
7.12 / Les constantes de msgbox
7.13 / Les constantes de types de variable
Modifié le 10/05/2003
Page 17 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.1 / Les constantes 3-états
Les constantes 3-états peuvent être utilisées n'importe où dans un programme VBScript.
Constante Valeur
Description
vbUseDefault
-2
Indique l'utilisation de la valeur par défaut des paramètres régionaux.
vbTrue
-1
True
vbFalse
0
False
Modifié le 10/05/2003
Page 18 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.2 / Les constantes d'attributs de fichiers
Les constantes d'attributs de fichiers peuvent être utilisées n'importe où dans un programme
VBScript ou JScript.
Constante Valeur
Description
Normal
0
indique que les fichiers n'ont aucun attribut défini.
ReadOnly
1
indique que les fichiers sont en lecture seule.
hidden
2
indique que les fichiers sont cachés.
System
3
indique qu'il s'agît de fichiers systèmes.
Directory
16
indique qu'il s'agît de répertoires ou dossiers.
Archive
32
indique que le fichier a été modifié depuis la dernière sauvegarde.
Alias
1024
indique qu'il s'agît d'un lien ou d'un raccourci.
Compressed
2048
indique que le fichier est compressé.
Modifié le 10/05/2003
Page 19 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.3 / Les constantes chaînes de caractères
Les constantes chaînes de caractères peuvent être utilisées n'importe où dans un programme
VBScript.
Valeur
Constante
Description
hexadécimale
vbCr
Chr(13)
Retour chariot.
VbCrLf
Chr(13) et Chr(10)
Retour chariot et saut de ligne.
vbFormFeed
Chr(12)
Saut de page.
vbLf
Chr(10)
Saut de ligne, inadaptée à Microsoft Windows.
vbNewLine
Chr(13) et Chr(10) ou Chr(10) Nouvelle ligne spécifique à la plateforme.
vbNullChar
Chr(0)
Caractère ayant la valeur 0.
vbNullString
Chaîne ayant la valeur 0.
Utilisée pour l'appel de procédures externes. Ne pas
confondre avec une chaîne de longueur nulle "".
vbTab
Chr(9)
Tabulation horizontale.
vbVerticalTab
Chr(11)
Tabulation verticale, inadaptée à Microsoft Windows.
Modifié le 10/05/2003
Page 20 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.4 / Les constantes de couleur
Les constantes de couleur peuvent être utilisées n'importe où dans un programme VBScript.
Valeur
Constante
Description
hexadécimale
Modifié le 10/05/2003
vbBlack
&h00
Noir
vbRed
&hFF
Rouge
vbGreen
&hFF00
Vert
vbYellow
&hFFFF
Jaune
vbBlue
&hFF0000
Bleu
vbMagenta
&hFF00FF
Magenta
vbCyan
&hFFFF00
Cyan
vbWhite
&hFFFFFF
Blanc
Page 21 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.5 / Les constantes de comparaison
Les constantes de comparaison peuvent être utilisées n'importe où dans un programme
VBScript.
Constante
Valeur
Description
vbBinaryCompare
0
réalise une comparaison binaire.
vbTextCompare
1
réalise une comparaison de texte.
Modifié le 10/05/2003
Page 22 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.6 / Les constantes date/heure
Les constantes date/heure peuvent être utilisées n'importe où dans un programme VBScript.
Constante
Valeur
Description
vbSunday
1
Dimanche
vbMonday
2
Lundi
vbTuesday
3
Mardi
vbWednesday
4
Mercredi
vbThursday
5
Jeudi
vbFriday
6
Vendredi
vbSaturday
7
Samedi
vbUseSystem
0
Utilise le format de date contenu dans les paramètres régionaux de
la station cliente.
vbUseSystemDayOfWeek
0
Utilise le jour de la semaine spécifié dans les paramètres régionaux
de la station cliente pour le premier jour de la semaine.
vbFirstJan1
1
Utilise la semaine dans laquelle tombe le 1er janvier (par défaut).
vbFirstFourDays
2
Utilise la première semaine comportant au moins quatre jours dans
la nouvelle année.
vbFirstFullWeek
3
Utilise la première semaine complète de l'année.
Modifié le 10/05/2003
Page 23 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.7 / Les constantes de dossiers spéciaux
Les constantes de dossiers spéciaux peuvent être utilisées n'importe où dans un programme
VBScript ou JScript.
Constante
Valeur
Description
WindowsFolder
0
indique que le répertoire lecteur:\windows contient des fichiers du système
d'exploitation Windows.
SystemFolder
1
indique que le répertoire lecteur:\windows\system contient les bibliothèques,
les polices et les pilotes de périphérique.
TemporaryFolder
2
indique que le répertoire temp stocke des fichiers temporaires.
Modifié le 10/05/2003
Page 24 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.8 / Les constantes d'entrée/sortie de fichiers
Les constantes d'entrée/sortie de fichiers peuvent être utilisées n'importe où dans un programme
VBScript ou JScript.
Constante Valeur
Description
ForReading
0
indique que le fichier est ouvert en lecture seule.
ForWriting
1
indique que le fichier est ouvert en écriture.
ForAppending
8
indique qu'un fichier est ouvert avec une écriture eb fin de fichier.
Modifié le 10/05/2003
Page 25 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.9 / La constante d'erreur
La constante d'erreur peut être utilisée n'importe où dans un programme VBScript.
Constante
Valeur
Description
vbObjectError
-2147221504 Les numéros d'erreur définis par l'utilisateur doivent être supérieurs à
cette valeur
Exemple :
Err.Raise Number = vbObjectError + 1000
Modifié le 10/05/2003
Page 26 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.10 / Les constantes de format date/heure
Les constantes de format date/heure peuvent être utilisées n'importe où dans un programme
VBScript.
Toutes ces constantes dépendent pour leur fonctionnement des paramètres systèmes de la station
cliente.
Constante
Valeur
Description
vbGeneralDate
0
Affiche une date et/ou une heure. Pour les nombres réels, affiche une date et
une heure. En l'absence de parties décimales, affiche seulement une date. S'il
n'y a pas de parties entières, affiche seulement l'heure.
vbLongDate
1
Affiche une date en utilisant le format de date complet.
vbShortDate
2
Affiche une date en utilisant le format de date abrégé.
vbLongTime
3
Affiche une heure en utilisant le format d'heure complet.
vbShortTime
4
Affiche une heure en utilisant le format d'heure abrégé.
Modifié le 10/05/2003
Page 27 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.11 / Les identificateurs de langue
Les identificateurs de langues sont utilisés en tant qu'argument dans la fonction SetLocale(ID) ou
retournés par la fonction GetLocale().
Ils permettent donc de modifier les paramètres régionaux ou d'obtenir des informations sur ces-derniers.
Abréviation
Code
Code
hexadécimal décimal
Africaans
af
0x0436
1078
Albanais
sq
0x041C
1052
Allemand - standard
de
0x0407
1031
Allemand - Autriche
de-at
0x0C07
3079
Allemand - Liechtenstein
de-li
0x1407
5127
Allemand - Luxembourg
de-lu
0x1007
4103
Allemand - Suisse
de-ch
0x0807
2055
Anglais - Australie
en-au
0x0C09
3081
Anglais - Belize
en-bz
0x2809
10249
Anglais - Canada
en-ca
0x1009
4105
Anglais - Irlande
en-ie
0x1809
6153
Anglais - Jamaïque
en-jm
0x2009
8201
Anglais - Nouvelle-Zélande
en-nz
0x1409
5129
Anglais - Afrique du Sud
en-za
0x1C09
7177
Anglais - Trinidad
en-tt
0x2C09
11273
Anglais - Royaume-Uni
en-gb
0x0809
2057
Anglais - États-Unis
en-us
0x0409
1033
Arabe - Émirats Arabes Unis.
ar-ae
0x3801
14337
Arabe - Bahreïn
ar-bh
0x3C01
15361
Arabe - Algérie
ar-dz
0x1401
5121
Arabe - Égypte
ar-eg
0x0C01
3073
Arabe - Iraq
ar-iq
0x0801
2049
Arabe - Jordanie
ar-jo
0x2C01
11265
Arabe - Koweït
ar-kw
0x3401
13313
Arabe - Liban
ar-lb
0x3001
12289
Arabe - Libye
ar-ly
0x1001
4097
Arabe - Maroc
ar-ma
0x1801
6145
Arabe - Oman
ar-om
0x2001
8193
Arabe - Qatar
ar-qa
0x4001
16385
Langue
Modifié le 10/05/2003
Page 28 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Arabe - Arabie Saoudite
ar-sa
0x0401
1025
Arabe - Syrie
ar-sy
0x2801
10241
Arabe - Tunisie
ar-tn
0x1C01
7169
Arabe - Yémen
ar-ye
0x2401
9217
Basque
eu
0x042D
1069
Biélorusse
be
0x0423
1059
Bulgare
bg
0x0402
1026
Catalan
ca
0x0403
1027
Chinois - Rép. Populaire de Chine
zh-cn
0x0804
2052
Chinois - Hong Kong
zh-hk
0x0C04
3076
Chinois - Singapour
zh-sg
0x1004
4100
Chinois - Taïwan
zh-tw
0x0404
1028
Coréen
ko
0x0412
1042
Croate
hr
0x041A
1050
Danois
da
0x0406
1030
Espagnol - standard
es
0x040A
1034
Espagnol - Argentine
es-ar
0x2C0A
11274
Espagnol - Bolivie
es-bo
0x400A
16394
Espagnol - Chili
es-cl
0x340A
13322
Espagnol - Colombie
es-co
0x240A
9226
Espagnol - Costa Rica
es-cr
0x140A
5130
Espagnol - République dominicaine es-do
0x1C0A
7178
Espagnol - Équateur
es-ec
0x300A
12298
Espagnol - Guatemala
es-gt
0x100A
4106
Espagnol - Honduras
es-hn
0x480A
18442
Espagnol - Mexique
es-mx
0x080A
2058
Espagnol - Nicaragua
es-ni
0x4C0A
19466
Espagnol - Panama
es-pa
0x180A
6154
Espagnol - Pérou
es-pe
0x280A
10250
Espagnol - Puerto Rico
es-pr
0x500A
20490
Espagnol - Paraguay
es-py
0x3C0A
15370
Espagnol - El Salvador
es-sv
0x440A
17418
Espagnol - Uruguay
es-uy
0x380A
14346
Espagnol - Venezuela
es-ve
0x200A
8202
Estonien
et
0x0425
1061
Modifié le 10/05/2003
Page 29 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Farsi (Persan)
fa
0x0429
1065
Finnois
fi
0x040B
1035
Féroen
fo
0x0438
1080
Français - standard
fr
0x040C
1036
Français - Belgique
fr-be
0x080C
2060
Français - Canada
fr-ca
0x0C0C
3084
Français - Luxembourg
fr-lu
0x140C
5132
Français - Suisse
fr-ch
0x100C
4108
Gaélique - Écosse
gd
0x043C
1084
Grec
el
0x0408
1032
Hébreu
he
0x040D
1037
Hindi
hi
0x0439
1081
Hongrois
hu
0x040E
1038
Islandais
is
0x040F
1039
Indonésien
in
0x0421
1057
Italien - standard
it
0x0410
1040
Italien - Suisse
it-ch
0x0810
2064
Japonais
ja
0x0411
1041
Letton
lv
0x0426
1062
Lituanien
lt
0x0427
1063
Macédonien
mk
0x042F
1071
Malais - Malaisie
ms
0x043E
1086
Maltais
mt
0x043A
1082
Néerlandais
nl
0x0413
1043
Néerlandais - Belgique
nl-be
0x0813
2067
Norvégien - Bokmaal
no
0x0414
1044
Ourdou - Pakistan
ur
0x0420
1056
Polonais
pl
0x0415
1045
Portugais - standard
pt
0x0816
2070
Portugais - Brésil
pt-br
0x0416
1046
Rhéto-roman
rm
0x0417
1047
Roumain
ro
0x0418
1048
Roumain - Moldavie
ro-mo
0x0818
2072
Russe
ru
0x0419
1049
Russe - Moldavie
ru-mo
0x0819
2073
Modifié le 10/05/2003
Page 30 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Serbe - Cyrillique
sr
0x0C1A
3098
Setswana
tn
0x0432
1074
Slovène
sl
0x0424
1060
Slovaque
sk
0x041B
1051
Sorbe
sb
0x042E
1070
Sutu
sx
0x0430
1072
Suédois
sv
0x041D
1053
Suédois - Finlande
sv-fi
0x081D
2077
Tchèque
cs
0x0405
1029
Thaï
th
0x041E
1054
Turc
tr
0x041F
1055
Tsonga
ts
0x0431
1073
Ukrainien
uk
0x0422
1058
Vietnamien
vi
0x042A
1066
Xhosa
xh
0x0434
1076
Yiddish
ji
0x043D
1085
Zoulou
zu
0x0435
1077
Modifié le 10/05/2003
Page 31 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.12 / Les constantes de msgbox
Les constantes des boîtes de messages (msgbox) peuvent être utilisées n'importe où dans un
programme VBScript.
La plupart des constantes de boîtes de messages affichent dans celles-ci, divers boutons de
commandes ou icônes d'information.
Constante
Valeur
Description
vbOKOnly
0
Bouton OK.
vbOKCancel
1
Boutons OK et Annuler.
vbAbortRetryIgnore
2
Boutons Abandon, Réessayer et Ignorer.
vbYesNoCancel
3
Boutons Oui, Non et Annuler.
vbYesNo
4
Boutons Oui et Non.
vbRetryCancel
5
Boutons Réessayer et Annuler.
vbCritical
16
Icône Message critique.
vbQuestion
32
Icône Demande d'avertissement.
vbExclamation
48
Icône Message d'avertissement.
vbInformation
64
Icône Message d'information.
vbDefaultButton1
0
Active le premier bouton par défaut.
vbDefaultButton2
256
Active le deuxième bouton par défaut.
vbDefaultButton3
512
Active le troisième bouton par défaut.
vbDefaultButton4
768
Active le quatrième bouton par défaut.
vbApplicationModal
0
Crée une boîte modale pour l'application. L'utilisateur doit répondre à la
boîte de message avant de poursuivre le travail dans l'application
courante.
vbSystemModal
4096
Crée une boîte modale pour le système. Sur les systèmes Win16, toutes
les applications sont suspendues jusqu'à ce que l'utilisateur réponde à la
boîte de message. Sur les systèmes Win32, cette constante affiche une
boîte de message modale pour l'application, laquelle reste toujours
affichée quel que soit le programme que vous utilisez.
D'autres constantes sont utilisées avec la fonction MsgBox afin d'identifier le bouton sur lequel
l'utilisateur a cliqué.
Constante Valeur
Modifié le 10/05/2003
Description
vbOK
1
Clic sur OK.
vbCancel
2
Clic sur Annuler.
vbAbort
3
Clic sur Abandon.
vbRetry
4
Clic sur Réessayer.
vbIgnore
5
Clic sur Ignorer.
vbYes
6
Clic sur Oui.
vbNo
7
Clic sur Non.
Page 32 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
7.13 / Les constantes de types de variable
Les constantes de types de variable peuvent être utilisées n'importe où dans un programme
VBScript.
Constante Valeur
Description
vbEmpty
0
Non initialisé (par défaut)
vbNull
1
Ne contient pas de données valides
vbInteger
2
Sous-type Integer
vbLong
3
Sous-type Long
vbSingle
4
Sous-type Single
vbDouble
5
Sous-type Double
vbCurrency
6
Sous-type Currency
vbDate
7
Sous-type Date
vbString
8
Sous-type String
vbObject
9
Objet
vbError
10
Sous-type Error
vbBoolean
11
Sous-type Boolean
vbVariant
12
Variant (utilisé uniquement pour les tableaux de données de type Variant)
vbDataObject
13
Objet d'accès aux données
vbDecimal
14
Sous-type Decimal
vbByte
17
Sous-type Byte
vbArray
8192
Tableau
Modifié le 10/05/2003
Page 33 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
8 / Les erreurs dans VBScript
Sommaire
8.1 / Les erreurs d'exécutions
8.2 / Les erreurs de syntaxe
Modifié le 10/05/2003
Page 34 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
8.1 / Les erreurs d'exécutions
Les erreurs d'exécutions interviennent lorsqu'un script Visual Basic Script entreprend une action
que le système n'est pas capable de supporter.
Erreur
Description
429
Un composant ActiveX ne peut pas créer d'objet
507
Une exception s'est produite
449
Argument obligatoire
17
Impossible d'effectuer l'opération requise
430
Cette classe ne gère pas Automation
506
Classe non définie
11
Division par zéro
48
Erreur de chargement de la DLL
5020
) attendu dans l'expression régulière
5019
] attendu dans l'expression régulière
432
Nom de fichier ou de classe introuvable au cours de l'opération Automation
92
Boucle For non initialisée
5008
Affectation illégale
51
Erreur interne
505
Référence incorrecte ou non qualifiée
481
Image incorrecte
5
Argument ou appel de procédure incorrect
5021
Plage incorrecte dans le jeu de caractères
94
Utilisation incorrecte de Null
448
Argument nommé introuvable
447
Cet objet ne gère pas les paramètres régionaux en cours
445
Cet objet ne gère pas cette action
438
Propriété ou méthode non gérée par cet objet
451
Cet objet n'est pas une collection
504
Objet non sécurisé pour la création
503
Objet non sécurisé pour l'initialisation
502
Objet non sécurisé pour le script
424
Objet requis
91
Variable de l'objet non définie
7
Mémoire insuffisante
28
Espace pile insuffisant
14
Espace de chaîne insuffisant
Modifié le 10/05/2003
Page 35 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
6
Dépassement de capacité
35
Sub ou Function non défini
9
Indice en dehors de la plage
5017
Erreur de syntaxe dans l'expression régulière
462
La machine du serveur distant n'existe pas ou n'est pas disponible
10
Ce tableau est fixe ou temporairement verrouillé
13
Type incompatible
5018
Quantifiant inattendu
500
Variable indéfinie
458
Cette variable utilise un type Automation non géré par VBScript
450
Nombre d'arguments incorrect ou affectation de propriété incorrecte
Modifié le 10/05/2003
Page 36 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
8.2 / Les erreurs de syntaxe
Les erreurs de syntaxes interviennent lorsqu'un script Visual Basic Script tente de s'exécuter
alors qu'il comporte des anomalies grammaticales, en fait une construction anormale des
instrructions.
Erreur
Description
1052
Impossible d'avoir plusieurs propriétés/méthodes par défaut dans une classe
1044
Parenthèses interdites lors de l'appel d'une procédure Sub
1053
L'initialisation ou la fin de classe ne comporte pas d'arguments
1058
La spécification Default ne peut se trouver que dans Property Get
1057
La spécification Default doit également spécifier Public
1005
( attendu
1006
) attendu
1011
= attendu
1021
Case attendu
1047
Class attendu
1025
Fin d'instruction attendue
1014
End attendu
1023
Expression attendue
1015
Function attendu
1010
Identificateur attendu
1012
If attendu
1046
In attendu
1026
Constante (entier) attendue
1049
Let, Set ou Get attendu dans la déclaration de la propriété
1045
Constante (littéral) attendue
1019
Loop attendu
1020
Next attendu
1050
Property attendu
1022
Select attendu
1024
Instruction attendue
1016
Sub attendu
1017
Then attendu
1013
To attendu
1018
Wend attendu
1027
While ou Until attendu
1028
While, Until ou fin d'instruction attendu
Modifié le 10/05/2003
Page 37 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
1029
With attendu
1030
Identificateur trop long
1014
Caractère incorrect
1039
Instruction exit incorrecte
1040
Variable de contrôle de boucle for incorrecte
1013
Nombre incorrect
1037
Utilisation incorrecte du mot clé Me
1038
loop sans do
1048
Doit être défini à l'intérieur d'une classe
1042
Doit être la première instruction de la ligne
1041
Nom redéfini
1051
Le nombre d'arguments doit être le même dans la spécification des propriétés
1001
Mémoire insuffisante
1054
La propriété Set ou Let doit comporter au moins un argument
1002
Erreur de syntaxe
1055
Next inattendu
1015
Constante de chaîne non terminée
Modifié le 10/05/2003
Page 38 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9 / Les fonctions
Les fonctions prédéfines dans Visual basic Script s'acquittent de multiples tâches dans des
programmes.
Les fonctions sont ici classées par domaine d'emploi.
Sommaire
9.1 / Les fonctions de conversion et de mise en forme
9.2 / Les fonctions sur les chaînes de caractères
9.3 / Les fonctions mathématiques
9.4 / Les fonctions sur les dates et les heures
9.5 / Les fonctions sur les tableaux
9.6 / Les autres fonctions
Modifié le 10/05/2003
Page 39 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.1 / Les fonctions de conversion et de mise en forme
Fonction
Description
CBool(expression)
Retourne une expression qui a été convertie en Variant de sous-type Boolean.
CByte(expression)
Retourne une expression qui a été convertie en Variant de sous-type Byte.
CCur(expression)
Retourne une expression qui a été convertie en Variant de sous-type Currency.
CDate(expression)
Retourne une expression qui a été convertie en Variant de sous-type Date.
CDbl(expression)
Retourne une expression qui a été convertie en Variant de sous-type Double.
CInt(expression)
Retourne une expression qui a été convertie en Variant de sous-type Integer.
CLng(expression)
Retourne une expression qui a été convertie en Variant de sous-type Long.
CSng(expression)
Retourne une expression qui a été convertie en Variant de sous-type Single.
CStr(expression)
Retourne une expression qui a été convertie en Variant de sous-type String.
FormatCurrency(expression, [Nb_décimal,]
[Affiche_zéro,] [Négatif_parenthèse] [,Séparateur_groupe])
Retourne une expression formatée sous forme de valeur de type Currency utilisant le symbole
monétaire défini dans le Panneau de configuration du système.
FormatDateTime(Date, [Format])
Retourne une expression formatée sous forme de date ou d'heure.
FormatNumber(expression, [Nb_décimal,]
[Affiche_zéro,] [Négatif_parenthèse] [,Séparateur_groupe])
Retourne une expression formatée sous forme de nombre.
FormatPercent(expression, [Nb_décimal,]
[Affiche_zéro,] [Négatif_parenthèse] [,Séparateur_groupe])
Retourne une expression formatée sous forme de pourcentage (multiplié par 100) avec un caractère de
fin %.
Hex(nombre)
Retourne une chaîne représentant la valeur hexadécimale d'un nombre.
IsArray(expression)
Retourne une valeur booléenne indiquant si la variable est un tableau.
IsDate(expression)
Retourne une valeur booléenne indiquant si une expression peut être convertie en date.
IsEmpty(expression)
Modifié le 10/05/2003
Page 40 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Retourne une valeur booléenne indiquant si une variable a été initialisée.
IsNull(expression)
Retourne une valeur booléenne indiquant si une expression contient des données valides ou non
(Null).
IsNumeric(expression)
Retourne une valeur booléenne indiquant si une expression peut être évaluée sous la forme d'un
nombre.
IsObject(identificateur)
Retourne une valeur booléenne indiquant si une expression fait référence à un objet Automation valide.
Oct(nombre)
Retourne une chaîne représentant la valeur octale d'un nombre.
Nb_décimal
indique un nombre de positions à affichées après la partie décimale.
Affiche_zéro
indique si un zéro non significatif s'affiche pour les valeurs décimales.
Négatif_parenthèse
indique s'il faut mettre les valeurs négatives entre parenthèses.
Séparateur_groupe
indique le type de séparateur de groupe qu'il faut utiliser.
Les arguments Affiche_zéro, Négatif_parenthèse et Séparateur_groupe peuvent prendre les valeurs
constantes 3-états.
Format
indique par une valeur numérique le format d'affichage de la date et de l'heure.
Modifié le 10/05/2003
Page 41 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.2 / Les fonctions sur les chaînes de caractères
Fonction
Description
Asc(chaîne)
Retourne le code de caractère ANSI correspondant à la première lettre d'une chaîne.
Chr(code_caractère)
Retourne le caractère associé au code de caractère ANSI spécifié.
InStr([départ,] chaîne, chaîne_autre, [Comparaison]
Retourne la position de la première occurrence d'une chaîne à l'intérieur d'une autre.
InStrRev(chaîne, chaîne_autre, [départ], [Comparaison])
Retourne la position d'une occurrence d'une chaîne dans une autre, à partir de la fin de la chaîne.
Join(Chaîne, [Délimiteur])
Retourne une chaîne créée par la jonction de plusieurs sous-chaînes contenues dans un tableau.
LCase(chaîne)
Retourne une chaîne qui a été convertie en minuscules.
Left(chaîne, longueur)
Retourne un nombre spécifié de caractères à partir de la gauche d'une chaîne.
Len(chaîne)
Retourne le nombre de caractères contenus dans une chaîne, ou le nombre d'octets requis pour
stocker une variable.
LTrim(chaîne)
Retourne une copie d'une chaîne sans espaces à gauche.
Mid(chaîne, départ, [longueur])
Retourne un nombre spécifié de caractères d'une chaîne.
Replace(expression, chaîne_recherchée, chaîne_remplacement,
[départ,] [nb_remplacement,] [Comparaison]
Retourne une chaîne dans laquelle une sous-chaîne recherchée a été remplacée par une autre souschaîne le nombre de fois spécifié (nb_remplacement).
Right(chaîne, longueur)
Retourne un nombre spécifié de caractères à partir de la droite d'une chaîne.
RTrim(chaîne)
Retournent une copie d'une chaîne sans espaces à droite.
Space(nombre)
Retourne une chaîne composée d'un nombre spécifié d'espaces.
Split(expression, [délimiteur,] [Nb_renvoi,] [Comparaison])
Retourne un tableau à une dimension commençant par zéro contenant le nombre spécifié de souschaînes, -1 indiquant que toutes les sous-chaînes sont renvoyées.
StrComp(chaîne, chaîne2, [Comparaison])
Retourne une valeur indiquant le résultat d'une comparaison de chaînes de caractères.
String(nombre, caractère)
Retourne une chaîne constituée d'un caractère répété sur la longueur spécifiée.
Modifié le 10/05/2003
Page 42 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
StrReverse(chaîne)
Retourne une chaîne contenant des caractères dont l'ordre a été inversé par rapport à une chaîne
donnée.
Trim(chaîne)
Retourne une copie d'une chaîne sans espaces ni à gauche ni à droite.
UCase(chaîne)
Retourne une chaîne qui a été convertie en majuscules.
Départ
spécifie la position de départ, par défaut le début de la chaîne.
Comparaison
indique une comparaison binaire par défaut, soit 0 ou vbBinaryCompare, ou bien une comparaison
textuelle, soit 1 ou vbTextCompare.
Délimiteur
est un caractère de chaîne utilisé pour séparer des sous-chaînes dans la chaîne retournée, l'espace
étant le caractère par défaut. Si la valeur est une chaîne de longueur nulle, alors tous les éléments de la
liste sont concaténés sans séparateurs.
Modifié le 10/05/2003
Page 43 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.3 / Les fonctions mathématiques
Fonction
Description
Abs(nombre)
Retourne la valeur absolue d'un nombre.
Atn(nombre)
Retourne l'arc tangente d'un nombre.
Cos(nombre)
Retourne le cosinus d'un angle.
Exp(nombre)
Retourne e (la base des logarithmes népériens) élevé à une puissance.
Fix(nombre)
Retourne la partie entière d'un nombre.
Int(nombre)
Retourne la partie entière d'un nombre.
Log(nombre)
Retourne le logarithme népérien d'un nombre.
Rnd(nombre)
Retourne un nombre aléatoire.
Round(nombre)
Retourne un nombre arrondi à un nombre spécifié de positions décimales.
Sgn(nombre)
Retourne un entier indiquant le signe d'un nombre.
Sin(nombre)
Retourne le sinus d'un angle.
Sqr(nombre)
Retourne la racine carrée d'un nombre.
Tan(nombre)
Retourne la tangente d'un angle.
Modifié le 10/05/2003
Page 44 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.4 / Les fonctions sur les dates et les heures
Fonction
Description
Date()
Retourne la date système courante.
DateAdd(Intervalle, Nombre, Date)
Retourne une date à laquelle un intervalle spécifique a été ajouté.
DateDiff(Intervalle, Date, Date2
[Premier_jour_semaine,] [Premier_jour_année])
Retourne le nombre d'intervalles entre deux dates.
DatePart(Année, Mois, Date)
Retourne la partie spécifiée d'une date donnée.
DateSerial(Date)
Retourne un Variant de sous-type Date pour une année, un mois et un jour spécifiés.
DateValue(Date)
Retourne un Variant de sous-type Date.
Day(Date)
Retourne un nombre entier compris entre 1 et 31 inclus, représentant le jour du mois.
FormatDateTime(Temps)
Retourne une expression formatée sous forme de date ou d'heure.
Hour(Temps)
Retourne un nombre entier compris entre 0 et 23 inclus, représentant l'heure du jour.
IsDate(expression)
Retourne une valeur booléenne indiquant si une expression peut être convertie en date.
Minute(Temps)
Retourne un nombre entier compris entre 0 et 59 inclus, représentant la minute de l'heure.
Month(Date)
Retourne un nombre entier compris entre 1 et 12 inclus, représentant le mois de l'année.
MonthName(Mois, [Abréviation])
Retourne une chaîne indiquant le mois spécifié.
Now()
Retourne la date et l'heure en cours en fonction de leur paramétrage dans le système de l'ordinateur
client.
Second(Temps)
Retourne un nombre entier compris entre 0 et 59 inclus, représentant la seconde de la minute.
Time()
Retourne un Variant de sous-type Date indiquant l'heure système en cours.
Timer()
Retourne le nombre de secondes qui se sont écoulées depuis 00:00 (minuit).
TimeSerial(Heure, Minute, Seconde)
Modifié le 10/05/2003
Page 45 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Retourne un Variant de sous-type Date contenant l'heure correspondant à des éléments spécifiques
d'heure, de minute et de seconde.
TimeValue(Temps)
Retourne un Variant de sous-type Date contenant l'heure.
Weekday(Date, [Premier_jour_semaine,])
Retourne un nombre entier représentant le jour de la semaine.
WeekdayName(Jour_semaine, Abréviation, )
Retourne une chaîne indiquant le jour de la semaine spécifié.
Year(Date)
Retourne un nombre entier représentant l'année.
Intervalle
est une chaîne de caractères correspondant à un intervalle à utiliser pour calculer la différence entre
deux dates.
Valeur
Description
yyyy
Année
q
Trimestre
m
Mois
y
Jour de l'année
d
Jour
w
Jour de la semaine
ww
Semaine
h
Heure
n
Minute
s
Seconde
Premier_jour_semaine
est une constante indiquant le premier jour de la semaine, par défaut Dimanche.
Constante
Valeur
Description
vbUseSystem
0
Utilise la valeur API NLS.
vbSunday
1
Dimanche (par défaut)
vbMonday
2
Lundi
vbTuesday
3
Mardi
vbWednesday
4
Mercredi
vbThursday
5
Jeudi
vbFriday
6
Vendredi
vbSaturday
7
Samedi
Premier_jour_année
est une constante indiquant le premier semaine de l'année incluant le premier janvier.
Modifié le 10/05/2003
Page 46 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Constante
Valeur
Description
vbUseSystem
0
Utilise la valeur API NLS.
vbFirstJan1
1
Commence par la semaine incluant le 1er janvier (valeur par défaut).
vbFirstFourDays
2
Commence par la semaine comportant au moins quatre jours dans la
nouvelle année.
vbFirstFullWeek
3
Commence par la première semaine complète de la nouvelle année.
Abréviation
indique par une valeur booléenne si le nom du jour de la semaine doit être abrégé, par défaut False
(non-abrégé).
Modifié le 10/05/2003
Page 47 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.5 / Les fonctions sur les tableaux
Fonction
Description
Array(Liste_arguments)
Retourne une variable de type Variant contenant un tableau.
Filter(Tableau_chaînes, Chaîne_recherche, [Inclure,] [Comparaison])
Retourne un tableau commençant par zéro contenant un sous-ensemble d'un tableau de chaîne basé
sur des critères de filtre spécifiés.
IsArray(expression)
Retourne une valeur booléenne indiquant si la variable est un tableau.
LBound(Nom_tableau, [Dimension])
Retourne le plus petit indice disponible pour la dimension indiquée d'un tableau.
Split(expression, [délimiteur,] [Nb_renvoi,] [Comparaison])
Retourne un tableau à une dimension commençant par zéro contenant le nombre spécifié de souschaînes, -1 indiquant que toutes les sous-chaînes sont renvoyées.
UBound(Nom_tableau, [Dimension])
Retourne le plus grand indice disponible pour la dimension indiquée d'un tableau.
Inclure
est une valeur booléenne indiquant s'il faut renvoyer des sous-chaînes incluant ou excluant l'argument
Chaîne_recherche.
Si la valeur est True, un sous-ensemble du tableau contenant l'argument Chaîne_recherche comme
sous-chaîne est retourné.
Si la valeur est False, un sous-ensemble du tableau ne contenant pas l'argument Chaîne_recherche
comme sous-chaîne est retourné.
Comparaison
indique une comparaison binaire par défaut, soit 0 ou vbBinaryCompare, ou bien une comparaison
textuelle, soit 1 ou vbTextCompare.
Modifié le 10/05/2003
Page 48 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
9.6 / Les autres fonctions
Fonction
Description
CreateObject(Classe)
Crée et retourne une référence à un objet Automation.
GetLocale()
Retourne la valeur de l'ID de langue en cours.
GetObject([Chemin,] [Classe])
Retourne une référence à l'objet Automation d'un fichier.
GetRef()
Retourne une référenceChaîne à une procédure éventuellement liée à un événement.
InputBox(Prompt, [Titre,] [Texte_défaut,]
[Position_X,] [Position_Y,] [Fichier_Aide,] [Contexte])
Affiche une invite dans une boîte de dialogue, attend que l'utilisateur entre du texte ou choisisse un
bouton et retourne le contenu de la zone de texte.
LoadPicture([Expression])
Retourne un objet image. Disponible seulement sur les plates-formes 32 bits.
MsgBox(Prompt, [Bouton,] [Titre,] [Fichier_Aide,] [Contexte])
Affiche un message dans une boîte de dialogue, attend que l'utilisateur clique sur un bouton et retourne
une valeur indiquant le bouton choisi par l'utilisateur.
RGB(Rouge, Vert, Bleu)
Retourne un nombre entier représentant une valeur de couleur RVB.
ScriptEngine()
Retourne une chaîne représentant le langage de script utilisé.
ScriptEngineBuildVersion()
Retourne le numéro de compilation du moteur de script employé.
ScriptEngineMajorVersion()
Retourne le numéro de version principal du moteur de script employé.
ScriptEngineMinorVersion()
Retourne le numéro de version secondaire du moteur de script employé.
SetLocale(ID_Langue)
définit les paramètres régionaux globaux à l'aide de l'argument ID_Langue et retourne les paramètres
régionaux précédents.
TypeName(ID_Local)
Retourne une chaîne qui fournit des informations de sous-type Variant sur une variable.
VarType(Nom_variable)
Retourne une valeur indiquant le sous-type d'une variable.
Prompt
est une chaîne d'une taille maximum de 1024 caractères, qui est affichée sous la forme d'un message
dans la boîte de dialogue. La longueur maximum de l'argument prompt est environ 1024 caractères,
selon la largeur des caractères utilisés. Il est possible d'utiliser le retour chariot (Chr(13)), le retour à la
ligne (Chr(10)) ou une combinaison des deux lorsque le chaîne de caractère doit s'étendre sur plusieurs
Modifié le 10/05/2003
Page 49 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
lignes.
Titre
est une chaîne de caractères destinée à être affichée dans la barre de titre de la boîte de dialogue.
Texte_défaut
est une chaîne de caractères destinée à être affichée dans la zone de texte comme la réponse par
défaut si aucune autre entrée n'est fournie.
Position_X
représente la distance horizontale entre le bord gauche de la boîte de dialogue et le bord gauche de
l'écran. Par défaut, la boîte est centrée horizontalement.
Position_Y
représente la distance verticale entre le bord supérieur de la boîte de dialogue et le haut de l'écran. Par
défaut, la boîte est centrée verticalement
Fichier_Aide
est une chaîne de caractères destinée à être utilisé pour fournir l'aide contextuelle de la boîte de
dialogue.
Contexte
est une valeur numérique identifiant le numéro de contexte de l'aide affecté par l'auteur de l'Aide à la
rubrique d'aide correspondante.
Bouton
est une valeur numérique ou une constante de message de boîtes spécifiant le nombre et le type de
boutons à afficher, le style d'icône à utiliser, l'identité du bouton par défaut et la modalité du message.
Modifié le 10/05/2003
Page 50 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10 / Les instructions
Les instructions dans le langage VBScript permettent d'accomplir de nombreuses tâches dans
un programme.
Celles-ci peuvent être des boucles (Do...Loop, For...To, etc.), des branchements conditionnels
(If...Then...Else ou Select Case), de gérer des erreurs (On Error), d'appeler des fonctions (Call), de
déclarer des variables (Dim, Private ou Public), ou encore de créer des classes (Class), des propriétés
(Property), des fonctions (Function) des procédures (Sub), etc..
Sommaire
10.1 / Les commentaires
10.2 / Déclaration de variables
10.3 / L'instruction Const
10.4 / L'instruction Randomize
10.5 / Les instructions liées aux tableaux
10.6 / L'instruction Do...Loop
10.7 / L'instruction While...Wend
10.8 / L'instruction For...Next
10.9 / L'instruction For Each...Next
10.10 / L'instruction If Then Else
10.11 / L'instruction Select Case
10.12 / L'instruction With
10.13 / Déclaration de fonctions et procédures
10.14 / L'instruction Call
10.15 / L'instruction Property
10.16 / L'instruction Class
10.17 / Les événements d'une classe
10.18 / L'instruction Exit
10.19 / L'instruction Set
10.20 / Les instructions d'exécution
10.21 / Les instructions de gestions d'erreurs
Modifié le 10/05/2003
Page 51 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.1 / Les commentaires
Le langage VBScript accepte deux types de commentaires au sein du code.
Les instructions Rem et le caractère apostrophe '
permettent d'insérer des remarques dans un programme, afin de le rendre plus lisible à titre informatif, et
à fortiori, pour aider un développeur à effectuer une maintenance.
Rem Commentaire...
Lignes de code...
' Commentaire...
Lignes de code...
Un espace blanc doit figuré entre l'instruction et le commentaire.
Les commentaires peuvent être insérés entre des lignes ou en fin de lignes de code, mais jamais
au sein d'une instruction.
Lorsqu'une remarque est placée en fin de ligne, l'instruction Rem doit être précédée d'un caractère
deux-points (:), en ce qui concerne l'instruction ', il suffit d'introduire un espace blanc de séparation.
Ligne de code : Rem Commentaire
Ligne de code ' Commentaire
Exemple :
Rem Déclaration de variables
Dim X
Dim Y
Dim Z
' Affectations
X = 12 ' X vaut 12
Y = 2 : Rem Y vaut 2
Rem Z vaut 144
Z = X ^ Y ' Mise à la puissance
Modifié le 10/05/2003
Page 52 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.2 / Déclaration de variables
La déclaration des variables peut s'effectuer par l'intermédiaire de plusieurs instructions dans un
programme VBScript.
L'instruction Option Explicit
contraint à déclarer explicitement toutes les variables dans un script.
Option Explicit
Cette instruction doit obligatoirement se placer au sommet d'une page d'un programme VBScript.
L'instruction Dim
déclare des variables dans l'espace de nom d'un script, dans des fonctions ou procédures et
également dans des propriétés (Property).
Elles seront disponible à l'intérieur de l'espace de nom dans lequel elles auront été spécifiées.
Dim nom_variable[(Indices)]
L'instruction Private
déclare les variables privées dans l'espace de nom d'un script ou dans une propriété (Property).
Elles seront essentiellement disponibles dans les procédures, les fonctions, et dans le script luimême, ou dans des propriétés.
Private nom_variable[(Indices)]
L'instruction Public
déclare des variables publiques dans l'espace de nom global d'un script ou dans des propriétés
(Property).
Elles pourront être utilisées dans l'ensemble d'une application VBScript.
Public nom_variable[(Indices)]
(Indices) indique la création d'un tableau d'une à soixante dimensions. Ces dernières sont des nombres
entiers séparées par des virgules.
Dim tableau(10,10,10)
Cet exemple, a créé une variable appelée tableau possédant trois dimensions de 10 cellules.
Exemple : [voir]
<html>
<body>
<%
' Variable valable dans toutes les procédures
' et fonctions ainsi que dans tous les scripts.
Public variable_public
' Variable valable uniquement dans ce script et
' dans toutes les procédures et fonctions.
Private variable_privee
' Affectation des variables
variable_public = 10
variable_privee = 6
Public Function Multiplication
Modifié le 10/05/2003
Page 53 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
' Variable déclarée dans la portée locale d'une fonction.
Dim resultat
resultat = variable_public * variable_privee
Response.write resultat
End Function
Public Function Division
' Variable déclarée dans la portée locale d'une fonction.
Dim resultat
' Réaffectation de variables dans la portée locale d'une fonction.
variable_public = 12
variable_privee = 4
resultat = variable_public / variable_privee
Response.write resultat
End Function
Response.Write "Le résultat de la multiplication est : " _
& variable_public & " * " & variable_privee _
&"="
Call Multiplication()
Response.Write "<br>Le résultat de la division est : " _
& variable_public & " / " & variable_privee _
&"="
Call Division()
%>
</body>
</html>
Modifié le 10/05/2003
Page 54 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.3 / L'instruction Const
L'instruction Const permet de déclarer des constantes destinées à se substituer à des valeurs de
variables.
Public | Private Const Nom = Valeur
Nom représente le nom de la constante.
Valeur peut être aussi bien une valeur littérale comme une chaîne de caractères ou un nombre, qu'une
expression combinant n'importe quels opérateurs, hormis Is.
Les variables ou les fonctions ne peuvent être utilisées dans les valeurs de constantes, puisque
par définition les constantes sont fixes, et les variables sont fluctuantes.
Enfin, les constantes peuvent être utilisées partout dans le code.
Exemple :
Private Const ma-couleur = "#EC33D5"
Public Const message_erreur = "Désolé, vous venez d'être
confronté à un problème !"
Const euro = 6.55957
Const taux_conversion = 1 / euro
Modifié le 10/05/2003
Page 55 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.4 / L'instruction Randomize
L'instruction Randomize permet d'initialiser le générateur de nombre aléatoire de la fonction Rnd
()
Randomize [Nombre]
Nombre peut être une valeur numérique quelconque. La valeur de l'horloge du système est
employée par défaut
Exemple : [voir]
<html>
<body>
<%
Dim resultat, condition
Rem Initialisation du générateur de nombres aléatoires.
Randomize
' Génération d'une valeur aléatoire comprise entre 1 et 18.
resultat = Int((100 * Rnd) + 1)
Response.Write "Le résultat est : <b>" & resultat & "</b>"
%>
<br>
<a href="http://www.laltruiste.com/coursasp/exemple/randomize.asp">
Recommencer
</a>
</body>
</html>
Modifié le 10/05/2003
Page 56 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.5 / Les instructions liées aux tableaux
Les instructions Erase et ReDim sont utilisées pour gérer les tableaux.
L'instruction Erase
permet de supprimer les éléments des tableaux de taille fixe et libère l'espace de stockage des
tableaux dynamiques.
Erase Nom_tableau
Nom_tableau représente le tableau auquel les éléments seront supprimés.
L'instruction ReDim
permet de redimensionner l'espace de stockage des tableaux dynamiques.
ReDim [Preserve] Nom_tableau(Dimensions)
Preserve active la préservation des éléments d'un tableau tout en le redimensionnant.
Nom_tableau représente la variable de type tableau.
Dimensions consite en une énumération d'une ou plusieurs dimensions du tableau concernée, séparées
par une virgule.
Un tableau dynamique est déclaré initialement sans aucun indice de dimension, par l'intermédiaire
des instructions Private, Public ou Dim.
Private | Public | Dim Nom_tableau
Exemple :
' Déclaration d'un tableau dynamique
Dim tableau
' Redimensionnement sur trois dimensions du tableau
ReDim tableau(10, 10, 10)
' Réinitialisation du tableau
Erase tableau
Modifié le 10/05/2003
Page 57 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.6 / L'instruction Do...Loop
L'instruction Do...Loop répète un bloc d'instructions tant qu'une condition est vraie (While) ou
jusqu'à ce qu'une condition devienne vraie (Until).
Do while|Until Condition
' Instructions...
Loop
Do
' Instructions...
While|Until Condition
Dans cette boucle, la condition peut être placée soit au début de la boucle, soit à la fin. Dans ce dernier
cas, un cycle sera exécuté quelque soit l'état de la condition de la boucle.
Exemple : [voir]
<html>
<body>
<%
Public x
Public i
x=0
i=0
Response.Write "<u>Boucle Do While...Loop</u><br>Comptage :<br>"
' Boucle faire tant que x est inférieur ou égal à 10.
Do While x <= 10
Response.Write x & "<br>"
x=x+1
Loop
Response.Write "<u>Boucle Do...Loop While</u><br>Comptage :<br>"
' Boucle identique avec la condition en fin de boucle.
Do
Response.Write x
x=x+1
Loop While x <= 10
%>
<body>
<html>
Modifié le 10/05/2003
Page 58 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.7 / L'instruction While...Wend
L'instruction While...Wend répète des instructions tant que la condition spécifiée est vraie (True).
While Condition
' Instructions...
Wend
Cette boucle signifie tant que (while) la condition est vraie, les instructions avant la fin de la boucle
(Wend) sont exécutées.
Exemple : [voir]
<html>
<body>
<%
Dim phrase(9), i
phrase(0) = "Ce"
phrase(1) = "texte"
phrase(2) = "contient"
phrase(3) = "un"
phrase(4) = "mot"
phrase(5) = "qui"
phrase(6) = "doit"
phrase(7) = "être"
phrase(8) = "trouvé"
recherche = "être"
i=0
while trouve = False
If phrase(i) = recherche Then
Response.Write "Le verbe <b>" & recherche & "</b> a été trouvé" _
& " à la position n° <b>" & i & "</b>" _
& " au sein de la phrase suivante :<br>"
For i = 0 To 7 Step 1
Response.Write phrase(i) & " "
Next
Response.Write phrase(8) & ". "
trouve = True
End If
i=i+1
Wend
%>
<body>
<html>
Modifié le 10/05/2003
Page 59 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.8 / L'instruction For...Next
L'instruction For...Next exécute des boucles par rapport à un comptage délimité par un début et
une fin.
For Compteur=Début To Fin [Step Pas]
' Instructions...
Next
La traduction d'une telle commande peut être : pour (For) le compteur à une condition de début jusqu'à
(To) une condition de fin selon un certain pas (Step), exécuter les instructions de la boucle.
L'instruction For...Next incrémente automatiquement le compteur, ainsi il n'est pas utile de placer
une commande d'incrémentation comme i = i + 1.
Exemple : [voir]
<html>
<body>
<%
' Déclaration des variables, un tableau et deux incréments
Dim jour(7), i, j
jour(0) = "Lundi"
jour(1) = "Mardi"
jour(2) = "Mercredi"
jour(3) = "Jeudi"
jour(4) = "Vendredi"
jour(5) = "Samedi"
jour(6) = "Dimanche"
j=0
' Boucle comptabilisant les jours du mois
For i = 1 To 31 Step 1
' Réinitialise au septième jour de la semaine
If j = 5 Then
j = -2
End If
"
Response.Write jour(j + 2) & " " & i & " janvier 2002
' Incrémentation de i et de j
j=j+1
Next
%>
<body>
<html>
Modifié le 10/05/2003
Page 60 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.9 / L'instruction For Each...Next
L'instruction For Each...Next parcourt tous les éléments d'un tableau ou d'une collection afin
d'appliquer à chacun un traitement défini par une séries d'instructions.
For Each Elément In Groupe
' Instructions...
Next [Elément]
Elément est le nom d'une variable contenue dans un groupe. Cette variable peut être du type Variant,
Objet générique ou Objet Automation pour les collections et seulement Variant pour les tableaux.
Groupe représente un conteneur d'éléments comme un tableau ou un collection.
Exemple : [voir]
<% response.expires = "-1" %>
<html>
<body>
<%
Dim dossier, chemin, dossier_parent
Set ObjSystemeFichier = Server.CreateObject("Scripting.FileSystemObject")
dossier = Request.QueryString("dossier")
chemin = Server.MapPath(dossier&"/")
set objet_dossier = ObjSystemeFichier.getFolder(chemin)
%>
<table border="0" align="center">
<%
if dossier <> "" Then
dossier_parent = Left(dossier, inStrRev(dossier, "/")-1)
%>
<tr>
<th colspan="2">
<a href="exemple.asp?dossier=<%=dossier_parent%>"
title ="Retour au répertoire parent">
../
</a>
</th>
</tr>
<% end if %>
<tr>
<th colspan="2"><h2><%=objet_dossier.Name%></h2></th>
</tr>
<tr>
<th colspan="2">Dossiers</th>
</tr>
<%
for each sousDossier in objet_dossier.SubFolders
%>
<tr>
<td width="12"> </td>
<td>
<a href="exemple.asp?dossier= _
<%=dossier&"/"&sousDossier.Name%>">
<%=SousDossier.Name%>
</a>
</td>
</tr>
<% next %>
<tr>
<th colspan="2">Fichiers</th>
</tr>
<%
for each Fichier in objet_dossier.Files
%>
<tr>
<td width="12"> </td>
<td>
<a href="<%=dossier&"/"&Fichier.Name%>">
Modifié le 10/05/2003
Page 61 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
<%=Fichier.Name%>
</a>
</td>
</tr>
<%
next
Set ObjSystemeFichier = Nothing
Set objet_dossier = Nothing
%>
</table>
</body>
</html>
Modifié le 10/05/2003
Page 62 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.10 / L'instruction If Then Else
L'instruction If Then Else est une commande de contrôle qui provoque un branchement
conditionnel.
If Condition Then
' Instructions...
Else If Seconde_Condition
' Instructions...
Else
' Instructions...
End If
En fait, cette instruction signifie : si (If) une condition est vérifiée alors (Then) des instructions seront
exécutées, sinon (Else) d'autres le seront.
Cette instruction peut également supporter des conditions multiples par l'intermédiaire de la
commande ElseIf comportant sa propre condition.
L'instruction Select Case est en général plus adaptée à plusieurs cas possibles de branchement
conditionnel.
Exemple : [voir]
<html>
<head>
<script language="VBScript" type="text/vbscript">
<!-Sub validation
Dim doc, valeur
Set doc = Document.forms("formulaire")
valeur = doc.age.Value
If IsNumeric() Then
If valeur < 3 Then
MsgBox "Vous ne pouvez avoir moins de 3 ans !chr(13) " _
& "Veuillez entrer un âge valide, s'il vous plaît."
ElseIf valeur > 125 Then
MsgBox "Vous ne pouvez avoir plus de 125 ans !chr(13) " _
& "Veuillez entrer un âge valide, s'il vous plaît."
Else
MsgBox "Merci."
End If
Else
MsgBox "Veuillez entrer une valeur numérique seule !chr(13) Merci !"
End If
End Sub
-->
</script>
</head>
<body>
<p>Veuillez saisir votre âge :</p>
<form id="formulaire"
action="selectcase.asp"
onsubmit="validation(); return false;"
language="jscript">
<input name="age" type="text" size="4">
<input name="Valider" type="submit" value="Valider">
</form>
</body>
</html>
Modifié le 10/05/2003
Page 63 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.11 / L'instruction Select Case
L'instruction Select Case est une structure de choix, proposant de multiples possibilités de
branchement conditionnel.
Select Case Variable
Case Condition
' Instructions...
Case Seconde_Condition
' Instructions...
Case Troisième_Condition
' Instructions...
...
Case Else
' Instructions...
End Select
En fait, cette instruction signifie : exécuter un bloc d'instructions selon le cas (case) correspondant à la
valeur de la variable test.
Variable est en fait une expression de chaîne de caractères ou numérique contenant une valeur a tester
par rapport à chacun des cas spécifiés.
La dernière commande Case Else détermine le dernier cas possible si aucune des conditions
précédentes ne convenait.
Exemple : [voir]
<html>
<head>
<script language="VBScript" type="text/vbscript">
<!-Sub validation
Dim doc
Dim valeur
Set doc = Document.forms("formulaire")
valeur = doc.age.Value
If IsNumeric(valeur) Then
Select Case valeur
Case 1
MsgBox "Vous êtes encore un bébé !"
Case 7
MsgBox "Vous avez atteint l'âge de raison."
Case 10
MsgBox "La première dixaine !"
Case 15
MsgBox "Les années lycées commencent !"
Case 18
MsgBox "Vous avez la majorité, enfin !"
Case 25
MsgBox "Vous investissez le marché du travail."
Case 30
MsgBox "Vous vous êtes fixés dans votre carrière professionnelle."
Case 55
MsgBox "Vous préparez activement la retraite."
Case 65
MsgBox "Vous êtes à la retraite."
Case 75
MsgBox "Vous profitez pleinement de votre retraite."
Case 100
MsgBox "Vous êtes centenaire. Bravo pour cette longévité !"
Case Else
MsgBox "Votre âge : " & valeur & " ans"
End Select
Else
MsgBox "Veuillez entrer une valeur numérique seule !" & chr(13) & "Merci !"
End If
End Sub
-->
Modifié le 10/05/2003
Page 64 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
</script>
</head>
<body>
<p>Veuillez saisir votre âge :</p>
<form id="formulaire"
action="selectcase.asp"
onsubmit="validation(); return false;"
language="jscript">
<input name="age" type="text" size="4">
<input name="Valider" type="submit" value="Valider">
</form>
</body>
</html>
Modifié le 10/05/2003
Page 65 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.12 / L'instruction With
L'instruction With permet d'appliquer des instructions à un objet spécifié.
With Objet
' Instructions...
End With
Objet est le nom d'un objet quelconque ou une fonction qui retourne un objet.
Une telle instruction agit sur un unique objet sans qu'il soit nécessaire de le rappeler pour chaque
commandes qu'elle contient. Elle peut être utilisée pour modifier les propriétés d'un objet par exemple.
Exemple : [voir]
<html>
<body>
<%
Class livre
Private titre_livre
Private prix_livre
Private commentaire_livre
Private Sub Class_Initialize
End Sub
Private Sub Class_Terminate
End Sub
Public Property Let titre(valeur)
titre_livre = valeur
End Property
Public Property Get titre
titre = titre_livre
End Property
Public Property Let commentaire(texte)
commentaire_livre = texte
End Property
Public Property Get commentaire
commentaire = commentaire_livre
End Property
Public Property Let prix(montant)
prix_livre = FormatNumber(montant,2,-1)
End Property
Public Property Get prix
prix = prix_livre
End Property
Public Property Get convFrancsEuro
convFrancsEuro = FormatNumber(prix_livre * (1 / 6.55957),2)
End Property
Public Sub reduction(taux)
if taux > 5 then
taux = 5
End If
prix_livre = FormatNumber(prix_livre - (prix_livre * taux / 100),2,-1)
End Sub
End Class
Dim objet
Set objet = New livre
With objet
Modifié le 10/05/2003
Page 66 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
.titre = "ASP 3.0 : Le guide du développeur"
.commentaire = "Ce livre complet vous permet d'apprendre " _
& "la technologie ASP en découvrant tour à tour " _
& "le HTML, le VBScript, les composants ASP, l'intégration " _
& "des bases de données, l'utilisation des classes, de " _
& "Internet Information Server, de Microsoft Transaction " _
& "Server, ainsi que des exemples d'applications."
.prix = 298.00
Response.Write "<h2>Le livre " & .titre & "</h2>" _
& "<h4>Commentaire :</h4><p>" & .commentaire & "</p>"
Response.Write "<h4>Prix : " & .prix & " Francs "
Response.Write "<em style='font-size:10pt'>(" _
& .convFrancsEuro & " Euro)</em></h4>"
.reduction 5
Response.Write "<h4 style='color:green'>Si vous êtes abonnés, " _
& "vous bénéficiez d'une réduction de maximum 5%.</h4>"
Response.Write "<h4>Prix réduit : " & .prix & " Francs</h4>"
End With
Set objet = Nothing
%>
</body>
</html>
Modifié le 10/05/2003
Page 67 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.13 / Déclaration de fonctions et procédures
Le langage Visual Basic Script dispose de moyens permettant de créer des procédures ou
fonctions pouvant être appelées n'importe où dans un programme par l'instruction Call
notamment.
L'instruction Sub permet de déclarer le nom, les arguments et les instructions formant une procédure.
[Public [Default] | Private] Sub Nom_Procédure [(Arguments)]
' Instructions...
End Sub
L'instruction Function permet de déclarer le nom, les arguments et les instructions formant une
fonction.
[Public [Default] | Private] Function Nom_Fonction [(Arguments)]
' Instructions...
End Function
Les fonctions et procédures sont publiques (Public) par défaut, c'est-à-dire disponible dans l'ensemble
d'une application VBScript.
Public Default est utilisé pour indiquer que la fonction ou la procédure est utilisée par défaut dans une
classe (Class).
Private signifie que la fonction ou la procédure ne sera valable que dans l'espace de nom global du
script courant.
Arguments représente une liste d'arguments séparés par des espaces blancs.
Un argument peut être composé selon la construction ci-dessous.
[ByVal | ByRef] nom_argument[( )]
ByVal indique un passage d'argument par valeur.
ByRef indique un passage d'argument par référence, soit l'adresse de la variable
concernée.
Il est impossible de créer une fonction (Function) à l'intérieur d'une procédure (Sub) et vice-versa.
De même qu'il n'est pas possible d'en créer dans une définition de propriété Property Get.
Une procédure Sub et une fonction Function sont des instructions différentes capables de prendre des
arguments, d'exécuter un bloc d'instructions et de modifier la valeur de leurs arguments.
La différence réside dans la faculté d'une fonction de pouvoir être utilisée dans la partie droite
d'une expression, celle qui suit le signe égal( =) afin de disposer directement de la valeur retournée par
la fonction.
Variable = nom_fonction()
Pour retourner le résultat d'une fonction, il suffit de créer une variable réceptrice du résultat et de lui
donner le nom de la fonction.
Function Addition(val1, val2)
Addition = val1 + val2
End Function
Enfin, les procédures ou les fonctions acceptent des déclarations de variables implicites, ou
explicites. Dans ce dernier cas, la variable devra être précédée de l'instruction Dim uniquement.
Modifié le 10/05/2003
Page 68 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Exemple : [voir]
<html>
<body>
<%
Sub aujourdhui()
Dim jour_mois, mois, annee, resultat
date_courante = Date()
jour_mois = Day(date_courante)
mois = Month(date_courante)
annee = Year(date_courante)
resultat = jour_mois & "/" & mois & "/" & annee
Response.Write "Date d'aujourd'hui : " & resultat
End Sub
Call aujourdhui()
%>
<%
Function modification()
Dim objFSO
Dim objFichier
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFichier = _
objFSO.GetFile(Request.ServerVariables("PATH_TRANSLATED"))
modification = objFichier.DateLastModified
Set objFichier = Nothing
Set objFSO = Nothing
End Function
Dim date_modification
date_modification = modification()
Response.Write "Date de dernière modification : " _
& Day(date_modification) & " " _
& MonthName(Month(date_modification)) _
& " " & Year(date_modification)
%>
</body>
</html>
Modifié le 10/05/2003
Page 69 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.14 / L'instruction Call
L'instruction Call permet d'appeler une fonction ou une procédure pour leur exécution.
Call Fonction(Arguments)
Cette écriture est équivalente à l'appel de fonction suivant :
Fonction Arguments
Fonction représente le nom de la fonction à appeler.
Arguments indique une liste d'arguments séparés par des espaces blancs.
Call Fonction(arg1, arg2,..., argN)
Lorsque Call est utilisé, la liste des arguments doit être impérativement entre des parenthèses,
alors que pour un appel simple, l'énumération des arguments n'en nécessite pas.
Exemple : [voir]
<html>
<body>
<%
Function AfficheValeur(valeur, monnaie)
Dim euro
euro = 6.55957
ConvFrancsEuro = FormatNumber(valeur / euro, 2)
ConvEuroFrancs = FormatNumber(valeur * euro, 2)
If monnaie = "francs" Then
Response.Write "La somme de " & valeur & " " & monnaie _
& " équivaut à " & ConvFrancsEuro & " euros
"
ElseIf monnaie = "euros" Then
Response.Write "La somme de " & valeur & " " & monnaie _
& " équivaut à " & ConvEuroFrancs & " francs
"
Else
Response.Write "La monnaie entrée est"_
& " incorrecte ou non gérée !"
End If
End Function
Call AfficheValeur (10, "francs")
AfficheValeur 100, "euros"
%>
</body>
</html>
Modifié le 10/05/2003
Page 70 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.15 / L'instruction Property
L'instruction Property permet de déclarer, un nom, des arguments et le code formant une
propriété, dans une déclaration de classe créée par la commande Class.
[Public | Private] Property Get | Let | Set Nom_Propriété [(Arguments)]
' Instructions...
[Exit Property]
' Instructions...
End Property
La définition dans un espace de nom d'une propriété peut s'effectuer soit dans le domaine privée, c'està-dire valable essentiellement au sein de la classe dans laquelle elle a été déclarée, soit dans le
domaine privée (par défaut), soit dans tout un programme VBScript.
Nom_Propriété représente le nom de la propriété concernée et (Arguments), sa propre liste d'arguments
séparées par des espaces blancs.
Exit Property est une instruction optionnelle permettant de sortir immédiatement de la propriété en cours.
Les instructions Let, Get et Set
L'instruction Let affecte la valeur de la propriété.
Public Property Let propriete(valeur)
valeur_propriete = valeur
End Property
L'instruction Property Let peut contenir en son sein des commandes d'affectations Set permettant
d'affecter une référence à une propriété.
L'instruction Get obtient la valeur de la propriété.
Public Property Get propriete
propriete = valeur_propriete
End Property
L'instruction Set définit la référence à un objet.
Public Property Set propriete([arguments,] reference)
...
End Property
Exemple : [voir]
<html>
<body>
<%
Class livre
Private titre_livre
Private prix_livre
Private Sub Class_Initialize
Response.Write "<p><i>La classe est initialisée</i></p>"
End Sub
Private Sub Class_Terminate
Response.Write "<p><i>La classe est détruite</i></p>"
End Sub
Public Property Let titre(valeur)
titre_livre = valeur
End Property
Public Property Get titre
titre = titre_livre
Modifié le 10/05/2003
Page 71 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
End Property
Public Property Let prix(montant)
prix_livre = FormatNumber(montant,2,-1)
End Property
Public Property Get prix
prix = prix_livre
End Property
Public Property Get convFrancsEuro
convFrancsEuro = FormatNumber(prix_livre * (1 / 6.55957),2)
End Property
Public Sub reduction(taux)
if taux > 5 then
taux = 5
End If
prix_livre = FormatNumber(prix_livre - (prix_livre * taux / 100),2,-1)
End Sub
End Class
Dim objet
Set objet = New livre
objet.titre = "ASP 3.0 : Le guide du développeur"
objet.prix = 298.00
Response.Write "<h2>Le livre " & objet.titre & "</h2>" _
& "<h4>Prix : " & objet.prix & " Francs "
Response.Write "<em style='font-size:10pt'>(" _
& objet.convFrancsEuro & " Euro)</em></h4>"
objet.reduction 5
Response.Write "<h4 style='color:green'>Si vous êtes abonnés, "
& "vous bénéficiez d'une réduction de maximum 5%.</h4>"
Response.Write "<h4>Prix réduit : " & objet.prix & " Francs</h4>"
Set objet = Nothing
%>
</body>
</html>
Instruction
Description
Property Get Déclare le nom, les arguments et le code formant une procédure Property qui obtient
(renvoie) la valeur d'une propriété.
Property Let
Déclare le nom, les arguments et le code formant une procédure Property qui affecte la
valeur d'une propriété.
Property Set Déclare le nom, les arguments et le code formant une procédure Property qui définit la
référence à un objet.
Modifié le 10/05/2003
Page 72 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.16 / L'instruction Class
L'instruction Class permet de déclarer le nom d'une classe, et également de définir les variables,
les propriétés et les méthodes afférentes à cette classe.
Class Nom
' Instructions...
End Class
Nom spécifie l'appellation de la classe.
Instructions représentent n'importe quelles instructions VBScript permettant de définir des variable,
propriétés et méthodes appropriées à la création de classes.
Exemple : [voir]
<html>
<body>
<%
Class livre
Private titre_livre
Private prix_livre
Private Sub Class_Initialize
Response.Write "<p><i>La classe est initialisée</i></p>"
End Sub
Private Sub Class_Terminate
Response.Write "<p><i>La classe est détruite</i></p>"
End Sub
Public Property Let titre(valeur)
titre_livre = valeur
End Property
Public Property Get titre
titre = titre_livre
End Property
Public Property Let prix(montant)
prix_livre = FormatNumber(montant,2,-1)
End Property
Public Property Get prix
prix = prix_livre
End Property
Public Property Get convFrancsEuro
convFrancsEuro = FormatNumber(prix_livre * (1 / 6.55957),2)
End Property
Public Sub reduction(taux)
if taux > 5 then
taux = 5
End If
prix_livre = FormatNumber(prix_livre - (prix_livre * taux / 100),2,-1)
End Sub
End Class
Dim objet
Set objet = New livre
objet.titre = "ASP 3.0 : Le guide du développeur"
objet.prix = 298.00
Response.Write "<h2>Le livre " & objet.titre & "</h2>" _
& "<h4>Prix : " & objet.prix & " Francs "
Response.Write "<em style='font-size:10pt'>(" _
& objet.convFrancsEuro & " Euro)</em></h4>"
objet.reduction 5
Modifié le 10/05/2003
Page 73 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
Response.Write "<h4 style='color:green'>Si vous êtes abonnés, "
& "vous bénéficiez d'une réduction de maximum 5%.</h4>"
Response.Write "<h4>Prix réduit : " & objet.prix & " Francs</h4>"
Set objet = Nothing
%>
</body>
</html>
Modifié le 10/05/2003
Page 74 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.17 / Les événements d'une classe
L'événement Initialize se produit lorsqu'une instance de la classe associée est créée, alors que
l'événement Terminate intervient lors de son terme.
Private Sub Class_Initialize()
'instructions...
End Sub
Private Sub Class_Terminate()
'instructions...
End Sub
Les deux procédures permettent de capturer leur événement respectif, et subséquemment, d'exécuter
les instructions contenues.
Exemple :
Class TestClass
'Configuration de l'événement Initialize.
Private Sub Class_Initialize
MsgBox("Classe_de_test démarré")
End Sub
'Configuration de l'événement Terminate.
Private Sub Class_Terminate
MsgBox("Classe_de_test terminé")
End Sub
End Class
'Création d'une instance de Classe_de_test.
Set X = New Classe_de_test
'Destruction de l'instance.
Set X = Nothing
Modifié le 10/05/2003
Page 75 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.18 / L'instruction Exit
L'instruction Exit permet de sortir des boucles (For, Do), des fonctions (Function), des
procédures (Sub) ou propriétés (Property).
For...To
' Instructions...
Exit For
' Instructions...
Next
Function...
' Instructions...
Exit Function
' Instructions...
End Function
For Each...
' Instructions...
Exit For
' Instructions...
Next
Sub...
' Instructions...
Exit Sub
' Instructions...
End Sub
Do[...]
' Instructions...
Exit Do
' Instructions...
Loop[...]
Property...
' Instructions...
Exit Property
' Instructions...
End Property
L'instruction Exit interrompt immédiatement un des éléments précités et provoque la reprise du
déroulement du programme immédiatement après la commande de fin, Next, Loop, End....
Dans le cas de boucles imbriquées, la sortie provoque une reprise du programme à partir de la
boucle de niveau immédiatement supérieur.
Exemple : [voir]
<html>
<head>
<script language="VBScript" type="text/vbscript">
<!-Sub validation
Dim i, nombre, choix, doc, j
i=1
Set doc = Document.forms("formulaire")
choix = doc.valeur.Value
If choix >= 1 And choix <= 4 Then
Do While i <= 10
For j = 1 To 5
Select Case choix
Case 1
MsgBox "Vous sortez de la boucle For" _
& chr(13) & "i = " & i & " et j = " & j
Exit For
Case 2
MsgBox "Vous sortez de la boucle Do Loop"
Exit Do
Case 3
MsgBox "Vous sortez de la procédure"
Exit Sub
Case 4
MsgBox "i = " & i & " et j = " & j
End Select
Next
i=i+1
Loop
Else
MsgBox "Veuillez entrer une valeur numérique " _
& "entre 1 et 4 !" & chr(13) & "Merci !"
End If
End Sub
-->
</script>
</head>
<body>
<p>Veuillez une des valeurs suivante :</p>
<ol>
Modifié le 10/05/2003
Page 76 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
<li>pour sortir de la boucle For...Next</li>
<li>pour sortir de la boucle Do...Loop</li>
<li>pour sortir de la procédure Sub</li>
<li>pour accomplir les tours de boucles.</li>
</ol>
<form id="formulaire"
action="exit.asp"
onsubmit="validation(); return false;"
language="jscript">
<input name="valeur" type="text" size="3">
<input name="Valider" type="submit" value="Valider">
</form>
</body>
</html>
Modifié le 10/05/2003
Page 77 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.19 / L'instruction Set
L'instruction Set permet d'affecter une référence d'objet à une variable ou à une propriété.
Set variable_objet = Expression | New Nom_Classe | Nothing
Expression correspond à un nom d'objet, à une variable comportant un type d'objet identique, ou bien
une fonction ou une méthode retournant un même type d'objet.
New Nom_Class initialise une nouvelle classe.
Nothing libère l'espace mémoire de la variable en détruisant notamment, une classe précédemment
initialisée.
L'instruction Set peut également associer une référence de procédure à un événement.
Set object.Nom_Evénement = GetRef(Nom_Fonction)
Nom.Evénement représente le nom de l'événement à associée.
Nom_Fonction peut être une fonction ou une procédure déclarée par respectivement Function ou Sub.
Exemple : [voir]
<html>
<body>
<%
' Page hôte affichant les bannières aléatoires.
Dim objet
' Création de l'objet
Set objet = Server.CreateObject("MSWC.AdRotator")
Response.Write objet.GetAdvertisement("liste.txt")
' Destruction de l'objet
Set objet = Nothing
%>
</body>
</html>
' Fichier de redirection des liens : lien.asp
<%
Response.Redirect Request.QueryString("url")
%>
' Fichier présentant le liste des bannières et liens : liste.txt
REDIRECT lien.asp
WIDTH 468
HEIGHT 60
BORDER 0
*
http://www.laltruiste.com/coursasp/images/alapage.gif
http://www.alapage.com/
Visitez la librairie en ligne!
4
http://www.laltruiste.com/coursasp/images/blackorange.gif
http://www.blackorange.com/
Découvrez la logithèque en ligne !
3
http://www.laltruiste.com/coursasp/images/oreilly.gif
http://www.editions-oreilly.com/
Découvrez le célèbre éditeur de livres !
3
Modifié le 10/05/2003
Page 78 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.20 / Les instructions d'exécution
Les instructions d'exécutions permettent d'exécuter d'une à plusieurs instructions.
L'instruction Execute
exécute les instructions contenues dans ses arguments.
Execute instruction: instruction2:...
Les instructions doivent être placées entre des guillemets et être séparés soit par un caractère deuxpoints : ou par un caractère de saut de ligne ch(10).
L'instruction ExecuteGlobal
exécute des instructions dans l'espace de nom global d'un script.
Dans le cadre de l'espace de nom global, l'instruction donnera un résultat qui dépendra des variables
globales du script et non des locales.
Execute instruction: instruction2:...
Les instructions obéissent ici aux mêmes règles que précitées.
Exemple : [voir]
<html>
<body>
<%
Dim taille, valeur
taille = 10
valeur = 8
Sub procedure
Dim taille
taille = 2
ExecuteGlobal "Sub affiche: Response.Write taille * valeur: End Sub"
' affiche produit 10 * 8 = 80
affiche
' affiche2 produit 10 * 8 = 16
Response.Write taille * valeur & "<br>"
Execute "Sub affiche2: Response.Write taille * valeur: End Sub"
' affiche2 produit 10 * 8 = 16
affiche2
End Sub
Execute "Sub affiche3: Response.Write taille * valeur: End Sub"
' affiche produirait une erreur car la fonction
' n'est pas disponible hors de la procédure.
' affiche
' affiche3 produit 10 * 8 = 80
affiche3
' affiche2 produit 10 * 8 = 16
Response.Write taille * valeur & "<br>"
' Appel de la procédure Sub class="rem"
procedure
%>
</body>
</html>
Modifié le 10/05/2003
Page 79 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
10.21 / Les instructions de gestions d'erreurs
L'instruction On Error permet d'activer la gestion des erreurs dans des programmes Visual Basic
Script.
On Error...
L'instruction On Error Resume Next
évite l'interruption du déroulement d'un script lorsqu'une erreur se produit, et partant, les erreurs
pourront être traitées par le programmeur à l'aide d'une instruction spécifique, en l'occurrence l'objet Err
conservant les références de l'erreur en cours.
On Error Resume Next
L'instruction On Error Goto 0
provoque la reprise en charge des erreurs par le système, c'est-à-dire lorsqu'une erreur intervient, le
programme s'interrompera immédiatement.
On Error Goto 0
Exemple : [voir]
<html>
<body>
<%
Public x
Public y
x = 10
On Error Resume Next
Response.Write "Division " & x & " / " & y & " = " & x / y
' Une erreur a été détectée, pourtant le traitement continue...
If Err.Number <> 0 Then
Response.Write "<br>Une erreur s'est produite !" & chr(13) _
& "n°" & Err.Number & " :" & chr(13) & Err.Description
End If
y=2
On Error Goto 0
Response.Write "<br>Division " & x & " / " & y & " = " & x / y
%>
</body>
</html>
Modifié le 10/05/2003
Page 80 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11 / Les objets
Le langage VBScript ne contient que quelques objets.
Les objets disponibles sont des variables de types classes, conteneurs d'erreurs ou liés aux expressions
régulières.
Sommaire
11.1 / L'objet Class
11.2 / L'objet Err
11.3 / L'objet RegExp
11.4 / L'objet Match
11.5 / L'objet Matches
11.6 / L'objet SubMatches
Modifié le 10/05/2003
Page 81 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.1 / L'objet Class
L'objet Class produit par l'instruction Class, permet d'accéder aux propriétés, méthodes et
événements de la classe.
Une classe ne peut être créée de façon de explicite, il est nécessaire de s'appuyer sur une classe
existante pour déclarer une variable du même type.
Class Nom_Classe
'Instructions...
End Class
Dim objet_classe
Set objet_classe = New Nom_Classe
L'objet de type classe ainsi créé, peut ensuite utiliser n'importe quelles propriétés, méthodes définies par
la classe concernée.
objet_classe.propriété = valeur
objet_class.méthode = résultat
Les deux événements intrinsèques de l'objet classe permettent d'initialiser ou de détruire la variable
objet.
' Initialise l'objet en s'appuyant sur l'événement ' Initialize déclaré dans la définition de classe
Set objet_classe = New Nom_Classe
' Détruit l'objet en s'appuyant sur l'événement ' Terminate déclaré dans la définition de classe
Set objet_classe = Nothing
Exemple : [voir]
<html>
<body>
<%
Class livre
Private titre_livre
Private prix_livre
Private Sub Class_Initialize
Response.Write "<p><i>La classe est initialisée</i></p>"
End Sub
Private Sub Class_Terminate
Response.Write "<p><i>La classe est détruite</i></p>"
End Sub
Public Property Let titre(valeur)
titre_livre = valeur
End Property
Public Property Get titre
titre = titre_livre
End Property
Public Property Let prix(montant)
prix_livre = FormatNumber(montant,2,-1)
End Property
Public Property Get prix
prix = prix_livre
End Property
Public Property Get convFrancsEuro
convFrancsEuro = FormatNumber(prix_livre * (1 / 6.55957),2)
End Property
Public Sub reduction(taux)
Modifié le 10/05/2003
Page 82 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
if taux > 5 then
taux = 5
End If
prix_livre = FormatNumber(prix_livre - (prix_livre * taux / 100),2,-1)
End Sub
End Class
Dim objet
Set objet = New livre
objet.titre = "ASP 3.0 : Le guide du développeur"
objet.prix = 298.00
Response.Write "<h2>Le livre " & objet.titre & "</h2>" _
& "<h4>Prix : " & objet.prix & " Francs "
Response.Write "<em style='font-size:10pt'>(" _
& objet.convFrancsEuro & " Euro)</em></h4>"
objet.reduction 5
Response.Write "<h4 style='color:green'>Si vous êtes abonnés, "
& "vous bénéficiez d'une réduction de maximum 5%.</h4>"
Response.Write "<h4>Prix réduit : " & objet.prix & " Francs</h4>"
Set objet = Nothing
%>
</body>
</html>
Modifié le 10/05/2003
Page 83 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.2 / L'objet Err
L'objet Err constitue la solution de gestion des erreurs d'exécutions ou de syntaxes d'un
programme VBScript.
Les propriétés
L'objet Err contient cinq informations, le numéro, la description et la source de l'erreur ainsi qu'un
identificateur contextuel et une adresse d'un fichier d'aide.
Ces informations sont accessibles à partir des cinq propriétés citées ci-dessous.
Propriété
Description
Err.Number
donne le numéro de l'erreur.
Err.Description
donne le message d'erreur.
Err.Source
donne le nom du composant responsable de l'erreur.
Err.HelpContext[=contextID]
définit ou retourne un identificateur de contexte pour une rubrique dans un fichier d'aide.
Err.HelpFile[=contextID]
définit ou retourne le chemin complet d'un fichier d'aide.
Les méthodes
Deux méthodes permettent soit de générer une erreur sciemment, soit d'effacer les propriétés de l'objet
Err.
Propriété
Description
Err.Clear
réinitialise le gestionnaire d'erreur.
Err.Raise(Numéro, Source, Description, Fichier_Aide, Contexte_Aide)
génére une erreur.
Paramètre
Description
Numéro
Nombre entier représentant le numéro d'identification de l'erreur.
Source
Chaîne de caractères représentant l'élément du script ayant provoqué l'erreur.
Description
Chaîne de caractères représentant le message d'erreur.
Fichier_Aide
URL (Uniform Resource Locator) pointant le fichier d'aide associé à l'erreur.
Contexte_Aide Identificateur contextuel pointant une rubrique dans le fichier d'aide spécifié ci-
dessus.
Exemple : [voir]
<-- Fichier érroné --> <!--#include file="identiferr.asp" -->
<html>
<head>
<title>Démonstration de Err</title>
</head>
<body>
Modifié le 10/05/2003
Page 84 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
<%
On Error Resume Next
Response.Write 100 / 0
HandleError("Division par zéro ! Ligne 9")
%>
<-- Fichier inclus identiferr.asp -->
<%
Sub HandleError(sourceErreur)
If Err.Number = 0 Then Exit Sub
%>
<h3>--> Une erreur a été détectée ! <--</h3>
<DL>
<DT><U>Numéro :</u></dt>
<DD><% = Err.Number %></dd>
<DT><U>Description :</u></dt>
<DD><% = Err.Description %></dd>
<DT><U>Source :</u></dt>
<DD><% = Err.Source %></dd>
<DT><U>Fichier concernée :</u></dt>
<DD><% = Request.ServerVariables("PATH_TRANSLATED") %></dd>
<DT><U>Adresse du fichier :</u></dt>
<DD><% = Request.ServerVariables("URL") %></dd>
<DT><U>Localisation :</u></dt>
<DD><% = sourceErreur %></dd>
</dl>
</body>
</html>
<%
Response.End
End Sub
%>
Modifié le 10/05/2003
Page 85 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.3 / L'objet RegExp
L'objet RegExp permet de créer des expressions régulières.
Set objet = New RegExp
Les propriétés
Propriété
Description
objet.Global [=True|False]
définit ou retourne une valeur logique indiquant si toutes les occurrences d'une chaîne de caractères
de recherche ou seulement la première chaîne doivent satisfaire aux critères.
objet.IgnoreCase [=True|False]
définit ou retourne une valeur logique indiquant si les critères de recherche doivent distinguer la casse
des caractères.
objet.Pattern [="chaîne"]
définit ou retourne les critères de recherche de l'expression régulière.
Les méthodes
Méthode
Description
objet.Execute(chaîne)
exécute une recherche de la chaîne de caractères passée en argument dans une expression régulière.
objet.Replace(recherche, remplace)
remplace la première chaîne de caractères recherche trouvée dans l'expression régulière par la
seconde remplace.
objet.Test(Chaîne)
teste la présence d'une chaîne de caractères passée en argument dans une expression régulière.
Exemple : [voir]
<html>
<body>
<%
Dim texte, resultat
Function recherche(modele, chaine)
Dim objet
Dim correspondance
Dim collection
Set objet = New RegExp
objet.Pattern = modele
objet.IgnoreCase = True
objet.Global = True
Set collection = objet.Execute(chaine)
For Each correspondance in collection
resultat = resultat & "<tr><td>" & correspondance.FirstIndex _
& "</td><td>" & correspondance.Value & "</td></tr>"
Next
recherche = resultat
End Function
texte = "Le chercheur d'opale a trouvé une belle pierre dans " _
& "une galerie sinistre, pour le plus grand bonheur de " _
& "la population occidentale qui pourtant se désolerait " _
& " de travailler dans de telles conditions inhumaines."
Modifié le 10/05/2003
Page 86 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
resultat = recherche(_
"\b[a-zA-Zàâäéèêëïîôöùûç]*le[a-zA-Zàâäéèêëïîôöùûç]*\b",_
texte)
Response.Write "<h3>Liste des mots contenant la " _
& "chaîne de caractères <I>le</I></h3>" _
& "<h4>Texte</h4><p>" & texte & "</p>" _
& "<table border='1' cellpadding='3'>" _
& "<tr><th>Position</th><th>Mot</th></tr>" _
& resultat & "</table>"
%>
</body>
</html>
Modifié le 10/05/2003
Page 87 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.4 / L'objet Match
L'objet Match fournit un accès aux propriétés d'une mise en correspondance d'expression
régulière.
Les propriétés
L'objet Err contient cinq informations, le numéro, la description et la source de l'erreur ainsi qu'un
identificateur contextuel et une adresse d'un fichier d'aide.
Ces informations sont accessibles à partir des cinq propriétés citées ci-dessous.
Propriété
Description
objet.FirstIndex
indique la position dans une chaîne de recherche où une correspondance a été trouvée.
objet.Length
retourne la longueur d'une correspondance dans une chaîne de recherche.
objet.Value
retourne la valeur d'une correspondance dans une chaîne de recherche.
Exemple : [voir]
<html>
<body>
<%
Dim texte, resultat
Function recherche(modele, chaine)
Dim objet
Dim correspondance
Dim collection
Set objet = New RegExp
objet.Pattern = modele
objet.IgnoreCase = True
objet.Global = True
Set collection = objet.Execute(chaine)
For Each correspondance in collection
resultat = resultat & "<tr><td>" & correspondance.FirstIndex _
& "</td><td>" & correspondance.Value & "</td></tr>"
Next
RegExpTest = resultat
End Function
texte = "Le chercheur d'opale a trouvé une belle pierre dans " _
& "une galerie sinistre, pour le plus grand bonheur de " _
& "la population occidentale qui pourtant se désolerait " _
& " de travailler dans de telles conditions inhumaines."
resultat = recherche(_
"\b[a-zA-Zàâäéèêëïîôöùûç]*le[a-zA-Zàâäéèêëïîôöùûç]*\b",_
texte)
Response.Write "<h3>Liste des mots contenant la " _
& "chaîne de caractères <I>le</I></h3>" _
& "<h4>Texte</h4><p>" & texte & "</p>" _
& "<table border='1' cellpadding='3'>" _
& "<tr><th>Position</th><th>Mot</th></tr>" _
& resultat & "</table>"
%>
</body>
</html>
Modifié le 10/05/2003
Page 88 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.5 / L'objet Matches
L'objet Matches contient une collection de correspondances créées par l'objet Match.
objet.Matches(n)
Les propriétés
Propriété
Description
objet.Count
retourne le nombre de correspondances présentes dans une collection.
objet.Item(clé)
retourne un item basé sur l'argument clé spécifiée.
Exemple : [voir]
<html>
<body>
<%
Dim texte, resultat
Function recherche(modele, chaine)
Dim objet
Dim correspondance
Dim collection
Set objet = New RegExp
objet.Pattern = modele
objet.IgnoreCase = True
objet.Global = True
Set collection = objet.Execute(chaine)
For Each correspondance in collection
resultat = resultat & "<tr><td>" & correspondance.FirstIndex _
& "</td><td>" & correspondance.Value & "</td></tr>"
Next
RegExpTest = resultat
End Function
texte = "Le chercheur d'opale a trouvé une belle pierre dans " _
& "une galerie sinistre, pour le plus grand bonheur de " _
& "la population occidentale qui pourtant se désolerait " _
& " de travailler dans de telles conditions inhumaines."
resultat = recherche(_
"\b[a-zA-Zàâäéèêëïîôöùûç]*le[a-zA-Zàâäéèêëïîôöùûç]*\b",_
texte)
Response.Write "<h3>Liste des mots contenant la " _
& "chaîne de caractères <I>le</I></h3>" _
& "<h4>Texte</h4><p>" & texte & "</p>" _
& "<table border='1' cellpadding='3'>" _
& "<tr><th>Position</th><th>Mot</th></tr>" _
& resultat & "</table>"
%>
</body>
</html>
Modifié le 10/05/2003
Page 89 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
11.6 / L'objet SubMatches
L'objet SubMatches représente une collection de sous-correspondances.
objet.SubMatches(n)
Une sous-correspondance provient d'un modèle d'expression régulière décomposé par des sousexpressions entre parenthèses.
objet.modèle = "...(sous-expression)...(sous-expressionN)..."
' N valant au maximum 99
objet.Pattern = "(\w+)@(\w+).(\w+)"
L'exmple ci-dessus permet de décomposer une adresse email en trois sous-correspondances $1, $2 et
$3 ou en utlisant l'objet SubMatches en :
' correspond à objet.$1 et donc (\w+) avant @.
objet.SubMatches(0)
' correspond à objet.$2 et donc (\w+) après @.
objet.SubMatches(1)
' correspond à objet.$3 et donc (\w+) après le point.
objet.SubMatches(2)
Les propriétés
Propriété
Description
objet.Count
retourne le nombre de correspondances présentes dans une collection.
objet.Item(clé)
retourne un item basé sur l'argument clé spécifiée.
Exemple : [voir]
<html>
<body>
<%
Dim adresse, resultat
Function recherche(modele, chaine)
Dim objet
Dim correspondance
Dim collection
Dim i, fin, tableau
Set objet = New RegExp
objet.Pattern = modele
objet.IgnoreCase = True
objet.Global = True
Set collection = objet.Execute(chaine)
Set correspondance = collection(0)
resultat = "<tr><td>Protocole</td><td>" _
& correspondance.SubMatches(0) & "</td></tr>" _
& "<tr><td>Domaine</td><td>" _
& correspondance.SubMatches(1) & "</td></tr>" _
& "<tr><td>Port</td><td>" _
& correspondance.SubMatches(2) & "</td></tr>" _
& "<tr><td>Répertoire</td><td>" _
& correspondance.SubMatches(3) & "</td></tr>" _
& "<tr><td>Fichier</td><td>" _
& correspondance.SubMatches(4) & "</td></tr>" _
& "<tr><td>Ancre</td><td>" _
& correspondance.SubMatches(5) & "</td></tr>"
Modifié le 10/05/2003
Page 90 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
recherche = resultat
End Function
adresse = "http://www.laltruiste.com:80/coursasp/sommaire.html#ancre"
resultat = recherche(_
"(\w+):\/\/([^/:]+):?(\d*)?\/(.*[^.])\/(\w+.\w+)#?(\w+)?", _
adresse)
Response.Write "<h3>Décomposition d'une adresse URL " _
& "(Uniform Resource Locator)</h3>" _
& "<h4>URL : " & adresse & "</h4>" _
& "<table border='1' cellpadding='3'>" _
& resultat & "</table>"
%>
</body>
</html>
Modifié le 10/05/2003
Page 91 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
12 / Les caractères spéciaux
Les caractères spéciaux permettent d'affiner une recherche, là où une expression régulière
simple ne peut suffire.
Les caractères et autres symboles spéciaux représentent des caractères non-imprimables comme des
sauts de lignes (\n), des tabulations (\t) ou des options particulières ou encore des plages de lettres ou
de chiffres, etc.
Caractère
\\, \/, \*, \+, \?, etc.
^
$
*
Description
Exemple
Symbolise les caractères correspondants
modele="2\*8\+1"
' recherche la chaîne 2*8+1
Symbolise le début d'une chaîne de caractères
modele="^Le"
' recherche Le
en début de phrases
Symbolise la fin d'une chaîne de caractères
modele="\.$"
' recherche un point à la fin
d'une chaîne de caractères
Le caractère précédent peut intervenir de zéro à
plusieurs fois
modele="10*"
' recherche les nombres commençant
par 1 avec éventuellement des zéros
Le caractère précédent doit être trouvé de une à
plusieurs fois
modele="\t+"
' recherche de une à
plusieurs tabulations
Le caractère précédent est optionnel
modele="mots?"
' recherche mot au singulier
ou au pluriel
Le caractère représente un caractère quelconque
sauf un saut de ligne
modele=".n.?"
' recherche tous les mots de deux
ou éventuellement de trois lettres
contenant un n au centre comme
en ou une
(modèle)
Les parenthèses divisent le modèle en plusieurs
zones accessibles par les propriétés $n
modele="VB(Script)?"
' recherche le mot VBScript ou VB
(?:modèle)
Le modèle recherche une correspondance sans la
stocker
modele="\b.*(?:Script)"
' recherche le mot VBScript
ou JavaScript ou encore JScript
(?=modèle)
Le modèle trouve une chaîne de recherche
contenant le modèle sans que ce-dernier fasse
parti du résultat
modele="Cent(?=Francs|Euros)"
' trouve la chaîne cent de Cent Francs
Le modèle trouve une chaîne de recherche ne
contenant pas le modèle sans que ce-dernier
fasse parti du résultat
modele="Cent(?!Francs|Euros)?"
' trouve le mot Cent de Cent Dollars
mais pas Cent de Cent Francs
x|y
le pipe agît comme un OU, une des possibilités
doit être trouvée
modele="html|css"
' recherche html
ou css ou les deux
{n}
Le caractère précédent doit être trouvé un nombre
n fois
modele="continu{2}m"
' recherche le mot continuum
+
?
.
(?!modèle)
{n,m}
ou Cent de Cent Euros
modele="10{3,9}"
Le caractère précédent doit être trouvé au moins n ' recherche d'un nombre
fois et au plus m fois
3
9
de 10 ou de 10
Modifié le 10/05/2003
Page 92 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
{n, }
[...]
[...-...]
[^...]
Le caractère précédent doit être trouvé au moins n modele="10{1,}"
fois et ou plus
' recherche un nombre de 10 à 10n
Les crochets contiennent des caractères, dont l'un
doit être trouvé
Les crochets contiennent une plage de caractères
dont l'un doit être trouvé
La recherche porte sur des caractères qui ne sont
pas contenus entre les crochets
\b
La recherche s'effectue sur les limites d'un mot
comme un espace ou une nouvelle ligne
modele="parti[res]?"
' recherche l'un des mots suivants :
parti, partir, partie ou partis
modele="[a-b]"
' recherche un caractère faisant
partie des lettres minuscules
modele="exécut[^(ion)]"
' ne recherche pas le mot exécution
mais exécuta ou exécuter, etc.
modele="x\b"
' recherche la lettre x suivie d'un
espace ou d'un saut de ligne comme
peaux, sceaux mais pas exiger
\B
La recherche s'effectue sur un espace qui n'est
pas placé entre un mot et un espace
modele="x/B"
' recherche la lettre x qui n'est pas
suivie d'un espace ou d'un saut de
ligne comme xylophone ou axe
mais pas eux
La recherche s'effectue sur un chiffre quelconque
de 0 à 9
modele="\d000"
' recherche un nombre
comme 1000, 2000, etc.
La recherche porte sur un caractère quelconque
hormis un chiffre de 0 à 9
modele="10\D10"
' recherche une chaîne de
caractère comme 10,10
ou 10.10 ou encore 10=10
\f
La recherche porte sur un saut de page
modele="\f"
' recherche un saut de page
\n
La recherche porte sur un caractère de saut de
ligne
modele="\.\n"
' recherche un saut de ligne
après un point
La recherche porte sur un retour charriot
modele="\.\r"
' recherche un retour charriot
après un point
\s
Cette occurrence permet une recherche sur un
espace, une tabulation, un saut de ligne, etc.
modele="\s"
' recherche un de ces
caractères [\f\n\r\t\v].
\S
La recherche porte sur tous les caractères hormis,
l'espace, la tabulation, le saut de ligne, etc.
modele="\S"
' recherche tous les caractères
sauf ceux-ci [^\f\n\r\t\v].
\t
La recherche porte sur une tabulation
modele="\t"
' recherche une tabulation
La recherche porte sur un tabulation verticale
modele="\v"
' recherche une
tabulation verticale
La recherche porte sur tous caractères faisant
partie d'un mot
modele="\ws[\b]"
' recherche la lettre s entre un
caractère [A-Za-z0-9_] et un espace
La recherche porte sur tous caractères ne faisant
modele="\W"
' recherche un caractère
\d
\D
\r
\v
\w
\W
Modifié le 10/05/2003
Page 93 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
\n
\num
\xhex
pas partie d'un mot
sauf ceux-ci [^A-Za-z0-9_]
Le nombre n correspond à une valeur
d'échappement octale
modele="\011"
' recherche le caractère
d'échappement tabulation
Le nombre numcorrespond à un entier positif
modele="(,)\1"
' recherche deux caractères
virgules consécutifs
Cette formulation permet de trouver un caractère
par son code octal ou hexadécimal
modele="\x0028ASCII\x0029"
' recherche le mot ASCII
entre des parenthèses
Modifié le 10/05/2003
Page 94 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
13 / Les méthodes
Le langage VBScript est composé de quelques méthodes permettant d'accomplir certaines
opérations sur les variables objets d'un programme.
objet.méthode
Les méthodes s'appliquent soit à des variables de chaînes de caractères soit à des objets liés aux
erreurs.
Méthode
Description
Objet
Execute Exécute une recherche d'expression régulière dans une chaîne de caractères
RegExp
Replace Remplace le texte trouvé dans une recherche d'expression régulière.
RegExp
spécifiée.
Test
Déclenche une recherche d'expression régulière dans une chaîne de caractères
spécifiée.
RegExp
Clear
Efface les valeurs des propriétés de l'objet Err.
Err
Raise
Produit une erreur d'exécution.
Err
Modifié le 10/05/2003
Page 95 sur 96
L'Altruiste : Le guide des langages Web - Le langage VBScript
14 / Les propriétés
Le langage VBScript est composé de quelques propriétés permettant de définir ou retourner
certaines informations sur les variables objets d'un programme.
objet.méthode
Méthode
Description
Objet
Count
Retourne le nombre d'éléments d'une collection.
Matches SubMatches
Description
Retourne ou définit une chaîne descriptive associée à une
erreur.
Err
FirstIndex
Indique la position dans une chaîne de recherche où une
correspondance a été trouvée.
Match
Global
Définit ou retourne une valeur booléenne.
RegExp
HelpContext Définit ou retourne un identificateur de contexte pour une
rubrique dans un fichier d'aide.
Err
HelpFile
Définit ou retourne le chemin complet d'un fichier d'aide.
Err
IgnoreCase
Définit ou retourne une valeur booléenne indiquant si les critères
de recherche font la distinction entre les minuscules et les
majuscules.
RegExp
Item
Retourne un item basé sur la clé spécifiée.
Matches SubMatches
Length
Retourne la longueur d'une correspondance trouvée dans une
chaîne de recherche.
Match
Number
Retourne ou définit une valeur numérique spécifiant une erreur.
Err
Pattern
Définit ou retourne le modèle d'expression régulière recherché.
RegExp
Source
Retourne ou définit le nom de l'objet ou de l'application qui est à
l'origine de l'erreur.
Err
Value
Retourne la valeur ou le texte d'une correspondance trouvée
dans une chaîne de recherche.
Match
Modifié le 10/05/2003
Page 96 sur 96

Documents pareils