103
L'Altruiste : Le langage VBScript 1 1 sur 103 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/Les instructions liées aux tableaux 10.4/Utilisation des tableaux 10.5/L'instruction Const 10.6/L'instruction Randomize 10.7/L'instruction Do...Loop 10.8/L'instruction While...Wend 10.9/L'instruction For...Next 10.10/L'instruction For Each...Next 10.11/L'instruction If Then Else 10.12/L'instruction Select Case 10.13/L'instruction With 10.14/Déclaration de fonctions et procédures 10.15/L'instruction Call 10.16/L'instruction Property 10.17/L'instruction Class 10.18/Les événements d'une classe 10.19/L'instruction Exit

L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 1

1 sur 103

L'Altruiste : Le guide des langages Web

Le langage VBScript

Sommaire1/Introduction2/L'environnement de développement3/Insertion des scripts4/Les types de variables5/Les mots-clés6/Les opérateurs6.1/Les opérateurs d'affectation6.2/Les opérateurs arithmétiques6.3/Les opérateurs booléens6.4/Les opérateurs de comparaisons6.5/Les opérateurs de concaténations6.6/La priorité des opérateurs

7/Les constantes prédéfinies7.1/Les constantes 3-états7.2/Les constantes d'attributs de fichiers7.3/Les constantes chaînes de caractères7.4/Les constantes de couleur7.5/Les constantes de comparaison7.6/Les constantes date/heure7.7/Les constantes de dossiers spéciaux7.8/Les constantes d'entrée/sortie de fichiers7.9/La constante d'erreur7.10/Les constantes de format date/heure7.11/Les identificateurs de langue7.12/Les constantes de msgbox7.13/Les constantes de types de variable

8/Les erreurs dans VBScript8.1/Les erreurs d'exécutions8.2/Les erreurs de syntaxe

9/Les fonctions9.1/Les fonctions de conversion et de mise en forme9.2/Les fonctions sur les chaînes de caractères9.3/Les fonctions mathématiques9.4/Les fonctions sur les dates et les heures9.5/Les fonctions sur les tableaux9.6/Les autres fonctions

10/Les instructions10.1/Les commentaires10.2/Déclaration de variables10.3/Les instructions liées aux tableaux10.4/Utilisation des tableaux10.5/L'instruction Const10.6/L'instruction Randomize10.7/L'instruction Do...Loop10.8/L'instruction While...Wend10.9/L'instruction For...Next10.10/L'instruction For Each...Next10.11/L'instruction If Then Else10.12/L'instruction Select Case10.13/L'instruction With10.14/Déclaration de fonctions et procédures10.15/L'instruction Call10.16/L'instruction Property10.17/L'instruction Class10.18/Les événements d'une classe10.19/L'instruction Exit

Page 2: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 2

2 sur 103

10.20/L'instruction Set10.21/Les instructions d'exécution10.22/Les instructions de gestions d'erreurs

11/Les objets11.1/L'objet Class11.2/L'objet Err11.3/L'objet RegExp11.4/L'objet Match11.5/L'objet Matches11.6/L'objet SubMatches

12/Les caractères spéciaux13/Les méthodes14/Les propriétés

Page 3: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 3

3 sur 103

1 / Introduction

Le langage VBScript est une adaptation pour le Web, du célèbre langage de Microsoft, VisualBasic.

Le VBScript est un langage de script simplifié et orienté objet dont la syntaxe est basée sur celle duVisual Basic pour application. Il est possible de créer des classes avec leurs propres propriétés etméthodes.

Les programmes VBScript sont, la pluart du temps, directement insérés au sein du code HTMLdans 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écutionScripting, 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 pourcré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-commercenotamment.

L'implémentation du code VBScript peut s'effectuer du côté serveur comme du côté client. Cependant, desscripts devant être interpétés par le navigateur du client, risque de se heurter à des risquesd'incompatibilités.

Enfin, les programmeurs avertis ne ressentiront guère de difficultés à se familiariser à ce langage etles débutants devraient par une bonne connaissance des bases de la programmation Internet etcertainement par un bon investissement personnel, réussir à rapidement maîtriser cet outil.

Page 4: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 4

4 sur 103

2 / L'environnement de développement

Travailler sur la technologie VBScript, il est nécessaire de disposer d'un environnment dedéveloppement approprié.

Dans un premier temps, le système d'exploitation de prédilection du VBScript est évidemmentMicrosoft 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 unlogiciel comme Access ou SQL Server, mais également d'autres comme Oracle ou MySQL peuventconstituer une alternative intéressante.

Enfin, bien qu'un éditeur de texte conventionnel soit suffisant pour rédiger des pages VBScript, il estpré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.

Page 5: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 5

5 sur 103

3 / Insertion des scripts

