Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

WAIT UN UTILITAIRE POUR FAIRE DES PAUSES DANS LES BATCH (C)


Information sur la source

Catégorie :Astuces Niveau : Débutant Date de création : 23/07/2003 Date de mise à jour : 23/07/2003 12:56:25 Vu : 4 031

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

Les boucles dans les batch bouffent le processeur. ce petit programme evite cet inconvenient et affiche en plus un truc qui tourne.
 

Source

  • /*
  • Name: Wait.exe
  • Author: egd
  • Description: utilitaire command line pour faire des
  • pauses dans les batch
  • Copyright: domaine public
  • Exemple d'utilisation:
  • Directory watcher en dos!
  • @echo off
  • REM Exemple de directory-watcher avec Wait
  • :START
  • if exist test\*.txt goto PROCESS
  • wait 3
  • REM Wait evite de bouffer tout le processeur dans la boucle
  • goto START
  • :PROCESS
  • move test\*.txt .
  • REM on peut faire ici ce qu'on veut du fichier
  • goto START
  • REM il faut utiliser CTRL C pour sortir
  • REM lancer le batch et balancer un fichier txt dans test
  • */
  • // les includes
  • #include <stdio.h>
  • #include <time.h>
  • // la fonction Wait affiche un truc qui tourne pendant l'attente
  • int Wait(int NbSec)
  • {
  • time_t Time_Start, Time_End, Time;
  • int i;
  • char *Buffer[]= {"-", "\\", "|", "/"};
  • time(&Time_Start);
  • for(Time_End = Time_Start + NbSec; Time < Time_End; time(&Time))
  • for(i=0; i<4; i++)
  • {
  • sleep(200);
  • printf("%s\r", Buffer[i%4]);
  • }
  • return 0;
  • }
  • int main(int argc, char *argv[])
  • {
  • int NbSec=0; // Nombre de secondes à passer en argument
  • if(argc > 1)
  • NbSec = atoi(argv[1]);
  • if (NbSec <= 0)
  • {
  • NbSec = 1; // default = 1 seconde
  • printf("Usage: %s [Number_of_second]\n\n", argv[0]);
  • // on peut aussi virer le printf
  • }
  • Wait(NbSec);
  • return 0;
  • }
/* 
   Name:          Wait.exe
   Author:        egd
   Description:   utilitaire command line pour faire des
                  pauses dans les batch
   Copyright:     domaine public

   Exemple d'utilisation:
   Directory watcher en dos!

@echo off
REM Exemple de directory-watcher avec Wait

:START
if exist test\*.txt goto PROCESS
wait 3
REM Wait evite de bouffer tout le processeur dans la boucle
goto START

:PROCESS
move test\*.txt .
REM on peut faire ici ce qu'on veut du fichier
goto START

REM il faut utiliser CTRL C pour sortir
REM lancer le batch et balancer un fichier txt dans test

*/

// les includes
#include <stdio.h>
#include <time.h>

// la fonction Wait affiche un truc qui tourne pendant l'attente
int Wait(int NbSec)
{
  time_t Time_Start, Time_End, Time;
  int i;
  char *Buffer[]= {"-", "\\", "|", "/"};

  time(&Time_Start);
  for(Time_End = Time_Start + NbSec; Time < Time_End; time(&Time))
     for(i=0; i<4; i++)
     {
       sleep(200);
       printf("%s\r", Buffer[i%4]);
     }
  return 0;
}

int main(int argc, char *argv[])
{
  int NbSec=0;  // Nombre de secondes à passer en argument

  if(argc > 1)
     NbSec = atoi(argv[1]);

  if (NbSec <= 0)
  {
     NbSec = 1; // default = 1 seconde
     printf("Usage: %s [Number_of_second]\n\n", argv[0]);
     // on peut aussi virer le printf
  }

  Wait(NbSec);
  return 0;
}

Conclusion

Compilé avec Dev-C++
 

Commentaires et avis

signaler à un administrateur
Commentaire de WaFFel le 23/07/2003 13:52:00

Je vois pas vraiment a koi sert ton programe parce que dans un fichier batch tu peux i dire la commentde sleep ou pause il les comprend le dos donc pkoi fair un prog comme sa si i a dejas les commende :S:S:S:S

signaler à un administrateur
Commentaire de egd le 23/07/2003 14:03:34

La commande sleep n'existe pas et pause attend qu'on tape sur une touche.
L'idée est de pouvoir faire des boucles en dos sans bouffer le processeur. Si tu lance mon batch d'exemple sans le wait, le proc est bouffé presque à 100%
@+
egd

signaler à un administrateur
Commentaire de WaFFel le 23/07/2003 18:50:52

okkkkkk je comprend mais dsl pour le sleep c'est un Qbasic ou en c++ :S

signaler à un administrateur
Commentaire de egd le 23/07/2003 19:21:36

C'est aussi un mystere pour moi. J'ai seulement trouvé la déclaration suivante dans stdlib.h de Dev-C++ :
void _sleep (unsigned long ulTime);
Il y a aussi un Sleep dans winbase.h
En tout cas ça marche!
Si quelqu'un peut m'expliquer comment une fonction qu'on ne trouve déclarée nullepart peut marcher et ou se documenter pour de telle fonctions, welcome!
egd

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,109 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.