VBS : Declaration variables : grand debutant

Résolu
zesensei Messages postés 18 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 3 septembre 2007 - 27 août 2007 à 13:17
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

9 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
27 août 2007 à 13:48
 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
3
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
27 août 2007 à 13:49
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 !
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 août 2007 à 13:35
Pourquoi tu poste dans le forum VB6 si tu fais du VBS ???

Je déplace vers le forum approprié !
0
zesensei Messages postés 18 Date d'inscription vendredi 27 avril 2007 Statut Membre Dernière intervention 3 septembre 2007
27 août 2007 à 13:38
Merci, je n'avais pas reperé le forum VBS.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 août 2007 à 13:43
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)

@++

(
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 août 2007 à 13:44
Lol,
"je ne mettrai pas ma main à couper"
Avec mon avatar, ça le fait, non ?

DKS, ça sent le copier / coller tes messages

@++

(
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
27 août 2007 à 13:51
Salut,

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

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 août 2007 à 13:53
^^ 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'

@++

(
0
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
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.
0
Rejoignez-nous