Les scripts écrits en VBScript doivent être intégrés dans une page HTML par le biais d'un balisagespé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 scriptpar défaut au serveur.

<%@ LANGUAGE="VBScript"%>

Des résultats de fonctions ou de variables peuvent être directement insérés au sein d'un balisageHTML 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 quele serveur puisse traiter correctement l'ensemble des scripts VBScript.

Page 6: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 6

6 sur 103

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, commedes nombres entiers ou à virgule flottante, une chaîne de caractères ou encore une valeur logique.

' Variable de sous-type StringVariable = "Chaîne de caractères"' Variable de sous-type IntegerVariable = 50' Variable de sous-type BooleanVariable = True

C'est pourquoi, le type Variant peut contenir diverses valeurs de variables appelées les sous-typesde variables.

Type Description

Empty correspond à une non-initialisation de la variable. La valeur est égale à zéro pour lesvariables numériques et à une chaîne de longueur nulle ("") pour les variables chaîne decaractè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 685477,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.

Date (Time) correspond à un nombre représentant une date entre le 1er janvier 100 et le 31 décembre9999.

String correspond à une chaîne 2 milliards de caractères maximum.

Object correspond à un objet.

Error correspond à un numéro d'erreur.

Page 7: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 7

7 sur 103

5 / Les mots-clés

Le langage VBScript comprend cinq mots-clés permettant d'affecter des valeurs spéciales auxvariables d'un programme.

Le mot-clé Emptysignale que la valeur d'une variable n'est pas encore initialisé.

variable = Empty

Le mot-clé Nullsignifie qu'une variable ne contient pas de valeur valide.

variable = Null

Le mot-clé Truereprésente la valeur binaire 1.

variable = True

Le mot-clé Falsereprésente la valeur binaire 0.

variable = False

Les mots-clés précités peuvent être également utilisés dans des expressions conditionnelles commedans l'exemple ci-dessous.

If variable <> Null Then ' Instructions...End if

Le mot-clé Nothingindique qu'une variable objet est en fin d'utilisation, et partant, libère l'espace mémoire qui lui étaitalloué.

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>

Page 8: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 8

8 sur 103

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.

Page 9: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 9

9 sur 103

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érandedroite.

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 = 10y = 12

x = y'retourne x = 12

Page 10: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 10

10 sur 103

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 ladivision (/).

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 unnombre à 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 ^ yL'opérateur permet de calculer l'exponentiation de la valeur x à la valeur y.

3 ^ 2'retourne 9(3²)

Page 11: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 11

11 sur 103

6.3 / Les opérateurs booléens

Les opérateurs logiques sont typiquement utilisés pour comparer des expressions ou des nombreset retournent en résultat des valeurs booléennes.

Opérateur Usage Description Exemple

And x And yL'opérateur renvoie True si les deux opérandes sontvraies; autrement, il retourne False.

(a < 10) And (b > 10) 'Si a et b sont inférieures à10, l'opérateur retourne True

Or x Or yL'opérateur renvoie True si l'une ou l'autre desopérandes est vraie ou si toutes les deux sont vraies,sinon il retourne False.

(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

L'opérateur renvoie True si l'une des deux opérandesest vraie, sinon il retourne False.

(a >= 1) Xor (b == "fin") 'Si a est supérieur ou égal à1 et 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

L'opérateur renvoie True si les deux opérandes sontvraies ou fausses, sinon il retourne False.

(a >= 1) Eqv (b == "fin") 'Si a est supérieur ou égal à 1 et si b est égal à finou si les deux expressions sont fausses alors l'opérateur renvoie true, sinon il retourne false

Not Not x

L'opérateur renvoie false si son unique opérande peutêtre convertie en true, sinon il retourne false.

Not (a <= 100) 'Si a est inférieur ou égal à100 alors l'opérateur retournefalse, 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.

Page 12: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 12

12 sur 103

Expression1 Expression2 Résultat

True True True

True False False

True Null Null

False True True

False False True

False Null True

Null True True

Null False Null

Null Null Null

L'opérateur Imp effectue une comparaison binaire des bits de position identique dans deuxexpressions numériques et définit le bit correspondant en retour.

Expression1 Expression2 Résultat

0 0 1

0 1 1

1 0 0

1 1 1

Page 13: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 13

13 sur 103

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 = ay = aresultat = x Is y'resultat est égal à True

Page 14: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 14

14 sur 103

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 decaractères, l'opérateur d'enchaînement & permet d'enchaîner deux valeurs de chaîne de caractèresensemble, 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 cetopé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"

Page 15: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 15

15 sur 103

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'uneexpression.

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érateursarithmétiques sont évalués en premier, suivi de l'opérateur de concaténation, puis les opérateurs decomparaison et enfin les opérateurs logiques.

Les opérateurs arithmétiquessont é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énationest évalué avant les opérateurs de comparaisons.

L'opérateur de concaténation

Concaténation de chaînes &

Les opérateurs de comparaisonpossè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 logiquessont évalués dans l'ordre de priorité décrit par le tableau suivant :

Les opérateurs logiques

Page 16: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 16

16 sur 103

1 Non Not

2 Et And

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 ladivision 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 lacomparaison <= est exécuteée afin d'évaluer z par rapport à 2 * x ou (Or) y / 4.

z <= 2 * x Or y / 4

Page 17: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 17

17 sur 103

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.

x

Page 18: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 18

18 sur 103

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

Page 19: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 19

19 sur 103

7.2 / Les constantes d'attributs de fichiers

Les constantes d'attributs de fichiers peuvent être utilisées n'importe où dans un programmeVBScript 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é.

Page 20: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 20

20 sur 103

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 programmeVBScript.

Constante Valeurhexadécimale Description

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 pasconfondre avec une chaîne de longueur nulle "".

vbTab Chr(9) Tabulation horizontale.

vbVerticalTab Chr(11) Tabulation verticale, inadaptée à Microsoft Windows.

Page 21: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 21

21 sur 103

7.4 / Les constantes de couleur

Les constantes de couleur peuvent être utilisées n'importe où dans un programme VBScript.

Constante Valeurhexadécimale Description

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 22: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 22

22 sur 103

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.

Page 23: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 23

23 sur 103

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 lastation cliente.

vbUseSystemDayOfWeek 0 Utilise le jour de la semaine spécifié dans les paramètres régionaux dela 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 lanouvelle année.

vbFirstFullWeek 3 Utilise la première semaine complète de l'année.

Page 24: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 24

24 sur 103

7.7 / Les constantes de dossiers spéciaux

Les constantes de dossiers spéciaux peuvent être utilisées n'importe où dans un programmeVBScript ou JScript.

Constante Valeur Description

WindowsFolder 0 indique que le répertoire lecteur:\windows contient des fichiers du systèmed'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.

Page 25: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 25

25 sur 103

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 programmeVBScript 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.

Page 26: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 26

26 sur 103

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 à cettevaleur

Exemple :

Err.Raise Number = vbObjectError + 1000

Page 27: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 27

27 sur 103

7.10 / Les constantes de format date/heure

Les constantes de format date/heure peuvent être utilisées n'importe où dans un programmeVBScript.

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 etune heure. En l'absence de parties décimales, affiche seulement une date. S'iln'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é.

Page 28: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 28

28 sur 103

7.11 / Les identificateurs de langue

Les identificateurs de langues sont utilisés en tant qu'argument dans la fonction SetLocale(ID) ouretournés par la fonction GetLocale().

Ils permettent donc de modifier les paramètres régionaux ou d'obtenir des informations sur ces-derniers.

Page 29: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 29

29 sur 103

Langue Abréviation Codehexadécimal

Codedé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

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

Page 30: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 30

30 sur 103

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

Farsi (Persan) fa 0x0429 1065

Finnois fi 0x040B 1035

Féroen fo 0x0438 1080

Français - standard fr 0x040C 1036

Page 31: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 31

31 sur 103

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

Serbe - Cyrillique sr 0x0C1A 3098

Setswana tn 0x0432 1074

Slovène sl 0x0424 1060

Slovaque sk 0x041B 1051

Page 32: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 32

32 sur 103

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

Page 33: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 33

33 sur 103

7.12 / Les constantes de msgbox

Les constantes des boîtes de messages (msgbox) peuvent être utilisées n'importe où dans unprogramme VBScript.

La plupart des constantes de boîtes de messages affichent dans celles-ci, divers boutons de commandesou 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 à laboî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, toutesles applications sont suspendues jusqu'à ce que l'utilisateur réponde à laboîte de message. Sur les systèmes Win32, cette constante affiche uneboîte de message modale pour l'application, laquelle reste toujours affichéequel que soit le programme que vous utilisez.

D'autres constantes sont utilisées avec la fonction MsgBox afin d'identifier le bouton sur lequell'utilisateur a cliqué.

Constante Valeur 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 34: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 34

34 sur 103

7.13 / Les constantes de types de variable

Les constantes de types de variable peuvent être utilisées n'importe où dans un programmeVBScript.

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

Page 35: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 35

35 sur 103

8 / Les erreurs dans VBScript

x

Page 36: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 36

36 sur 103

8.1 / Les erreurs d'exécutions

Les erreurs d'exécutions interviennent lorsqu'un script Visual Basic Script entreprend une actionque 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

Page 37: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 37

37 sur 103

28 Espace pile insuffisant

14 Espace de chaîne insuffisant

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

Page 38: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 38

38 sur 103

8.2 / Les erreurs de syntaxe

Les erreurs de syntaxes interviennent lorsqu'un script Visual Basic Script tente de s'exécuter alorsqu'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

Page 39: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 39

39 sur 103

1028 While, Until ou fin d'instruction attendu

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

Page 40: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 40

40 sur 103

9 / Les fonctions

Les fonctions prédéfines dans Visual basic Script s'acquittent de multiples tâches dans desprogrammes.

Les fonctions sont ici classées par domaine d'emploi.

Page 41: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 41

41 sur 103

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étairedé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 defin %.

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.

Page 42: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 42

42 sur 103

IsEmpty(expression)

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écimalindique un nombre de positions à affichées après la partie décimale.

Affiche_zéroindique si un zéro non significatif s'affiche pour les valeurs décimales.

Négatif_parenthèseindique s'il faut mettre les valeurs négatives entre parenthèses.

Séparateur_groupeindique 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 valeursconstantes 3-états.

Formatindique par une valeur numérique le format d'affichage de la date et de l'heure.

Page 43: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 43

43 sur 103

9.2 / Les fonctions sur les chaînes de caractères

Page 44: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 44

44 sur 103

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 stockerune 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 autresous-chaî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é desous-chaî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.

StrReverse(chaîne)

Page 45: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 45

45 sur 103

Retourne une chaîne contenant des caractères dont l'ordre a été inversé par rapport à une chaînedonné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épartspécifie la position de départ, par défaut le début de la chaîne.

Comparaisonindique une comparaison binaire par défaut, soit 0 ou vbBinaryCompare, ou bien une comparaisontextuelle, soit 1 ou vbTextCompare.

Délimiteurest un caractère de chaîne utilisé pour séparer des sous-chaînes dans la chaîne retournée, l'espace étantle caractère par défaut. Si la valeur est une chaîne de longueur nulle, alors tous les éléments de la listesont concaténés sans séparateurs.

Page 46: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 46

46 sur 103

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.

Page 47: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 47

47 sur 103

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'ordinateurclient.

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).

