VBSCRIPT (scripting visual basic)
1°)Intro c)inputbox et structures conditionnelles d)DO LOOP f)Les chaînes VBS, fonction date heure Un script visual basic est comme son mon l' indique un script dérivé de visual basic et comme tout script il n' a pas besoin d' être compilé, ce qui est un gros avantage pour la création de ces fichiers. de plus, vbscript peut être inclus dans une page Web; il suffit de mettre son script entre les balises <script language = vbscript> </script> Pour commencer, ouvrez un nouveau document texte (avec Bloc Notes) et enregistrez le fichier sous nouveau.VBS (l' extension de fichiers vbscript est .vbs) dans le document on va mettre notre script et pour ça, lisez la suite a) les message box: MsgBox "Je m' instruis en lisant les cours de simon's"
Icônes: msgbox"Je m' instruis en lisant les cours de simon's", vbinformation
Liste des icônes vbscript:
--------------------------- Insérer un titre pour la msgbox: MsgBox "ici le message ",vbOkOnly, "ici le titre"
vous avez remarqué le vbokonly ? ceci nous mène directement au sujet suivant: -------------------------- Les boutons: les boutons c' est par exemple le OK qu' on voit sur la message box ci dessus, et comme je vous l' ai fait remarqué le vbOkOnly correspond au bouton OK Bon, prenez la même syntaxe que la message box ci-dessus et au lieu de mettre vbokonly mettez au choix ce qui est en azur: vbOkOnly =
bouton OK -------------------------- Message box complète : MsgBox "Aimes-tu mon site",vbQuestion + vbYesNo + vbSystemModal,"Question" Le dernier truc (enfin on verra) qu' on va rajouter sur notre message box c' est vbSystemModal, cette fonction permet de bloquer le système jusqu' à ce que la réponse soit donnée.
------------------------- fin pour les message box------------------------ 1 Les opérateurs arithmétiques Dans tous les exemples, y est égal à 11.
Il faut noter que la division sans décimale renvoie la partie entière de la division et ne fonctionne en aucun cas comme un arrondi du nombre.
2 Opérateurs de comparaison Ces opérateurs de comparaison seront surtout utilisés dans les tests de conditionnels. Nous y reviendrons dans le chapitre intitulé "Les conditions".
En VBscript, il n'y a pas de signe différent pour = valeur d'attribution et = comparaison. C'est le sens du script qui l'indique. Ce qui peut poser certains problèmes. En Javascript, on a = pour la valeur d'attribution et == comparaison.
3 Opérateurs logiques
4 Opérateur de concaténation
Préférez cependant & à + car ce dernier est fait pour les valeurs numériques et l'interpréteur être troublé par la concaténation de nombres et de strings. La concaténation avec l'opérateur +, ne fournit pas toujours un résultat garanti.
petit exemple: msgbox"Bienvenue sur le site de
simon's",vbinformation 'msgbox vous devez
maintenant connaître x=inputbox("Est-tu content que je t'
apprenne à programmer en vbscript (oui ou non ?)") Bon, maintenant je vous explique; Une input box, c' est ça:
comme vous le voyez, il y à par défaut un bouton OK et un bouton ANNULER qu' on ne peut modifier
et ici c' est une zone de texte une inputbox dépend de CONDITIONS, vous avez remarqué cet ordre: if <condition>
then en français, l' exemple c' est ça x = variable et bien retenez cet ordre car il est invariable (si condition alors actions fin ) pour une condition à 2 choix. autre exemple car j' ai l' impression que c' est encore un peu flou pour vous rep=MsgBox("message",vbQuestion +
vbYesNo,"titre") PS: structure conditionnelles et msgbox: If MsgBox("message ici",vbYesNo +
vbSystemModal,"titre ici") = vbYes Then
'instructions si la réponse est oui
else
'instructions si la réponse n' est pas oui OU BIEN:
encore un exemple ? x = inputbox("quel est ton âge?") je suppose que vous avez compris, alors REgardez les 2 premiers exemples et cogitez un peu (-: cette boucle sert à répéter un événement jusqu' à ce que celui-ci soit "correct" exemple: do
'début de la boucle "faire" ce programme va demander le QI de bush jusqu' à ce que vous donniez le bon résultat Ah, j' oubliais; truc à ne pas faire do autre exemple plus complexe incluant do ... loop et une nouvelle fonction (ce prog n' est pas de moi) do ------------ je considère que do loop c' est maintenant acquis alors je vous explique la nouvelle fonction de l' exemple ci-dessus
jour = weekday(date())
'la on dit que jour c le n°du jour en cours, on va
attaquer ça après remarquez que cette fonction est très pratique pour les instructions à plusieurs conditions. entraînez vous avec ça et vous comprendrez vite cette fonction! ---------------------------------------- f)Les chaînes VBS, fonction date heure On va commencer par les chaines et ensuite les fonction date et heure et a la fin un exemple Les chainesVBS une chaine c' est une séquence de caractères (mot ,phrase.....). pour manipuler les chaines voici quelque fonctions de VBscript Lcase() et Ucase() ces deux fonctions convertissent un chaine en minuscule et vis versa voici un mini script qui explique ca. message = "exemple pour les chaines" msgbox lcase(message) msgbox ucase(message) exécutez ce script et vous verrez écrit "exemple pour les chaines" en minuscule puis en majuscule. instr() permet de tester si il a un caractère qu'on à défini dans une chaine. Exemple: email=inputbox("Veuillez entrer votre
adresse E-mail.") left(),right(),mid() ces trois fonctions sont faites pour extraire des parties d'une chaine. un petit exemple et vous comprendrez tout de suite leur syntaxe et ce qu'il font!! message = "Merci de lire mon cours vbscript" msgbox right(message,8) msgbox left(message,6) msgbox mid(message,15,9) En exécutant ce script vous verrez les message box "vbscript" "Merci" "mon cours" Fonction date heure : Pour voir la synthaxe, regardez l' exemple après date() affiche la date: msgbox date() time() affiche l'heure: msgbox time() dateadd() c pour ajouter des jours ou des mois des années à une date syntaxe dateadd(interval,x,date) exemple: msgbox dateadd(d,6,11/08/99) cet exemple ajoute 6jour a la date du 11/08/99. datediff() cette fonction permet de retourner l' intervalle entre deux date. syntaxe : datediff(interval,date1,date2) voila interval exprime l'unité ou est exprimé le résultat si vous voulez qu'il soit en mois mette m etc...(voir juste au dessus!!) day(),month(),year() Alors ces 3 fonctions sont assez pratiques, elles permettent de retourner soit le jour(day()),la mois(month())et l'annee(year())d'une date donnée. syntaxe(voir dans l'exemple de fin.) weekdayname(),monthname(), c fonction retourne respectivement le nom du jour et le nom du mois d'une date donner. hour(),minute(),second(), voila ctout pour cet partie!!now le script qui utilise quasi toute les fonction vu au dessus : ------------- msgbox"Ce script montre les
differents style d'affichage + l'utilite de quelques
fonctions",vbinformation joursrestants = #1/1/2005# - date() ---------------
g)Les
boucles boucle while....wend cette boucle exécute un bloc d'instructions jusqu'a ce que la condition soit fausse. cette boucle va afficher jour 5 fois: jour= 1 while jour <6 msgbox"jour" jour = jour+1 wend boucle For ...next cette boucle effectue une instruction un nombre de fois donné; même exemple exemple que pour la boucle while..wend : for jour=1 to 6 msgbox"jour" next bon, c' était pas trop dur?! petit exemple regroupant tout + ce qu' on va voir dans h et i. set a1 = CreateObject("Scripting.FileSystemObject")
'ce qu' on va voir dans h, i 1 Les variables en VBscript
Les variables contiennent des données qui peuvent être modifiées lors de l'exécution d'un programme. On y fait référence par le nom de cette variable.
Les noms de variables :
· ne doivent pas dépasser 255 caractères. · doivent commencer par une lettre (caractère alphabétique). · ne peuvent contenir une virgule, un point ou un espace. · ne peuvent reprendre des mots clés de VBscript. · doivent être uniques à l'intérieur de leur portée (voir variables globales et locales).
Ajoutons pour nous les francophones, qu'il faut employer l'alphabet ASCII donc les lettres sans accents.
Pour rappel VBscript est sensible à la case. Attention donc aux majuscules et minuscules!
2 La déclaration de variable
Les variables peuvent se déclarer de deux façons :
·
soit de façon explicite.
·
soit de façon implicite. On
écrit directement dans le code VBscript, le nom de la variable
suivi de la valeur que l'on lui attribue et VBscript s'en
accommode. Par exemple :
Si ce mélange possible de variables implicites et explicites vous ennuie, vous pouvez exiger la méthode de déclaration explicite et empêcher les déclarations implicites. Cela se réalise par la commande :
Option Explicit
Cette commande se place dans la première ligne de code de votre VBscript : Option Explicit ... la suite du code ...
3 Le types de données sous VBscript
VBscript utilise un seul type de données nommée Variant (rappel du Visual Basic). Ce type Variant est véritablement un fourre-tout de différents types d'information. En voici quelques-uns :
4 Variables locales et variables globales
Les variables déclarées dans les procédures (voir plus loin) ont une portée dite locale c-à-d qu'elle ne sera valable que dans le cadre de cette seule procédure.
Une variable est dite globale lorsqu'elle pourra être partagée partout dans le code du script. Pour qu'une variable soit globale, elle doit être déclarée en dehors de toutes procédures. Pour ce faire, on les déclare tout au début du script.
Ainsi, la variable compteur définie comme suit sera globale : Dim compteur Sub .... compteur = 0 End Sub Sub ... compteur = compteur + 1 End Sub
Nous allons attaquer la partie le plus importante de vbscript car c' est grâce aux objects que l' on pourra faire des inscriptions dans la base de registre, manipuler des fichiers, créer de fichiers,... Bon, heureusement tout ce qui est attrait au visual basic est simple (Eh, chez Kro$oft ils sont pas doués alors ils utilisent des langages faciles.) ATTENTION !!!: windows considére certains objects comme "incompatibles" malgré le fait qu' ils fonctionnent correctement, pour éviter ça on crée un getionnaire d' erreurs: on error résume next (voyez vous même juste après): cet objet est assez important car il permet d'accéder au système des fichiers! vous devez créer une nouvelle variable filesystemobject grâce a la fonction createobject() .exemple : on error resume next
'le gestionnaire d' erreur (facultatif mais il est
conseillé de le mettre) donc la vous avez une variable fsys qui représente le système de fichier de votre ordinateur. CREATETEXTFILE() cet objet sert a créer des fichiers unicode (des fichiers de type texte brut *.Txt, *.bat, *.... ) set tstream = fsys.createtextfile(nomdufichieracreer , ecraser,unicode) ici seul nomdufichieracreer est obligatoire (normal !). ecraser,unicode sont facultatifs un exemple qui crée le fichier simon's.txt a la racine du disque dur (généralement c;\) dim fsys,tstream OPENTEXTFILE bon vous avez compris l' objet createtextfile donc maintenant suivant le même modèle: dim fsys,tstream ceci va ouvrir le fichier texte simons's.txt qui est à la racine du disque dur. (Ps: on peut mettre ce qu' on veut comme variable à la place de fsys) COPYFILE On Error Resume Next COPYFOLDER Idem que copyfile mais selectionnez un dossier au lieu d' un fichier et au lieu de mettre ceci: set c = c1.getfile(WScript.scriptfullname) mettez ça set c = c1.getfile("emplacement_du_dossier") DELETEFILE bon, la je pense que les objets vous commencez à comprendre! alors je vous laisse cogiter, et puis ça ne coûte rien de faire des essais! si votre code est incorrecte, wscript.exe (le "truc" qui exécute les scripts) vous dira ce qui cloche. DELETEFOLDER MOVEFILE MOVEFOLDER FILEEXISTS,FOLDEREXISTS GETFILE, GETFOLDER GETFILENAME
Vous savez comment intégrer un object textstream on l'a vu au dessus donc on passe tout de suite aux méthodes qui sont nombreuses READ() READALL() READLINE SKIP() SKIPLINE WRITE() WRITELINE() WRITEBLANKLINES()
ça je vais quand même vous le dire, c' est ça qui permet d' exécuter une commande/un fichier, ou d' écrire dans la base de registre,.....etc. : set c2 =
WScript.CreateObject("Wscript.shell") *** il n' y a pas de retour à la ligne ici, j' ai du faire ça parce que j' avais plus de place. don vous aurez sûrement compris que ce script crée une clef de registre de type "string" qui exécute simon's.vbe au démarrage de windoz. autre exemple: Set q = CreateObject("WScript.Shell") ce script exécute le bloc notes de Windows (on peut aussi exécuter les mêmes commandes que celles qu' on tape dans "exécuter" ------------------------------------------------------------------------------------------ 'Ce script crée un fichier Txt appellé sim.txt
à la racine de votre disque dur ------------------------------------------------------------------------------------------ ' ce script teste la présence du fichier
sim.txt créé avec le script précèdent ------------------------------------------------------------------------------------------ ' ce script créée un fichier txt(sim2.txt) et le lit
ensuite ------------------------------------------------------------------------------------------ 1 La balise <SCRIPT>
Le langage Html utilise des balises pour "dire" au navigateur d'afficher du texte en gras, des images, des liens, etc. Dans la logique du Html, il faut donc signaler au browser par un tag que ce qui suit est un script et que c'est du VBscript (et non du Javascript). C'est la balise <SCRIPT language="VBscript">. De même, il faudra informer le browser de la fin du script. C'est la balise </SCRIPT>.
2 Les commentaires
Il vous sera peut-être utile d'inclure des commentaires personnels dans vos codes VBscript. VBscript utilise les conventions de Visual Basic, soit : ' commentaires ou Rem commentaires Tout ce qui est écrit après l'apostrophe ou le mot clé Rem sera ignoré.
3 Masquer le script pour les autres browsers Les browsers qui ignorent la balise <script>, vont afficher le code VBscript comme du texte. Pour éviter l'affichage de ce charabia, on utilise les balises de commentaire du Html soit <!-- et -->. Votre premier VBscript ressemblera à ceci : <SCRIPT language="VBscript"> <!-- ... code VBscript ... --> </SCRIPT>
4 Où inclure la balise de script
Le browser traite votre page Html, y compris vos ajoutes en VBscript de haut en bas. Toute instruction ne pourra être exécutée que si le browser possède à ce moment précis tous les éléments nécessaire à son exécution.
· Au moment de l'exécution. La balise de script apparaît alors à l'intérieur des tags <BODY> </BODY>.
·
Pour s'assurer que le programme
VBscript est bien chargé et prêt à fonctionner à toute
intervention de votre visiteur, on prendra l'habitude de
déclarer systématiquement (lorsque cela sera possible) un
maximum d'éléments dans les balises d'en-tête soit entre
<HEAD> et </HEAD> et avant la balise <BODY>. · Dans certains cas, la balise de script ne devra même pas être utilisée. Ce sera le cas pour les ajouts de script dans les contrôles de formulaire. Nous y reviendrons plus tard. Rien n'interdit d'inclure plusieurs scripts dans la même page Html.
5 Attention VBscript est case sensitive. Ainsi il faudra écrire write et non Write. Pour l'écriture des instructions VBscript, on utilisera l'alphabet ASCII classique (à 128 caractères) comme en Html. Les caractères accentués comme é ou à ne peuvent être employés que dans les chaînes de caractères c.-à-d. dans votre texte de notre exemple.
6 Votre première page Html avec du VBscript <HTML> <HEAD> </HEAD> <BODY> ... Html normal ... <SCRIPT language="VBscript"> <!-- MsgBox "Mon premier VBscript!" --> </SCRIPT> ... Suite en Html ... </BODY> </HTML> 7 Méthode de l'objet document
Rappelez-vous... Nous avions montré que ce qui apparaît sur votre écran, peut être "découpé" en objets et que VBscript allait vous donner la possibilité d'accéder à ces objets (Un peu de théorie objet).
La page Html qui s'affiche dans la fenêtre du browser est un objet de type document. A chaque objet VBscript, le concepteur du langage a prévu un ensemble de méthodes (ou fonctions dédiées à cet objet) qui lui sont propres. A l'objet document, VBscript a dédié la méthode "écrire dans le document", c'est la méthode write.
Pour appeler la méthode write du document, on notera
document.write
8 La méthode write
La syntaxe est assez simple soit
document.write "votre texte"
On peut aussi écrire une variable, soit la variable resultat, document.write resultat
Pour associer du texte (chaînes de caractères) et des variables, on utilise l'instruction document.write ''Le résultat est " & resultat
On peut utiliser les balises Html pour agrémenter ce texte document.write ''<B>Le résultat est</B>" & resultat ou document.write ''<B>" & "Le résultat est "& "</B>" & resultat
où & est un opérateur de concaténation qui relie les "wagons" de ce que vous voulez écrire. Nous y reviendrons au chapitre consacré aux opérateurs.
9 Exemple (classique !)
On va écrire du texte en Html et en VBscript.
<HTML> <BODY> <H1>Ceci est du Html</H1> <SCRIPT language="VBscript"> document.write "<H1>Et ceci du VBscript</H1>" </SCRIPT> </BODY> </HTML> Ce qui donnera comme résultat :
Ceci est du Html
Une procédure (ou fonction) est un groupe de ligne(s) de code de programmation destiné à exécuter une tâche bien spécifique et que l'on pourra, si besoin est, utiliser à plusieurs reprises. De plus, l'usage des procédures améliorera grandement la lisibilité et la maintenance de votre script.
En VBscript, il existe trois types de fonctions ou de procédures :
· les fonctions propres à Javascript. On les appelle des "méthodes". Elles sont associées à un objet bien particulier comme c'était le cas de la méthode MsgBox avec l'objet document. · les sous-programmes (Subroutine) écrits par vous-même pour les besoins de votre script et qui ne retournent pas de valeur. · les fonctions (Function) proprement dites qui sont aussi écrites par vous-même mais qui peuvent retourner une valeur.
2 Déclaration d'un sous-programme
Pour déclarer ou définir un sous-programme (Subroutine), on utilise le mot (réservé) Sub. La syntaxe d'une déclaration de sous-routine est la suivante :
Sub nom-du-sous-programme(arguments) ... code des instructions ... End Sub
Le nom du sous-programme suit les mêmes règles que celles qui régissent le nom de variables (nombre de caractères 255, commencer par une lettre, peuvent inclure des chiffres...). Pour rappel, VBscript est sensible à la case. Ainsi Calcul() ne sera pas égal à calcul(). En outre, Tous les noms des fonctions dans un script doivent être uniques.
La mention des arguments est facultative mais dans ce cas les parenthèses doivent rester. C'est d'ailleurs grâce à ces parenthèses que l'interpréteur VBscript distingue les variables des fonctions. Nous reviendrons plus en détail sur les arguments et autres paramètres.
Lorsqu'un sous-programme a été ouvert par un Sub, il doit impérativement, sous peine de message d'erreur, être refermé par un End Sub. Prenez la bonne habitude de fermer directement vos sous-routines et d'écrire votre code entre elles.
Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la composent. Ce n'est que lors de l'appel de la fonction que le code de programme est exécuté.
3 L'appel d'un sous-programme
L'appel d'un sous-programme se fait le plus simplement du monde par le nom du sous-programme (sans les parenthèses même s'il y a des arguments).
Soit par exemple : nom-du-sous-programme nom-du-sous-programme argument1, argument2
Vous pouvez aussi (mais ce n'est pas obligatoire) utiliser l'instruction call Call nom-du_sous-programme Call nom-du-sous-programme(argument1, argument2) Si le sous-programme a des arguments, il faut ici mettre des parenthèses.
Il faudra veuillez en toute logique (car l'interpréteur lit votre script de haut vers le bas) que votre fonction soit bien définie avant d'être appelée.
4 Déclaration d'une fonction
Pour rappel, la fonction retourne une valeur. Pour le reste, les règles sont assez proche de celles vues pour les sous-programmes.
Pour déclarer ou définir une fonction, on utilise le mot clé Function . La syntaxe d'une déclaration de fonction est la suivante :
Function nom-de-la-fonction(arguments) ... code des instructions ... End Function
Ce qui été dit pour les sous-programmes concernant le nom, l'usage des parenthèses, L'emploi de End Function reste valable pour les fonctions.
Le fait de définir une fonction n'entraîne pas l'exécution des commandes qui la composent. Ce n'est que lors de l'appel de la fonction que le code de programme est exécuté.
5 Retour de la valeur dans une fonction
Pour retourner une valeur, la fonction utilise un petit artifice. On affectera la valeur à une variable dans une des lignes de code de la fonction et cette variable portera le même nom que la fonction. Ainsi, la syntaxe serait :
Function nom-de-la-fonction(arguments) ... code des instructions ... nom-de-la-fonction = expression ... code des instructions ... End Function
Vbscript sait alors automatiquement que vous voulez renvoyer la valeur de la "variable" nom-de-la-fonction au programme qui l'a appelé. Cette façon de faire remplace le return d'autres langages de programmation ou de scripts.
Voici un exemple :
Dim cube Function cube(nombre) cube = nombre*nombre*nombre End Function La valeur retournée sera celle de "cube" soit nombre au cube.
11.6 Appel d'une fonction
Pour appeler une fonction, on fait apparaître le nom de la fonction à droite d'une affectation de variable souvent appelée variable de retour. La syntaxe est :
variable-retour = nom-de-la-fonction(arguments)
Dans le cadre de notre exemple, cela pourrait être : resultat = cube(nombre)
Les parenthèses sont optionnelles même si on transmet des arguments à la fonction. 1 Généralités
Avec les événements et surtout leur gestion, nous abordons le côté "magique" des langages de scripts comme VBscript et Javascript. En Html classique, il y a un événement que vous connaissez bien. C'est le clic de la souris sur un lien pour vous transporter sur une autre page Web. Les langages de scripts vont vous permettre d'appliquer et de gérer ces événements sur les objets de votre choix.
Les événements des langages de script et leur gestion, associés aux fonctions, aux méthodes et aux formulaires, ouvrent grand la porte pour une réelle interactivité de vos pages Web.
2 Les événements
Passons en revue quelques événements implémentés en VBscript.
3 Les procédures événementielles
Pour être efficace, il faut qu'à ces événements soient associés les actions prévues par vous. C'est le rôle des procédures événementielles.
La syntaxe est :
nom-de-l'objet_On-Evénement()
Ainsi pour une action déclenchée par le clic de l'utilisateur sur un bouton nommé "test", la procédure événementielle à créer par vous sera :
test_OnClick()
Comme il s'agit d'une procédure, on utilisera Sub et End :
Sub test_OnClick() ... action ... End Sub
Comme ses procédures événementielles doivent être définies avant qu'elles soient appelées, il est recommandé de toujours les incorporer dans les balises <HEAD></HEAD>.
4 Exemple complet Soit un bouton nommé test qui au click de l'utilisateur, provoque l'affichage d'une boite de message (Internet Explorer seulement)
<HTML> <HEAD> <SCRIPT language="VBscript"> Sub test_OnClick() MsgBox "Test réussi!" End Sub </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE="button" NAME="test" VALUE="Pour un test"> </FORM> </BODY> </HTML>
1 Généralités Avec les langages de script, les formulaires Html prennent une toute autre dimension. N'oublions pas qu'en VBscript (comme en Javascript), on peut accéder à chaque élément d'un formulaire pour, par exemple, y aller lire ou écrire une valeur, noter un choix auquel on pourra associer un gestionnaire d'événement... Tous ces éléments renforceront grandement les capacités interactives de vos pages. Mettons au point le vocabulaire que nous utiliserons. Un formulaire est l'élément Html (à ne pas confondre avec le sens Visual Basic du terme) déclaré par les balises <FORM></FORM>. Un formulaire contient un ou plusieurs éléments que nous appellerons des contrôles (widgets). Ces contrôles sont notés par exemple par la balise <INPUT TYPE= ...>.
2 Procédure événementielle simplifiée (ou explicite) Plutôt que de créer une procédure événementielle comme décrit dans le chapitre précédent (procédure d'événement implicite), on peut inclure l'événement comme un attribut de la balise <INPUT...> du formulaire. Cet attribut prendra la forme :
<INPUT ... On-Evénement="instruction">
Soit dans le cas de notre bouton "test" qui affiche une boite de message au clic de l'utilisateur :
<INPUT type="button" name="test" value="Pour un test" OnClick="MsgBox 'Test réussi!'">
Mais cette déclaration de procédure n'est pas encore complète. Il faut encore spécifier au browser à quel langage de script vous faites référence. Dans le cas présent du VBscript et non du Javascript (assumé par défaut).
<INPUT type="button" name="test" value="Pour un test" language="VBscript" OnClick="MsgBox 'Test réussi!'">
Ce genre de notation, assurément empruntée à Javascript, est fort pratique mais son usage intensif compliquera la relecture de vos scripts.
3 Le contrôle ligne de texte Nous passons en ci-dessous quelques contrôles de formulaire avec une application en VBscript.
La ligne de texte est l'élément d'entrée/sortie par excellence de langage de script. La syntaxe Html est <INPUT TYPE="text" NAME="nom" SIZE=x MAXLENGTH=y> pour un champ de saisie d'une seule ligne, de longueur x et de longueur maximale de y. L'objet text possède trois propriétés : name, defaultvalue, value.
Prenons un exemple tout simple. Entrez une valeur quelconque dans la zone de texte d'entrée. Appuyer sur le bouton pour afficher cette valeur dans la zone de texte de sortie.
Le code est : <HTML> <HEAD> <SCRIPT language="VBscript"> Function afficher(form2) test =document. form2.input.value document.form2.output.value=test End Function </SCRIPT> </HEAD> <BODY> <FORM NAME="form2"> <INPUT TYPE="text" NAME="input" VALUE=""> Zone de texte d'entrée <BR> <INPUT TYPE="button" NAME="bouton" VALUE="Afficher" onClick="afficher(form2)"><BR> <INPUT TYPE="text" NAME="output" VALUE=""> Zone de texte de sortie </FORM> </BODY> </HTML>
Lorsqu'on clique le bouton "Afficher" (onClick), VBscript appelle la fonction afficher() à laquelle on passe comme argument le formulaire dont le nom est form2 . Cette fonction afficher() définie dans les balises <HEAD> prend sous la variable test, la valeur de la zone de texte d'entrée. Pour accéder à cette valeur, on note le chemin complet de celle-ci (voir le chapitre "Un peu de théorie objet"). Soit dans le document présent, il y a l'objet formulaire appelé form2 qui contient le contrôle de texte nommé input et qui a comme propriété l'élément de valeur value. Ce qui donne document.form2.input.value.A l'instruction suivante, on dit à VBscript que la valeur de la zone de texte output comprise dans le document.formulaire nommé form2 est celle de la variable test. A nouveau, on a utilisé le chemin complet pour arriver à la propriété valeur de l'objet souhaité soit en VBscript form2.output.value.
4 Les boutons radio Les boutons radio sont utilisés pour noter un choix, et seulement un seul, parmi un ensemble de propositions. L'objet radio possède plusieurs propriétés : name, value, item(pour le rang du bouton en commençant par 0, checked et defaultchecked.
Prenons un exemple :
<HTML> <HEAD> <SCRIPT language="VBscript"> Function choix(form3) If (form3.choix.item(0).checked) Then alert("Choix " + form3.choix.item(0).value) End If If (form3.choix.item(1).checked) Then alert("Choix " + form3.choix.item(1).value) End If If (form3.choix.item(2).checked) Then alert("Choix " + form3.choix.item(2).value) End If End Function </SCRIPT> </HEAD> <BODY> Entrez votre choix : <FORM NAME="form3"> <INPUT TYPE="radio" NAME="choix" VALUE="1">Choix numéro 1<BR> <INPUT TYPE="radio" NAME="choix" VALUE="2">Choix numéro 2<BR> <INPUT TYPE="radio" NAME="choix" VALUE="3">Choix numéro 3<BR> <INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?" onClick="choix(form3)"> </FORM> </BODY> </HTML> PS: Ce programme a été écrit avec un souci didactique. On pourrait l'écrire avec des codes plus compacts.
Dans le formulaire nommé form3, on déclare trois boutons radio. Notez que l'on utilise le même nom pour les trois boutons. Vient ensuite un bouton qui déclenche la fonction choix(). Cette fonction teste quel bouton radio est coché. On accède aux boutons sous forme d'indice par rapport à la propriété item du bouton radio nommé "choix" soit choix.item(0), choix.item(1) et choix.item(2). On teste la propriété checked du bouton par if(form3.choix.item(x).checked). Dans l'affirmative, une boite d'alerte s'affiche. Ce message reprend la valeur attachée à chaque bouton par le chemin form3.choix.item(x).value.
5 Liste de sélection Le contrôle liste de sélection vous permet de proposer diverses options sous la forme d'une liste déroulante dans laquelle l'utilisateur peut cliquer pour faire son choix. Ce choix reste alors affiché. La boite de la liste est crée par la balise <SELECT> et les éléments de la liste par un ou plusieurs tags <OPTION>. La balise </SELECT> termine la liste. Comme propriétés, on a name, length, selectedIndex (à partir de 0), defaultselected,
Un petit exemple comme d'habitude : Entrez votre choix : Image <HTML> <HEAD> <SCRIPT language="VBscript"> Function liste(form5) MsgBox "Elément " & (form5.list.selectedIndex + 1) End Function </SCRIPT> </HEAD> <BODY> Entrez votre choix : <FORM NAME="form5"> <SELECT NAME="list"> <OPTION VALUE="1">Elément 1 <OPTION VALUE="2">Elément 2 <OPTION VALUE="3">Elément 3 </SELECT> <INPUT type="button" name="b" value="Quel est l'élément retenu?" onClick="liste(form5)"> </FORM> </BODY> </HTML>
Dans le formulaire nommé form5, on déclare une liste de sélection par la balise <SELECT> </SELECT>. Entre ses deux balises, on déclare les différents éléments de la liste par autant de tags <OPTION>. Vient ensuite un bouton qui déclenche la fonction liste(). Cette fonction teste quelle option a été sélectionnée. Le chemin complet de l'élément sélectionné est form5.nomdelaliste.selectedIndex. Comme l'index commence à 0, il ne faut pas oublier d'ajouter 1 pour retrouver le juste rang de l'élément. Le même exemple avec la procédure événementielle simplifiée décrite plus haut, donnerait : </SCRIPT> </HEAD> <BODY> Entrez votre choix : <FORM NAME="form5"> <SELECT NAME="list"> <OPTION VALUE="1">Elément 1 <OPTION VALUE="2">Elément 2 <OPTION VALUE="3">Elément 3 </SELECT> <INPUT TYPE="button"NAME="b" VALUE="Quel est l'élément retenu?" language="VBscript" onClick="MsgBox 'Elément ' & (form5.list.selectedIndex + 1)"> </FORM> </BODY> </HTML>
1 Les tableaux de longueur fixe à une dimension
Pour créer des tableaux en VBscript, on utilise la notion de variable (donc avec le mot clé Dim) mais qui sera indexée.
Pour faire un tableau, il faut procéder en deux étapes :
· d'abord construire la structure du tableau. A ce stade, les éléments du tableau sont vides. · ensuite affecter des valeurs dans les cases ainsi définies.
On commence par définir le tableau :
Dim nom-du-tableau (x) où x est le nombre d'éléments du tableau moins 1.
Ensuite, on va alimenter la structure ainsi définie :
nom-du-tableau(i) = "élément" où i est un nombre compris entre 0 et x moins 1.
Exemple : un carnet d'adresse avec 3 personnes
construction du tableau : Dim carnet(2)
ajout des données : carnet(0)="Dupont" carnet(1)="Médard" carnet(2)="Van Lancker"
pour accéder un élément, on emploie : document.write carnet(2)
On notera ici que les données sont bien visibles au lecteur un peu initié (view source).
Remarque :
Quand on en aura l'occasion, il sera pratique de charger le tableau avec une boucle. Supposons que l'on ait à charger 50 images. Soit on le fait manuellement, il faut charger 0.gif, 1.gif, 2.gif... Soit on utilise une boucle du style : Dim gif(49) For i = 0 to 49 gif(i) = i + ".gif" Next
2 Tableau dynamique à une dimension
L'avantage des tableaux dynamiques est, bien entendu, qu'il ne faut pas connaître à l'avance le nombre d'éléments du tableau.
On peut utiliser à tout moment dans le script ReDim pour redimensionner le tableau. La syntaxe est :
ReDim nom-du-tableau (x) où x est le nombre d'éléments du tableau moins 1 ou une variable.
Voici un exemple de tableau dont le nombre d'éléments est déterminé par une variable i :
Dim carnet() Dim i i = 3 ReDim carnet(i - 1) et plus loin dans le script ReDim carnet (i + 9)
Attention ! A chaque appel de ReDim, le contenu du tableau précédent est effacé.
Si cette option ne vous convient pas et que vous voulez "préserver" vos données, heureusement pour vous il existe le mot clé Preserve qui vous permet de conserver les données initiales.
ReDim Preserve carnet (i + 9)
3 Pour connaître la taille d'un tableau
Ce renseignement vous est accessible par la fonction VBscript UBound. La syntaxe n'a rien de fort compliqué :
variable = UBound(nom-du-tableau)
Appliqué à notre exemple, on peut imaginer :
MsgBox "Le nombre d'éléments est " & UBound(carnet) Le résultat est bien entendu - Le nombre d'éléments est 2 -
4 Les tableaux à plusieurs dimensions
VBscript vous permet de construire aisément des tableaux à plusieurs dimensions (jusqu'à 60 dimensions).
La syntaxe de construction du tableau est :
Dim Grid(x, y) où x est le nombre de lignes moins 1 et y le nombre de colonnes moins 1.
Pour alimenter la structure ainsi définie :
Grid(i,j) = "élément" où i est un nombre compris entre 0 et x moins 1 et j un nombre compris entre 0 et y moins 1.
A titre d'exemple :
Dim Grid(3,3) Grid(0,0)="Dupont" Grid(1,0)="Médard" Grid(2,0)="Van Lancker" document.write Grid(2,0)
1 Généralités
Votre page Web se compose de balises Html et éventuellement du code VBscript. Vous pouvez "greffer" sur cette page des objets, extérieurs à celle-ci, qui vous permettront de réaliser des applications graphiques et/ou de programmation que le tandem Html/Script ne peut réaliser.
Les contrôles ActiveX (comme les objets Java) font partie de ses objets que l'on peut "greffer" sur une page Web.
2 La balise <OBJECT>
Pour incorporer un objet, on utilise la balise <OBJECT></OBJECT>
Cette balise nécessite une série d'attributs :
classid référence l'emplacement où le browser peut trouver le contrôle ActiveX d'abord sur le système de l'utilisateur et ensuite où il pourra être éventuellement téléchargé sur le Web. Ainsi, classid sera l'identificateur unique du composant. Celui-ci s'indique sur 128 bits sous forme d'un charabia illisible.
id désigne l'identificateur ou le nom de l'élément. C'est le nom que vous utiliserez chaque fois que vous ferez appel à l'ActiveX.
ensuite toute une série d'attributs (width, height, vspace, hspace, align) qui ont trait à la taille qu'occupera l'objet sur la page Web et à la représentation visuelle de celui-ci.
Ainsi une balise d'incorporation d'objet peut prendre la forme suivante :
<OBJECT classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" id=lb1ActiveLb1 width=250 height=250 align=left hspace=20 vspace=0 >
3 La balise <PARAM>
Avec la balise <OBJECT>, vous avez importé dans votre page un petit objet. Ce petit programme doit maintenant fonctionner selon vos spécifications. Dans le cadre d'une présentation graphique de texte plus évoluée que celle permise en Html, on peut imaginer que ces paramètres soient votre texte, la police, la taille de la police, l'angle du texte, etc.
Ces balises <PARAM> pourraient prendre la forme suivante :
<PARAM NAME="Caption" VALUE="Mon texte"> <PARAM NAME="Fontname" VALUE="Arial, Helvetia"> <PARAM NAME="Fontsize" VALUE="20"> <PARAM NAME="Angle" VALUE="90"> </OBJECT>
Ces différents paramètres vous sont généralement fournis avec la documentation accompagnant le contrôle ActiveX.
4 ActiveX Control Pad
Microsoft met à votre disposition ActiveX Control Pad pour insérer aisément (?) des contrôles ActiveX dans vos pages Web en Html.
|