Comment réaliser un compteur de visite en Visual c++
ryukengouki
Messages postés8Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention25 mai 2004
-
4 mai 2004 à 17:02
sebus1978
Messages postés1Date d'inscriptionjeudi 15 février 2007StatutMembreDernière intervention24 février 2007
-
24 févr. 2007 à 12:25
Je souhaite limiter le nombre d'accès à mon logiciel mais je ne sais pas comment m'y prendre...si vous avez des exemples et même des idées je vous en serai très reconnaissant, sachant que je programme en visual c++....
J'ai cru comprendre par mes recherches qu'il existait une fonction qui s'executait à chaque demarrage du programme...
JE NE LA TROUVE PAS!!!!!!!!!!!!!!!!!!!!! je craque!!!!!!!!!!!!!!
merci par avance.
A voir également:
Comment réaliser un compteur de visite en Visual c++
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 4 mai 2004 à 23:23
Bah, tu t'embetes pas!
tu crées un ptit fichier texte bien planqué au fond du repertoire de windows, et a chaque demarrage, tu l'incrémente de un (dans ton main()). ensuite, dans le main tu testes si la valeur de ton fichier = nbr et si oui, et bien tu quittes le programme...sinon, tu continues ta fonction :)
M@x ---> Go on www.metrox.be
ryukengouki
Messages postés8Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention25 mai 2004 5 mai 2004 à 14:27
Je suis une quille en ce qui concerne les langages de prog d'internet donc pour que je change tes couleurs...c'est rapé!!!!
Sinon là je suis encore en train de lutter sur ce maudit compteur...mon pb est que ça plante : pb de mémoire...
J'arrive à ecrire ds le fichier mais une seule fois...apres ça fait planter mon prog...je ne renoncerai pas!!!!!!!!!!!!!!!!!!!!!
cs_Metrox
Messages postés267Date d'inscriptionjeudi 19 septembre 2002StatutMembreDernière intervention 8 septembre 2013 5 mai 2004 à 14:39
Cmt sa une seule fois?!
Je pense que je sais pourquoi
tu dois vérifier si le fichier existe ou non...S'il n'existe pas, tu le crée et comme contenu tu mets un sinon, tu le lis, tu mets le contenu en variable, tu incémentes la variable, tu supprimes le fichier, tu en recrées un nouveau et deddans, tu mets le contenu de ta var...
sinon, tu remplaces la premiere ligne de ton fichier par ta var au lieu de supprimer et recréer..
Bonne chance!
M@x ---> Go on www.metrox.be
ryukengouki
Messages postés8Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention25 mai 2004 5 mai 2004 à 14:54
En fait le pb majeur est que je ne sais pas ecrire une valeur dans un fichier pour ensuite la récuperer pour l'incrémenter, je dois me tromper dans les fonctions que j'utilise...
voici mon bout de code :
FILE f;
f = fopen("Compteur.out","rt");
int compte = fscanf(f,"%d",utilisations);
if (compte > 2)
{
AfxMessageBox("Vous avez dépassez le nombre d'utilisations permises", MB_OK | MB_ICONSTOP);
exit(1);
}
else
{
utilisations = utilisations + 1;
fclose(f);
f = fopen("Compteur.out","wt");
fprintf(f,"%d",utilisations);
fclose(f);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
int _tmain(int argc, _TCHAR* argv[])
{
FILE *f;
int utilisations=0;
// comment fais-tu quand le fichier existe pas
// va voir: http://doucets.free.fr // ou alors l'excellent site http://sebastank.free.fr f = fopen("Compteur.out","rt");
if (f != NULL)
{
// Purée y'a du boulot, revoie fscanf dans la MSDN
// ce que tu appelles compte est en fait le retour status
int compte = fscanf(f,"%d",&utilisations);
if (utilisations > 2)
{
// j'ai viré et remplacé ton AfxMsgBox par un bon
// vieux printf car je déteste les MFC
printf("Vous avez outrepasser le nombre d'utilisations permises\n %d fois deja utilise !!!"
,utilisations);
exit(1);
}
else
{
utilisations = utilisations + 1;
fclose(f);
f = fopen("Compteur.out","wt");
fprintf(f,"%d",utilisations);
fclose(f);
}
}
else
{
// cas de la premiere utilisation ou le fichier
// n'existe pas, et je crois qu'il était là ton pb
// (pb de newbie en C)
utilisations++;
f = fopen("Compteur.out","wt");
fprintf(f,"%d",utilisations);
fclose(f);
}
return 0;
}