Page 48: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 48

48 sur 103

TimeSerial(Heure, Minute, Seconde)

Retourne un Variant de sous-type Date contenant l'heure correspondant à des éléments spécifiquesd'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.

Intervalleest une chaîne de caractères correspondant à un intervalle à utiliser pour calculer la différence entre deuxdates.

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_semaineest une constante indiquant le premier jour de la semaine, par défaut Dimanche.

Page 49: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 49

49 sur 103

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éeest une constante indiquant le premier semaine de l'année incluant le premier janvier.

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 nouvelleannée.

vbFirstFullWeek 3 Commence par la première semaine complète de la nouvelle année.

Abréviationindique par une valeur booléenne si le nom du jour de la semaine doit être abrégé, par défaut False(non-abrégé).

Page 50: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 50

50 sur 103

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é surdes 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é desous-chaî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.

Inclureest une valeur booléenne indiquant s'il faut renvoyer des sous-chaînes incluant ou excluant l'argumentChaîne_recherche.Si la valeur est True, un sous-ensemble du tableau contenant l'argument Chaîne_recherche commesous-chaîne est retourné.Si la valeur est False, un sous-ensemble du tableau ne contenant pas l'argument Chaîne_recherchecomme sous-chaîne est retourné.

Comparaisonindique une comparaison binaire par défaut, soit 0 ou vbBinaryCompare, ou bien une comparaisontextuelle, soit 1 ou vbTextCompare.

Page 51: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 51

51 sur 103

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 unbouton 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 retourneune 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ètresré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.

Promptest une chaîne d'une taille maximum de 1024 caractères, qui est affichée sous la forme d'un messagedans la boîte de dialogue. La longueur maximum de l'argument prompt est environ 1024 caractères, selon

Page 52: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 52

52 sur 103

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 lignes.

Titreest une chaîne de caractères destinée à être affichée dans la barre de titre de la boîte de dialogue.

Texte_défautest une chaîne de caractères destinée à être affichée dans la zone de texte comme la réponse par défautsi aucune autre entrée n'est fournie.

Position_Xreprésente la distance horizontale entre le bord gauche de la boîte de dialogue et le bord gauche del'écran. Par défaut, la boîte est centrée horizontalement.

Position_Yreprésente la distance verticale entre le bord supérieur de la boîte de dialogue et le haut de l'écran. Pardéfaut, la boîte est centrée verticalement

Fichier_Aideest une chaîne de caractères destinée à être utilisé pour fournir l'aide contextuelle de la boîte de dialogue.

Contexteest une valeur numérique identifiant le numéro de contexte de l'aide affecté par l'auteur de l'Aide à larubrique d'aide correspondante.

