Répéter une boucle tous les 5 minutes
Fermé
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
-
Modifié par massik25w le 27/12/2010 à 23:59
noghost - 29 déc. 2010 à 20:17
noghost - 29 déc. 2010 à 20:17
A voir également:
- Répéter une boucle tous les 5 minutes
- Tableau de combinaison loto 5/90 - Forum Excel
- Glary utilities 5 gratuit - Télécharger - Nettoyage
- Réglage montre kalenji 5 atm waterproof - Forum Accessoires & objets connectés
- Sirène pompiers 5 fois signification ✓ - Forum Loisirs / Divertissements
5 réponses
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
28 déc. 2010 à 12:43
28 déc. 2010 à 12:43
j'ai une autre quesstion
par exammple si le ping a echoué 1 ou 2 ou 3 ou 4 fois a que apré le ping réuessie comment faire pour remetre la variable echou a zéro
if(ping reussi ) echou = 0;
par exammple si le ping a echoué 1 ou 2 ou 3 ou 4 fois a que apré le ping réuessie comment faire pour remetre la variable echou a zéro
if(ping reussi ) echou = 0;
Galawin
Messages postés
835
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
17 novembre 2013
123
Modifié par Galawin le 28/12/2010 à 19:18
Modifié par Galawin le 28/12/2010 à 19:18
et ben tu as :
Donc :
non ?
if((p = strstr(tab, "757")) != NULL) echou++;
Donc :
if(ping reussi ) echou = 0;Équivaudrait a :
if((p = strstr(tab, "757")) == NULL) echou = 0;
non ?
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
28 déc. 2010 à 22:56
28 déc. 2010 à 22:56
je vais voire
Je suis septique avec ce test pour déterminer si le ping a réussi car c'est quoi ce 757 ?
Si ça réussit, le fichier out.txt contient un truc du genre :
Envoi d'une requ^te 'ping' sur www.l.google.com [74.125.230.83] avec 32 octets de donn'esÿ:
R'ponse de 74.125.230.83ÿ: octets=32 temps=45 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=129 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
Statistiques Ping pour 74.125.230.83:
Paquetsÿ: envoy's = 4, re#us = 4, perdus = 0 (perte 0%),
Dur'e approximative des boucles en millisecondes :
Minimum = 43ms, Maximum = 129ms, Moyenne = 65ms
et si ça échoue, il contient :
La requ^te Ping n'a pas pu trouver l'h"te www.google.fr. V'rifiez le nom et essayez ... nouveau.
(désolé pour les accents, ils sont comme ça dans le fichier out.txt créé)
Je ne vois pas le rapport avec 757 car dans les deux cas, il n'y a pas de 757...
Si ça réussit, le fichier out.txt contient un truc du genre :
Envoi d'une requ^te 'ping' sur www.l.google.com [74.125.230.83] avec 32 octets de donn'esÿ:
R'ponse de 74.125.230.83ÿ: octets=32 temps=45 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=129 ms TTL=55
R'ponse de 74.125.230.83ÿ: octets=32 temps=43 ms TTL=55
Statistiques Ping pour 74.125.230.83:
Paquetsÿ: envoy's = 4, re#us = 4, perdus = 0 (perte 0%),
Dur'e approximative des boucles en millisecondes :
Minimum = 43ms, Maximum = 129ms, Moyenne = 65ms
et si ça échoue, il contient :
La requ^te Ping n'a pas pu trouver l'h"te www.google.fr. V'rifiez le nom et essayez ... nouveau.
(désolé pour les accents, ils sont comme ça dans le fichier out.txt créé)
Je ne vois pas le rapport avec 757 car dans les deux cas, il n'y a pas de 757...
Galawin
Messages postés
835
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
17 novembre 2013
123
28 déc. 2010 à 23:14
28 déc. 2010 à 23:14
Oui tout a fait d'accord, enfin de manière générale le code de ce programme me fait super mal aux yeux alors j'ai préféré me contenter de répondre a la question sans chercher a comprendre :D
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
29 déc. 2010 à 00:28
29 déc. 2010 à 00:28
non 747 c'est n'est qu'un example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<windows.h>
int echou=0;
int
main(void)
{while(1){
char tab[100];
char *p;
FILE *f;
remove ("out.txt");
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
if(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "100%"))||(p = strstr(tab, "50%"))||(p = strstr(tab, "pas"))||(p = strstr(tab, "75%"))||(p = strstr(tab, "25%"))||(p = strstr(tab, "Impossible"))||(p = strstr(tab, "attente")) != NULL)
echou++;
if(echou == 5){ system("shutdown/s"); }
}
printf("%d",echou);
fclose(f);
Sleep(300000);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<windows.h>
int echou=0;
int
main(void)
{while(1){
char tab[100];
char *p;
FILE *f;
remove ("out.txt");
system("ping www.google.fr >> out.txt");
f = fopen("out.txt", "r");
if(f == NULL){
puts("Erreur d'ouverture");
return -1;
}
if(fgets(tab, sizeof(tab), f)){
if((p = strstr(tab, "100%"))||(p = strstr(tab, "50%"))||(p = strstr(tab, "pas"))||(p = strstr(tab, "75%"))||(p = strstr(tab, "25%"))||(p = strstr(tab, "Impossible"))||(p = strstr(tab, "attente")) != NULL)
echou++;
if(echou == 5){ system("shutdown/s"); }
}
printf("%d",echou);
fclose(f);
Sleep(300000);
}
return 0;
}
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
29 déc. 2010 à 00:31
29 déc. 2010 à 00:31
la j'ai bessoin que "echou" devien 0 si le ping réussi
Voici le code que je te propose
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main(void) {
FILE *f;
int echou=0;
while(1){
// Efface le fichier out.txt
remove ("out.txt");
// Effectue le ping
system("ping www.google.fr");
// Créer le fichier out.txt si la commande ping a réussi
system("IF NOT ERRORLEVEL 1 (echo OK >>out.txt)");
// Ouvre le fichier out.txt
f = fopen("out.txt", "r");
if(f == NULL) {
// Le fichier out.txt n'existe pas, le ping a échoué
echou++;
if(echou == 5){
system("shutdown/s");
}
}
else {
// Le fichier out.txt a été ouvert, le ping a réussi
echou = 0;
fclose(f);
}
// Pause de 5 minutes
Sleep(300000);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main(void) {
FILE *f;
int echou=0;
while(1){
// Efface le fichier out.txt
remove ("out.txt");
// Effectue le ping
system("ping www.google.fr");
// Créer le fichier out.txt si la commande ping a réussi
system("IF NOT ERRORLEVEL 1 (echo OK >>out.txt)");
// Ouvre le fichier out.txt
f = fopen("out.txt", "r");
if(f == NULL) {
// Le fichier out.txt n'existe pas, le ping a échoué
echou++;
if(echou == 5){
system("shutdown/s");
}
}
else {
// Le fichier out.txt a été ouvert, le ping a réussi
echou = 0;
fclose(f);
}
// Pause de 5 minutes
Sleep(300000);
}
return 0;
}
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
29 déc. 2010 à 13:51
29 déc. 2010 à 13:51
mais ton code ne marche pas quand je débrache le cable adsl au boud de 5 tentative de ping le pc devrais s'etaindre mais la le ecou reste a zéro quoi qu'ils arrive, merci quand méme
massik25w
Messages postés
55
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
2 juin 2011
2
29 déc. 2010 à 16:05
29 déc. 2010 à 16:05
je vous explique le but s'est de faire etaindre le pc s'il n'y a pas de connection internet pendat 25 min
si vous avez une ideé ou bien un logiciele qui existe ditent le moi, merci
si vous avez une ideé ou bien un logiciele qui existe ditent le moi, merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je n'ai plus de compilateur C/C++ pour tester mon code mais si ça ne fonctionne pas, c'est soit le fichier out.txt n'est pas effacé, soit le fichier out.txt est systématiquement créé ou soit que fopen("out.txt", "r") ne retourne pas NULL si le fichier n'existe pas.
1er point : il faut vérifier que remove("out.txt") efface bien le fichier (j'ai repris cette ligne de ton code)
2ème point : le problème vient peut-être des deux lignes system. Ensemble, je les ai testé, elles fonctionnent : le fichier out.txt est bien créé seulement s'il y a du réseau. Mais avec deux system consécutives, le ERRORLEVEL ne correspond peut-être pas au résultat du PING.
Si le problème vient de là (c'est-à-dire que le fichier out.txt est créé même si le ping a échoué), tu peux copier les deux lignes
ping www.google.fr
IF NOT ERRORLEVEL 1 (echo OK >>out.txt)
dans un fichier texte que tu renommes en .bat, par exemple test.bat, et tu remplaces les deux lignes system par system("test.bat") qui créera le fichier out.txt seulement si le ping a fonctionné
3ème point : il faut vérifier que si le fichier out.txt n'existe pas, ça va bien dans la portion du code correspondant au test if(f == NULL)
Bon courage.
1er point : il faut vérifier que remove("out.txt") efface bien le fichier (j'ai repris cette ligne de ton code)
2ème point : le problème vient peut-être des deux lignes system. Ensemble, je les ai testé, elles fonctionnent : le fichier out.txt est bien créé seulement s'il y a du réseau. Mais avec deux system consécutives, le ERRORLEVEL ne correspond peut-être pas au résultat du PING.
Si le problème vient de là (c'est-à-dire que le fichier out.txt est créé même si le ping a échoué), tu peux copier les deux lignes
ping www.google.fr
IF NOT ERRORLEVEL 1 (echo OK >>out.txt)
dans un fichier texte que tu renommes en .bat, par exemple test.bat, et tu remplaces les deux lignes system par system("test.bat") qui créera le fichier out.txt seulement si le ping a fonctionné
3ème point : il faut vérifier que si le fichier out.txt n'existe pas, ça va bien dans la portion du code correspondant au test if(f == NULL)
Bon courage.
28 déc. 2010 à 00:07
28 déc. 2010 à 00:11
Modifié par massik25w le 28/12/2010 à 00:31
28 déc. 2010 à 00:36
et avec sleep(300)
J'ai supposé que c'était en millisecondes mais selon les compilateurs et les bibliothèques, ça peut être en secondes.
(Sinon "imlicit declaration of function", je ne pense pas que ça soit gênant car c'est juste un warning mais pas une erreur)
Modifié par massik25w le 28/12/2010 à 00:41
voila ca marche pas