|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
greg Administrateur systèmes et réseaux Inscription : décembre 2012 Messages : 4 ![]() |
Bonjours,
Voila il y a deux jours je me suis acheter un livre "autoformation aux scripts" de ed Wilson, je suis au chapitre 2 sur les boucles, et la on apprend le "do while ... loop" il donne un script en exemple helas celui-ci ne fonctionne pas, j'ai beau cherche je ne trouve pas. voici le scripte en question : Code :
merci d'avance |
||
|
|
00
|
|
|
#2 | |
![]() ![]() |
Salut greg-44, bienvenue sur DVP
Citation:
Ce qui est sûr c'est que tu dois rester bloqué dans la boucle car i n’évolue pas, tant qu'il reste a zéro, la condition Do While reste vraie donc reste dans la boucle. Pour sortir il faut que i soit inégal à zéro, pour cela il faut que dans la boucle il y est une instruction qui change sa valeur. Donc, soit tu n'as pas fait un bon copier/coller et/ou tu as modifié/oublié une partie du code, ou encor, le code proposé dans le livre n'est pas valide.
__________________
ProgElecT A LIRE AVANT DE POSTER. F2 L'explorateur d'objets, F1 avec MSDN VB6 FR TUTO VB6/VBA/VBScript, Rechercher dans ce forum Et ces petits bouts de codes dans ma page de contribution sur DVP Soyez sympa, Pensez au tag
|
|
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Mikhail D. Inscription : mars 2010 Messages : 78 ![]() |
Oui, ce script n'est cense produire des resultats visibles que si ton espace disque devient inferieur a 100ko. Si tu veux des resultats "palpables", remplace
Code :
Code :
WScript.Echo "Mon espace disque libre: " & objDiskChange.TargetInstance.Size Au sujet de i = 0 suivi par Do While i = 0, je pense que c'est mieux d'ecrire directement "Do While True", c'est plus lisible et ca n'utilise pas une obscure variable.
__________________
"Les hommes et les femmes qui, sans bouger de leur bureau ou de leur bibliotheque, sans développer leur puissance corporelle et leurs infinies dimensions, parviennent, par une opération de la conscience, à une tristesse pessimiste qui se pretend lucide ne font que constater, sans le savoir, que toute identification du multiple de la vie à la vacuite de la conscience mène inévitablement à ce pessimisme et cette impuissance." extrait de "La fragilité" de Benasayag |
||
|
|
00
|
|
|
#4 | ||
greg Administrateur systèmes et réseaux Inscription : décembre 2012 Messages : 4 ![]() |
La boucle fonctionne tres bien vous avez pu voir que j'ai mis le "On Error Resume Next" en commentaire car le script me lancai la msgbox tout les 5 secondes comme demande alors que aucun disque avait moins de 100ko.
une fois le "On Error Resume Next" en commentaire j'ai vu que j'avais une erreur sur la ligne 14 Caractere 1 Code :
voila pourquoi je vous ecris essayer le chez vous, vous comprenderez peu etre mieux. merci de vos reponses |
||
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Inscription : octobre 2011 Messages : 423 ![]() |
Je n'ai pas le livre mentionné. Mais, le script ne peut pas être correct pour multiple raison.
[1] D'abord, méfiez-vous pour quelque livre que ce soit qui met la directrice On Error au début d'un script comme ça. Cela vient de quelque autorité du sujet que ce soit, peu importe. [2] Le service qui va executer la méthode de ExecNotificationQuery() n'est pas établi correctement: le moniker et tout n'en sont pas. [3] La déclaration pour l'ExecNotificationQuery() est fausse, voir les commentaires. [4] Il faut presque toujours, en vbscript, convertir la valeur de Size, qui est du type uint64, au Double pour faire des comparisons. Ceux-là semblent suffis sinon ça devient tout à fait ridicule... et j'ignore la pertinence du message et tout d'autres. Code :
|
||
|
|
00
|
|
|
#6 | ||||
![]() ![]() |
Pour moi le vrai danger est le bouclage infini
Code :
Motif de l'édit: un code qui fonctionne, avec sortie de la boucle Code :
__________________
ProgElecT A LIRE AVANT DE POSTER. F2 L'explorateur d'objets, F1 avec MSDN VB6 FR TUTO VB6/VBA/VBScript, Rechercher dans ce forum Et ces petits bouts de codes dans ma page de contribution sur DVP Soyez sympa, Pensez au tag
|
||||
|
|
00
|
|
|
#7 | |||
|
Membre chevronné
![]() Inscription : octobre 2011 Messages : 423 ![]() |
Citation:
Si on veut se limiter de surveiller au maximum 5 évenements de ce genre ou quelque nombre d'autre à notre gré, on peut faire ça. (Si 5 évenements tous méritent un signal d'alert, met le i=i+1 dedans l'autre if ... end if un niveau desous.) Code :
|
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com