Boutonest une valeur numérique ou une constante de message de boîtes spécifiant le nombre et le type deboutons à afficher, le style d'icône à utiliser, l'identité du bouton par défaut et la modalité du message.

Page 53: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 53

53 sur 103

10 / Les instructions

Les instructions dans le langage VBScript permettent d'accomplir de nombreuses tâches dans unprogramme.

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), dedé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..

Page 54: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 54

54 sur 103

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 ausein 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èredeux-points (:), en ce qui concerne l'instruction ', il suffit d'introduire un espace blanc de séparation.

Ligne de code : Rem CommentaireLigne de code ' Commentaire

Exemple :

Rem Déclaration de variablesDim XDim YDim Z' AffectationsX = 12 ' X vaut 12Y = 2 : Rem Y vaut 2Rem Z vaut 144Z = X ^ Y ' Mise à la puissance

Page 55: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 55

55 sur 103

10.2 / Déclaration de variables

La déclaration des variables peut s'effectuer par l'intermédiaire de plusieurs instructions dans unprogramme VBScript.

L'instruction Option Explicitcontraint à 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 Dimdé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 Privatedé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 scriptlui-même, ou dans des propriétés.

Private nom_variable[(Indices)]

L'instruction Publicdé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 nombresentiers 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]

Page 56: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 56

56 sur 103

<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

' 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>

Page 57: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 57

57 sur 103

10.3 / Les instructions liées aux tableaux

Les instructions Erase et ReDim sont utilisées pour gérer les tableaux.

L'instruction Erasepermet de supprimer les éléments des tableaux de taille fixe et libère l'espace de stockage destableaux dynamiques.

Erase Nom_tableau

Nom_tableau représente le tableau auquel les éléments seront supprimés.

L'instruction ReDimpermet 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éespar une virgule.

Un tableau dynamique est déclaré initialement sans aucun indice de dimension, par l'intermédiairedes instructions Private, Public ou Dim.

Private | Public | Dim Nom_tableau

Exemple :

' Déclaration d'un tableau dynamiqueDim tableau' Redimensionnement sur trois dimensions du tableauReDim tableau(10, 10, 10)' Réinitialisation du tableauErase tableau

Page 58: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 58

58 sur 103

10.4 / Utilisation des tableaux

Lorsqu'il est nécessaire d'assigner plusieurs valeurs à une unique variable, alors il faut utiliser untableau. Un tableau est une variable capable de contenir N valeurs, N étant la taille de ce tableau.

Les tableaux sont créés à l'instar des variables simples, en utilisant une instruction Dim précédant ladéclaration de la variable suivie elle même d'un nombre entouré de parenthèses.

Dim tableau(10)

Cette déclaration indique à l'interpréteur, qu'une variable est un tableau composé de onze cellules. Eneffet, un tableau commence à zéro et se termine au nombre indiqué.

L'affectation de valeurs au sein d'un tableau, s'effectue par le biais de la variable suivi du numéro d'indicede la cellule à affecter.

tableau(indice) = valeur

tableau(0) = 10;tableau(1) = 18;...tableau(11) = 9;

La valeur d'une cellule de tableau s'obtient de la même manière que l'affectation. Il est possible deréaffecter le contenu d'une cellule à une autre variable, de l'afficher ou encore d'effectuer un calcul.

Dim nombre = tableau(0);

Dim nombre = tableau(0) * 2

<%=tableau(0)%> 'Affichage dans la page web courante

Un tableau peut contenir plusieurs dimensions. Ainsi, une variable peut être organisée en lignes et encolonnes (tableau à deux dimension). Si on ajoute une profondeur, on obtient un tableau tridimensionnel.

La déclaration de tableaux multidimensionnels sont identiques aux tableaux unidimensionnels, àl'exception que les parenthèses contiennent autant de nombres que de dimensions. Ces nombres doiventêtre séparés par des virgules.

Dim tableau(10, 20)

Dim tableau(10, 10, 10)

La fonction UBound() fournit le plus grand indice du tableau passé en argument.

Dim tableau(30)Response.Write(UBound(tableau)'La fonction Write affiche 30

Il faut donc être vigilant en utilisant cette fonction puisque la taille réelle du tableau est supérieure de unélément.

Les tableaux peuvent changer de taille durant l'exécution d'un script. La commande ReDim permet deredéfinir la taille d'un tableau.

Redim tableau(20)

Le redimensionnement d'un tableau s'accompagne de la perte de toutes les données qu'il contenait. C'estpourquoi, le mot clé Preserve permet d'éviter une redéfinition complète d'un tableau en conservant lesdonnées existantes.

Redim Preserve tableau(20)

L'instruction Erase supprime le contenu de toutes les cellules d'un tableau et libère les resources qui lui étéaffectée.

Erase tableau

Page 59: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 59

59 sur 103

Il existe des artifices permettant d'affecter ou de consulter un tableau à l'aide de boucles, évitant ainsi lafastidieuse opération d'affectation ou de consultation manuelle d'un tableau. La boucle For To...Nextréalise parfaitement le parcours complet d'un tableau.

For i = 0 To UBound(tableau) + 1 Step 1 tableau(i) = i + 1 Response.Write(i & " : " & tableau(i))Next'Affiche :i : 1i : 2i : 3...i : 11

Page 60: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 60

60 sur 103

10.5 / L'instruction Const

L'instruction Const permet de déclarer des constantes destinées à se substituer à des valeurs devariables.

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'uneexpression combinant n'importe quels opérateurs, hormis Is.

Les variables ou les fonctions ne peuvent être utilisées dans les valeurs de constantes, puisque pardé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

Page 61: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 61

61 sur 103

10.6 / 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éepar 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="coursasp/exemples/randomize.asp"> Recommencer </a> </body></html>

Page 62: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 62

62 sur 103

10.7 / L'instruction Do...Loop

L'instruction Do...Loop répète un bloc d'instructions tant qu'une condition est vraie (While) oujusqu'à 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 derniercas, 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>

Page 63: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 63

63 sur 103

10.8 / 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>

Page 64: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 64

64 sur 103

10.9 / L'instruction For...Next

L'instruction For...Next exécute des boucles par rapport à un comptage délimité par un début etune 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 unecommande 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>

Page 65: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 65

65 sur 103

10.10 / L'instruction For Each...Next

L'instruction For Each...Next parcourt tous les éléments d'un tableau ou d'une collection afind'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, Objetgé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]

Page 66: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 66

66 sur 103

<% 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%>"> <%=Fichier.Name%> </a> </td> </tr> <% next Set ObjSystemeFichier = Nothing Set objet_dossier = Nothing %> </table> </body></html>

Page 67: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 67

67 sur 103

10.11 / L'instruction If Then Else

L'instruction If Then Else est une commande de contrôle qui provoque un branchementconditionnel.

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 serontexécutées, sinon (Else) d'autres le seront.

Cette instruction peut également supporter des conditions multiples par l'intermédiaire de la commandeElseIf comportant sa propre condition.

L'instruction Select Case est en général plus adaptée à plusieurs cas possibles de branchementconditionnel.

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>

Page 68: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 68

68 sur 103

10.12 / L'instruction Select Case

L'instruction Select Case est une structure de choix, proposant de multiples possibilités debranchement 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 à lavaleur de la variable test.

Variable est en fait une expression de chaîne de caractères ou numérique contenant une valeur a testerpar 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édentesne convenait.

Exemple : [voir]

Page 69: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 69

69 sur 103

<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 --> </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>

Page 70: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 70

70 sur 103

10.13 / 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 chaquecommandes qu'elle contient. Elle peut être utilisée pour modifier les propriétés d'un objet par exemple.

Exemple : [voir]

Page 71: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 71

71 sur 103

<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 .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

Page 72: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 72

72 sur 103

Set objet = Nothing %> </body></html>

Page 73: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 73

73 sur 103

10.14 / Déclaration de fonctions et procédures

Le langage Visual Basic Script dispose de moyens permettant de créer des procédures oufonctions pouvant être appelées n'importe où dans un programme par l'instruction Callnotamment.

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'ensembled'une application VBScript.

Public Default est utilisé pour indiquer que la fonction ou la procédure est utilisée par défaut dans uneclasse (Class).

Private signifie que la fonction ou la procédure ne sera valable que dans l'espace de nom global du scriptcourant.

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 desarguments, 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 droited'une expression, celle qui suit le signe égal( =) afin de disposer directement de la valeur retournée par lafonction.

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 donnerle nom de la fonction.

Function Addition(val1, val2) Addition = val1 + val2End Function

Enfin, les procédures ou les fonctions acceptent des déclarations de variables implicites, ouexplicites. Dans ce dernier cas, la variable devra être précédée de l'instruction Dim uniquement.

Exemple : [voir]

Page 74: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 74

74 sur 103

<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>

Page 75: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 75

75 sur 103

10.15 / 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, alorsque 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>

Page 76: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 76

76 sur 103

10.16 / 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 ledomaine 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'argumentssé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 = valeurEnd Property

L'instruction Property Let peut contenir en son sein des commandes d'affectations Set permettantd'affecter une référence à une propriété.

L'instruction Get obtient la valeur de la propriété.

Public Property Get propriete propriete = valeur_proprieteEnd Property

L'instruction Set définit la référence à un objet.

Public Property Set propriete([arguments,] reference) ...End Property

Exemple : [voir]

Page 77: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 77

77 sur 103

<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 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>

Page 78: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 78

78 sur 103

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 laréférence à un objet.

Page 79: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 79

79 sur 103

10.17 / 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]

Page 80: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 80

80 sur 103

<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 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>

Page 81: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 81

81 sur 103

10.18 / Les événements d'une classe

L'événement Initialize se produit lorsqu'une instance de la classe associée est créée, alors quel'é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 lesinstructions 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 SubEnd Class

'Création d'une instance de Classe_de_test.Set X = New Classe_de_test'Destruction de l'instance.Set X = Nothing

Page 82: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 82

82 sur 103

10.19 / 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

For Each... ' Instructions... Exit For ' Instructions...Next

Do[...] ' Instructions... Exit Do ' Instructions...Loop[...]

Function... ' Instructions... Exit Function ' Instructions...End Function

Sub... ' Instructions... Exit Sub ' Instructions...End Sub

Property... ' Instructions... Exit Property ' Instructions...End Property

L'instruction Exit interrompt immédiatement un des éléments précités et provoque la reprise dudé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 bouclede niveau immédiatement supérieur.

Exemple : [voir]

Page 83: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 83

83 sur 103

<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> <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>

Page 84: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 84

84 sur 103

10.20 / 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 unefonction 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édemmentinitialisé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.txtREDIRECT lien.aspWIDTH 468HEIGHT 60BORDER 0*http://www.laltruiste.com/coursasp/images/alapage.gifhttp://www.alapage.com/Visitez la librairie en ligne!4http://www.laltruiste.com/coursasp/images/blackorange.gifhttp://www.blackorange.com/Découvrez la logithèque en ligne !3http://www.laltruiste.com/coursasp/images/oreilly.gifhttp://www.editions-oreilly.com/Découvrez le célèbre éditeur de livres !3

Page 85: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 85

85 sur 103

10.21 / Les instructions d'exécution

Les instructions d'exécutions permettent d'exécuter d'une à plusieurs instructions.

L'instruction Executeexé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 deux-points: ou par un caractère de saut de ligne ch(10).

L'instruction ExecuteGlobalexé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 variablesglobales 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>

Page 86: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 86

86 sur 103

10.22 / Les instructions de gestions d'erreurs

L'instruction On Error permet d'activer la gestion des erreurs dans des programmes Visual BasicScript.

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 erreurspourront être traitées par le programmeur à l'aide d'une instruction spécifique, en l'occurrence l'objet Errconservant les références de l'erreur en cours.

On Error Resume Next

L'instruction On Error Goto 0provoque la reprise en charge des erreurs par le système, c'est-à-dire lorsqu'une erreur intervient, leprogramme 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>

Page 87: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 87

87 sur 103

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 expressionsrégulières.

Page 88: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 88

88 sur 103

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 classeexistante pour déclarer une variable du même type.

Class Nom_Classe 'Instructions...End Class

Dim objet_classeSet 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 laclasse concernée.

objet_classe.propriété = valeurobjet_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 classeSet objet_classe = New Nom_Classe

' Détruit l'objet en s'appuyant sur l'événement ' Terminate déclaré dans la définition de classeSet objet_classe = Nothing

Exemple : [voir]

Page 89: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 89

89 sur 103

<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 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>

Page 90: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 90

90 sur 103

11.2 / L'objet Err

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.

L'objet Err constitue la solution de gestion des erreurs d'exécutions ou de syntaxes d'unprogramme VBScript.

Les propriétés

L'objet Err contient cinq informations, le numéro, la description et la source de l'erreur ainsi qu'unidentificateur 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'objetErr.

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.

Exemple : [voir]

Page 91: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 91

91 sur 103

<-- Fichier érroné --> <!--#include file="identiferr.asp" --><html> <head> <title>Démonstration de Err</title> </head> <body> <% 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%>

Page 92: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 92

92 sur 103

11.3 / L'objet RegExp

L'objet RegExp permet de créer des expressions régulières.

Set objet = New RegExp

Les propriétésProprié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 derecherche 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 cassedes caractères.

objet.Pattern [="chaîne"]

définit ou retourne les critères de recherche de l'expression régulière.

Les méthodesMé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 seconderemplace.

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]

Page 93: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 93

93 sur 103

<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."

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>

Page 94: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 94

94 sur 103

11.4 / L'objet Match

L'objet Match fournit un accès aux propriétés d'une mise en correspondance d'expressionré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'unidentificateur 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]

Page 95: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 95

95 sur 103

<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>

Page 96: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 96

96 sur 103

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ésProprié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>

Page 97: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 97

97 sur 103

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 dessous-expressions 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 $3ou 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ésProprié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]

