begin process at 2010 02 10 14:35:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :23/07/2003 Date de mise à jour :23/07/2003 12:56:25 Vu :5 338

Auteur : egd

Ecrire un message privé
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++


 Sources de la même categorie

SMART POINTEUR À COMPTEUR DE RÉFÉRENCE par nirgal76
POINTEUR INTELLIGENT par snpier wolf
ALIGNER TEXTE CONSOLE par CptPingu
QWERTY - AZERTY AVEC SDL, UNE ALTERNATIVE par Scheb
Source avec Zip Source avec une capture INSERER UNE ANIMATION FLASH (WIN32-DEVCPP) par gagah1

Commentaires et avis

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

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

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

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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales