Procédures et Fonctions  VBScript..
 
 
Les Procédures et les Fonctions  

En VBScript on appelle souvent Procédures , tant les Procédures que les Fonctions...
D'ici peu vous saurez faire le distingo entre ces 2 structures.
Ces structures sont donc des sous/programmes .
C'est un ensemble d'instructions que vous pouvez appeler selon les besoins du programme principal ou d'autres procédures.
VBScript permet d'utiliser 2 types de procédures : 

  • sub
  • function
Les 2 types peuvent recevoir des paramètres ..
Elles doivent être déclarées ( définies ) avant leur utilisation.
En général on les déclarera dans les balises HEAD.
 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 à VBScript. On les appelle des "méthodes". Elles sont associées à un objet bien particulier comme c'était le cas de la méthode Alert 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.on les appelle en VBScript des Procédures.
  • les fonctions (Function) proprement dites qui sont aussi écrites par vous-même mais qui peuvent retourner une valeur.

Déclaration d'une Procédure 

Pour déclarer ou définir une Procédure (Subroutine), on utilise le mot (réservé) Sub. La syntaxe d'une déclaration de sous-routine est la suivante : 

    Sub nom-de-la procedure([param1],[param2],[etc..])  
    ... code des instructions ...  
    End Sub
Le nom de la Procédure 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...etc..).  
Pour rappel, VBscript est sensible aux Majuscules et Minuscules.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 les mots clés d'ouverture et de fermeture . 

Le fait de définir(décrire)  une fonction n'entraîne pas l'exécution des commandes qui la composent. 
Les commandes de la Fonction ne seront éxécutées que lorsqu'on l'appellera..


L'appel d'une Procédure 

Pour appeler une Procédure, il suffit de citer son nom ..sans parenthèses , même s'il y a des paramètres à lui transmettre.

Syntaxe d'appel :  
nom-de-procedure 
nom-de-procedure  argument1, argument2 

Exemple plus concret:

    affiche
ou 
    affiche message 'message est le paramètre de la procédure.
Il est aussi possible  (mais ce n'est pas obligatoire) utiliser l'instruction call  
Call nom-de-procedure 
Call nom-de-procedure (argument1, argument2) 
Par contre , ici, si la procedure a des arguments, il faut ici mettre des parenthèses. 

Déclaration d'une Fonction  

Rappel:
Une  fonction retourne une valeur à l'appelant  Pour le reste, les règles sont assez proches de celles vues pour les procédures. 

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 procédures 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 sera exécuté. 

Voici un exemple plus concret :

<HTML>
<HEAD>
<script language="VBScript><!--
sub aire_cercle(rayon) 
 document.write "la surface du cercle de rayon " & rayon & " est de :" &
  3.1416*rayon^2 & " cm<SUP>2</SUP><BR>"
End sub
aire_cercle 12 'appel de la procedure avec passage du paramètre rayon
'-->
</script>
</head>
</body>
</HTML>


Retour d'une valeur par 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é. 
 
 

Appel d'une Fonction 

L'appel d'une fonction se fait en faisant apparaître le nom de la fonction à droite d'une affectation de variable souvent appelée variable de retour. 
La syntaxe générique est  : 
 

    variable = nom_fonction(parametres)

Avec un Exemple concret : 

<HTML>
<HEAD>
<script language="VBScript><!--
function aire_cercle(rayon) 
 aire_cercle=3.1416 * rayon^2
End Function 
document.write "la surface du cercle de rayon 10 cm. est de :" &
aire_cercle(10) & " cm<SUP>2</SUP><BR>"
'-->
</script>
</head>
</body>
</HTML>