Page 98: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 98

98 sur 103

<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>"

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>

Page 99: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 99

99 sur 103

12 / Les caractères spéciaux

Les caractères spéciaux permettent d'affiner une recherche, là où une expression régulière simplene peut suffire.

Les caractères et autres symboles spéciaux représentent des caractères non-imprimables comme dessauts de lignes (\n), des tabulations (\t) ou des options particulières ou encore des plages de lettres ou dechiffres, etc.

Caractère Description Exemple

\\, \/, \*, \+, \?, etc. Symbolise les caractères correspondants modele="2\*8\+1" ' recherche la chaîne 2*8+1

^ Symbolise le début d'une chaîne decaractè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èrequelconque 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 enplusieurs zones accessibles par les propriétés$n

modele="VB(Script)?" ' recherche le mot VBScript ou VB

(?:modèle) Le modèle recherche une correspondancesans la stocker

modele="\b.*(?:Script)" ' recherche le mot VBScript ou JavaScript ou encore JScript

(?=modèle) Le modèle trouve une chaîne de recherchecontenant le modèle sans que ce-dernierfasse parti du résultat

modele="Cent(?=Francs|Euros)" ' trouve la chaîne cent de Cent Francs ou Cent de Cent Euros

(?!modèle) Le modèle trouve une chaîne de recherche necontenant pas le modèle sans que ce-dernierfasse 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 despossibilité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é unnombre n fois

modele="continu{2}m" ' recherche le mot continuum

{n,m} Le caractère précédent doit être trouvé aumoins n fois et au plus m fois

modele="10{3,9}" ' recherche d'un nombre de 103 ou de 109

Page 100: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 100

100 sur 103

{n, } Le caractère précédent doit être trouvé aumoins n fois et ou plus

modele="10{1,}" ' recherche un nombre de 10 à 10n

[...] Les crochets contiennent des caractères, dontl'un doit être trouvé

modele="parti[res]?" ' recherche l'un des mots suivants : parti, partir, partie ou partis

[...-...] Les crochets contiennent une plage decaractères dont l'un doit être trouvé

modele="[a-b]" ' recherche un caractère faisant partie des lettres minuscules

[^...] La recherche porte sur des caractères qui nesont pas contenus entre les crochets

modele="exécut[^(ion)]" ' ne recherche pas le mot exécution mais exécuta ou exécuter, etc.

\b

La recherche s'effectue sur les limites d'un mot comme un espace ou une nouvelle ligne

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

\d La recherche s'effectue sur un chiffre quelconque de 0 à 9

modele="\d000" ' recherche un nombre comme 1000, 2000, etc.

\DLa recherche porte sur un caractèrequelconque 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 sautde ligne

modele="\.\n" ' recherche un saut de ligne après un point

\rLa 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èreshormis, 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

\vLa recherche porte sur un tabulation verticale

modele="\v" ' recherche une tabulation verticale

\wLa recherche porte sur tous caractères faisantpartie d'un mot

modele="\ws[\b]" ' recherche la lettre s entre un caractère [A-Za-z0-9_] et un espace

\W La recherche porte sur tous caractères nefaisant pas partie d'un mot

modele="\W" ' recherche un caractère sauf ceux-ci [^A-Za-z0-9_]

Page 101: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 101

101 sur 103

\n Le nombre n correspond à une valeurd'échappement octale

modele="\011" ' recherche le caractère d'échappement tabulation

\numLe nombre numcorrespond à un entier positif

modele="(,)\1" ' recherche deux caractères virgules consécutifs

\xhex Cette formulation permet de trouver uncaractère par son code octal ou hexadécimal

modele="\x0028ASCII\x0029" ' recherche le mot ASCII entre des parenthèses

Page 102: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 102

102 sur 103

13 / Les méthodes

Le langage VBScript est composé de quelques méthodes permettant d'accomplir certainesopé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èresspécifiée.

RegExp

Replace Remplace le texte trouvé dans une recherche d'expression régulière. RegExp

Test Déclenche une recherche d'expression régulière dans une chaîne de caractèresspécifiée.

RegExp

Clear Efface les valeurs des propriétés de l'objet Err. Err

Raise Produit une erreur d'exécution. Err

Page 103: L'Altruiste : Le langage VBScriptroger.neel.free.fr/langages/cours_pdf/coursvbscript.pdf · L'Altruiste : Le langage VBScript 7 7 sur 103 5 / Les mots-clés Le langage VBScript comprend

L'Altruiste : Le langage VBScript 103

103 sur 103

14 / Les propriétés

Le langage VBScript est composé de quelques propriétés permettant de définir ou retournercertaines 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ù unecorrespondance 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 rubriquedans 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èresde 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 unechaî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 dansune chaîne de recherche.

Match