VBS : Declaration variables : grand debutant [Résolu]

Messages postés
18
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
3 septembre 2007
- - Dernière réponse : zesensei
Messages postés
18
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
3 septembre 2007
- 27 août 2007 à 14:58
Bonjour,
Je suis en face d'un problème qui me laisse perplexe.
Je commence un script en VBS par des déclarations de variables.
Si je déclare la variable non typé tout passe.
Si je déclare la variable en type Windows me génère un bug 'fin d'instruction attendue'
Ex :
Dim chemin
Ca passe!
Dime chemin as String
Ca casse ! (bug)
C'est mon Widnwos qui est foireux ou je n'ai pas bien compris comment déclarer les varaibles en VBS?
Je tiens à rester sur du VBS simple et autonome, puisque par la suite je vais automatiser pas mal de taches d'administration et d'analyse de logs.
Mais avant tout, si je pouvais déclarer une chaine...
Merci pour l'aide
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonjour à tous

Variables de VBScript
Une variable est un symbole pratique qui fait référence à un emplacement en mémoire où
vous stockez des informations du programme pouvant varier au cours de l'exécution du script.
Par exemple, vous pouvez créer une variable que vous nommez NbClics pour stocker le nombre
de fois qu'un utilisateur clique sur un objet d'une page Web particulière.
L'endroit où se trouve effectivement la variable dans la mémoire de l'ordinateur est sans importance.
Ce qui compte, c'est le nom de la variable grâce auquel vous pouvez lire ou modifier sa valeur.
Dans VBScript, les variables appartiennent toujours à un type de données fondamental : Variant.

Déclaration des variables
Vous déclarez des variables explicitement dans votre script par l'intermédiaire des
instructions Dim, Public et Private.
Par exemple :

Dim DegrésFahrenheit
Vous pouvez déclarer plusieurs variables en séparant leur nom par une virgule. Par exemple :

Dim Haut, Bas, Gauche, Droite
Vous pouvez aussi déclarer une variable implicitement en utilisant simplement son nom dans votre script.
Toutefois, cette technique n'est pas vraiment recommandée car une seule faute de syntaxe dans le nom de
la variable peut donner des résultats incorrects à l'exécution.
Pour cette raison, utilisez l'instruction Option Explicit pour rendre obligatoire la déclaration explicite
des variables. L'instruction Option Explicit doit être la première de votre script.

Restrictions de notation
Les noms de variable suivent les règles de dénomination standard de VBScript.
Un nom de variable :
- doit commencer par un caractère alphabétique,
- ne peut pas contenir de point,
- ne doit pas excéder 255 caractères,
- doit être unique à l'intérieur de la même portée.

Portée et durée de vie des variables
La portée d'une variable dépend de l'endroit où elle est déclarée.
Lorsque vous déclarez une variable dans une procédure, seul le code de cette procédure peut lire ou
modifier la valeur de cette variable. Elle a une portée locale et elle est une variable de niveau procédure.
Si vous déclarez une variable en dehors d'une procédure, elle peut être reconnue par toutes les procédures
de votre script. C'est alors une variable de niveau script, et sa portée est l'ensemble du script.

La période d'existence d'une variable dépend de sa durée de vie.
La durée de vie d'une variable de niveau script s'étend de la déclaration de la variable à la fin de
l'exécution du script. Au niveau procédure, une variable existe tant que la procédure est en cours.
À la fin de la procédure, la variable est détruite. Les variables locales sont idéales pour les stockages
temporaires de la procédure. Les mêmes noms de variables locales sont utilisables dans des procédures
différentes parce que chacun n'est visible que dans sa procédure de déclaration.

Affectation de valeurs aux variables
Vous affectez une valeur à une variable en créant une expression de la forme suivante :
la variable figure du côté gauche de l'expression et la valeur à affecter se trouve du côté droit.
Par exemple :

B = 200
Variables scalaires et variables tableau
La plupart du temps, vous voulez simplement affecter une valeur à une variable que vous avez déclarée.
Une variable contenant une valeur unique est une variable scalaire. Dans d'autres cas, il est pratique
d'affecter plusieurs valeurs liées à une variable unique. Vous créez alors une variable contenant une
série de valeurs. Dans ce cas, il s'agit d'une variable tableau. Les variables tableau et les variables
scalaires sont déclarées de la même façon, sauf que la déclaration d'une variable tableau fait suivre
le nom de la variable de parenthèses (). Dans l'exemple ci-dessous, on déclare un tableau à une dimension
contenant 11 éléments :

Dim A(10)
Bien que le nombre entre parenthèses indique 10, ce tableau contient en fait 11 éléments car, dans VBScript,
tous les tableaux commencent à zéro. Dans un tableau à base zéro, le nombre d'éléments correspond toujours
au nombre entre parenthèses plus un. La taille de ce tableau est fixe.

Vous affectez les données à chaque élément en utilisant un index dans le tableau.
En commençant à zéro et en finissant à 10, l'affectation des données aux éléments se présente comme suit :

A(0) = 256
A(1) = 324
A(2) = 100
 . . .
A(10) = 55
De la même façon, vous lisez les données d'un élément particulier du tableau grâce à son index.
Par exemple :

 . . .
UneVariable = A(8) 
 . . .
Les tableaux ne sont pas limités à une seule dimension. Vous pouvez avoir jusqu'à 60 dimensions bien que
la plupart des utilisateurs ne puissent comprendre un tableau de plus de trois ou quatre dimensions.
Vous pouvez déclarer plusieurs dimensions en séparant à l'intérieur des parenthèses des nombres représentant
leur taille. Dans l'exemple ci-dessous, la variable MaTable est un tableau à deux dimensions constitué
de 6 lignes et 11 colonnes :

Dim MaTable(5, 10)
Dans les tableaux à deux dimensions, le premier nombre est le nombre de lignes, le second est le nombre
de colonnes.

Vous pouvez aussi déclarer un tableau dont la taille change au cours de l'exécution du script.
Il s'agit alors d'un tableau dynamique. Ce tableau est initialement déclaré au sein d'une procédure
en utilisant l'instruction Dim ou l'instruction ReDim. Toutefois, pour un tableau dynamique, la taille
et le nombre de dimensions ne figurent pas entre parenthèses.
Par exemple :

Dim MonTableau()
ReDim UnAutreTableau()
Pour utiliser un tableau dynamique, vous devez employer ReDim pour déterminer le nombre de dimensions
et la taille de chaque dimension. Dans l'exemple ci-dessous, ReDim définit la taille initiale du tableau
dynamique à 25. Une instruction ReDim suivante redimensionne le tableau à 30 mais utilise le mot clé Preserve
pour préserver le contenu du tableau pendant l'opération.

ReDim MonTableau(25)
 . . .
ReDim Preserve MonTableau(30)
Le nombre de redimensionnements d'un tableau n'est pas limité mais lorsque vous réduisez sa taille,
vous perdez les données correspondant aux éléments supprimés.

__________________________
Je vous conseille de télécharger le référentiel "SCRIPT56.CHM"

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
9
3
Merci
Je confirme les dire de Mortalino .. pas de déclaration de type en VBS.
"Dim NomVar" suffit. Les var sont typées lors de l'affectation.
En fait, tu te prends la tête .... pour rien !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 206 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Kristof_Koder
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
83
0
Merci
Pourquoi tu poste dans le forum VB6 si tu fais du VBS ???

Je déplace vers le forum approprié !
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
18
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
3 septembre 2007
0
Merci
Merci, je n'avais pas reperé le forum VBS.
Commenter la réponse de zesensei
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
salut,

VBS <> VBA ou VB
Il me semble mais je ne mettrai pas ma main à couper, qu'en VBS, c'est comme Php, pas besoin de déclarer le type, il le prend dès affectation de valeur (soit type numérique, chaine caractères, ou booléen)

@++

(
Commenter la réponse de mortalino
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Lol,
"je ne mettrai pas ma main à couper"
Avec mon avatar, ça le fait, non ?

DKS, ça sent le copier / coller tes messages

@++

(
Commenter la réponse de mortalino
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
Salut,

Salut Mortalino >> Il la remet après...Lol...Ok je sort...A+

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Commenter la réponse de cs_Exploreur
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
^^ JMO, là aussi ça sent un copier / coller !! (ou t'écris en ayant la foi, avec le paquet que t'as mis )
En tout cas, pour m'avancer sur mes dires, j'avoue être allé sur ta fiche pour trouver un snippet 'exemple'

@++

(
Commenter la réponse de mortalino
Messages postés
18
Date d'inscription
vendredi 27 avril 2007
Statut
Membre
Dernière intervention
3 septembre 2007
0
Merci
Merci beaucoup pour votre promptitude et l'exhaustivité de ces réponses.
Je ferai sans typage à la déclaration, donc.
Je posterai d'autre sujets au fur et à mesure de mon avancement sur mon script (qui regroupe pas mal de difficulté 'basiques' de programmation) si je rencontre des problèmes.
Commenter la réponse de zesensei