IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

[VBSCRIPT] Faire une boucle qui dure quelques secondes


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 26
    Points
    26
    Par défaut [VBSCRIPT] Faire une boucle qui dure quelques secondes
    Bonjour tout le monde

    Voila je voudrais creer une boucle qui dure quelques secondes.
    Voici mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <script language=vbscript>
    <!--
    Sub buttongReceiptData_OnClick()
    	objet.Fonctionquicreeundossieryyyymmdd()
     
    	if (Month(now) < 10 ) then
    		m = "0" + Cstr(Month(now))
    	else
    		m = Cstr(Month(now))
    	end if
    	if (Day(now) < 10 ) then
    		d  = "0" + Cstr(Day(now))
    	else
    		d  = Cstr(Day(now))
    	end if
     
    	temp = Cstr(Year(now)) + m + d
    	Open("C:\VIDEOARCHIV\" + temp)
    end sub
    -->
    </script>
    Le probleme est que le dossier n est pas cree assez rapidement, et lors de l execution de cette ligne: Open("C:\VIDEOARCHIV\" + temp) , le dossier n est pas present sur mon disque dur.

    J avais donc pense a une boucle qui dure quelques secondes avant cette ligne, comme ca le dossier aurait le temps d etre cree.

    Savez vous si une telle chose est possible ?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    c'est quoi : Open("C:\VIDEOARCHIV\" + temp) ..? c'est pas du vbScript..?


    voir :


  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par bbil
    c'est quoi : Open("C:\VIDEOARCHIV\" + temp) ..? c'est pas du vbScript..?


    voir :

    Bonjour

    Alors Open("C:\VIDEOARCHIV\" + temp) ca ouvre le dossier C:\VIDEOARCHIV\ceQueContienttemp, donc pour aujourd'hui par exemple ca ouvre C:\VIDEOARCHIV\20070627

    Ensuite, j'ai essaye votre commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <script language=vbscript>
    <!--
     
    Sub buttongReceiptData_OnClick()
    	objet.Fonctionquicreeundossieryyyymmdd()
    	WScript.Sleep 100
    	if (Month(now) < 10 ) then
    		m = "0" + Cstr(Month(now))
    	else
    		m = Cstr(Month(now))
    	end if
    	if (Day(now) < 10 ) then
    		d  = "0" + Cstr(Day(now))
    	else
    		d  = Cstr(Day(now))
    	end if
     
    	temp = Cstr(Year(now)) + m + d
    	Open("C:\VIDEOARCHIV\" + temp)
    end sub
    -->
    </script>
    Et je recois le message d'erreur Error: Object required:'WScript'


  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    vous l'exécutez comment ce script ..?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par bbil
    vous l'exécutez comment ce script ..?

    Dans une page web, un code HTML

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    salut,
    dans un contexte dhtml, l'objet wscript n'est pas accessible donc pas de méthode sleep
    dans le modèle objet dhtml, il existe une méthode setTimeout qui n'équivaut pas vraiment à la méthode sleep
    puisqu'elle crée un nouveau thread mais qui pourrait donner ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    temp = Cstr(Year(now)) + m + d
    window.setTimeout("openTmpFile",2000)  'exemple 2000 ms
    end sub
    function openTmpFile()
    	Open("C:\VIDEOARCHIV\" + temp)
    end function
    maintenant, pour réaliser un vrai sleep sans éreinter le cpu il existe aussi
    l'appel api de la fonction sleep du kernel32.dll

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par omen999
    salut,
    dans un contexte dhtml, l'objet wscript n'est pas accessible donc pas de méthode sleep
    dans le modèle objet dhtml, il existe une méthode setTimeout qui n'équivaut pas vraiment à la méthode sleep
    puisqu'elle crée un nouveau thread mais qui pourrait donner ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    temp = Cstr(Year(now)) + m + d
    window.setTimeout("openTmpFile",2000)  'exemple 2000 ms
    end sub
    function openTmpFile()
    	Open("C:\VIDEOARCHIV\" + temp)
    end function
    maintenant, pour réaliser un vrai sleep sans éreinter le cpu il existe aussi
    l'appel api de la fonction sleep du kernel32.dll
    Merci beaucoup, grace a ton message et a ce site, j ai trouve la soluce

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <script language=vbscript>
    <!--
     
    Dim temp
     
    Sub buttongReceiptData_OnClick()
     
    	Objet.Fonctionquicreeundossieryyyymmdd()
     
    	if (Month(now) < 10 ) then
    		m = "0" + Cstr(Month(now))
    	else
    		m = Cstr(Month(now))
    	end if
    	if (Day(now) < 10 ) then
    		d  = "0" + Cstr(Day(now))
    	else
    		d  = Cstr(Day(now))
    	end if
     
    	temp = "C:\VIDEOARCHIV\" + Cstr(Year(now)) + m + d
    	idTimer = window.setTimeout("PausedSection",1000, "VBScript") 
    end sub
     
    Sub PausedSection
    	Open(temp)
    End Sub
    -->
    </script>
    Le probleme n'etait pas tres important, mais c'est tout de meme plus sympa d'avoir une page de test qui tourne sans erreur

    Merci encore !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment sortir d'une boucle qui dure trop?
    Par gaston11 dans le forum Débuter
    Réponses: 8
    Dernier message: 07/01/2013, 23h34
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  4. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo