Gestion de compteur en c

Soyez le premier à donner votre avis sur cette source.

Vue 9 912 fois - Téléchargée 274 fois

Description

Bonjour,
Voila je debut en c et j'apporte ma premiere contribution sous forme d'un petit ensemble gerant 255 compteurs
il y a les methodes pour Creer/Effacer/Lire/Reseter les compteurs
et une callback pour gerer les depassements (Pointeur de fonction)
j'ai conscience que la source est loin d'etre parfaite je vous demanderai donc d'etre indulgent
tous commentaires instructif et constructif serait le bien venu
S'il vous plait prenez la peine de telecharger la source avant de faire vos commentaires,merci!!
de meme que toutes remarques pour securiser ce code sera la bien venu.
Je poste plus ce code pour une correction que pour apporter quelque chose de nouveau

Source / Exemple :


//*************************
//Utilisation dans le main
//*************************

#include <stdio.h>
#include <stdlib.h>
#include "Compteur.h"
#include <windows.h>

void ErreurFct(long int NumCompteur,TypeDepassement Type)
{
    if (Type==INF) printf("Erreur depassement de compteur par le bas\tCompteur N:%ld\n",NumCompteur);
    else if (Type==SUP) printf("Erreur depassement de compteur par le haut\tCompteur N:%ld\n",NumCompteur);
}

int main()
{
    int test=0;
    int numducompteur=-1;
    //creation des compteurs
    printf("Creation du compteur\n");
	for (test=0;test<20;test++)
	{
        numducompteur=CreateCompteur(100,0,test,&ErreurFct);
    }
    AffCompteur(-1);
    //
    printf("\n");
    ClearCompteur(10);
    printf("Efface compteur 10\n");
    ClearCompteur(15);
    printf("Efface compteur 15\n");
    ClearCompteur(16);
    printf("Efface compteur 16\n");
    printf("\n");
    AffCompteur(-1);
	//
    printf("\n");
    numducompteur=CreateCompteur(100,0,101,&ErreurFct);
    AffCompteur(numducompteur);
    numducompteur=CreateCompteur(100,0,-4,&ErreurFct);
    AffCompteur(numducompteur);
    numducompteur=CreateCompteur(100,0,-4,&ErreurFct);
    AffCompteur(numducompteur);
    numducompteur=CreateCompteur(100,0,-4,&ErreurFct);
    AffCompteur(numducompteur);
    //
    printf("\n");
    numducompteur=CreateCompteur(100,0,80,NULL);
    AffCompteur(numducompteur);
    for (test=0;test<21;test++)
	{
        IncrCompteur(numducompteur,1);
        AffCompteur(numducompteur);
    }
    ClearCompteur(numducompteur);
    //
    printf("\n");
    numducompteur=CreateCompteur(100,-20,0,&ErreurFct);
    AffCompteur(numducompteur);
    for (test=0;test<21;test++)
	{
        DecrCompteur(numducompteur,1);
        AffCompteur(numducompteur);
    }
    ClearCompteur(numducompteur);

    printf("\nEfface tous les compteurs\n");
	for (test=0;test<23;test++)
	{
        ClearCompteur(test);
    }
    AffCompteur(-1);

	system("pause");
    numducompteur=CreateCompteur(100,-20,0,&ErreurFct);
    for (test=0;test<110;test++)
	{
        system("cls");
        IncrCompteur(numducompteur,1);
        AffCompteur(numducompteur);
        sleep(100);
    }
    ClearCompteur(numducompteur);
    AffCompteur(-1);

	return 0;
}

Conclusion :


Si remarques interressantes il y a ,je mettrai la source a jour
dans la prochaine version correction en fonctions des remarques
et modification pour gerer autant de compteur que voulu (allocation dynamique)
merci de vos contributions

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
338
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
9 juillet 2011
2
#
# int LitCompteur(long int NumCompteur,long int *Data)

meme chose ici verifie qu'on t'envoi un pointeur qui a été alloué
Messages postés
69
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
29 août 2012

C'est pas d'un usage terrible c'est plus didactique qu'autre chose
mais imagine un jeu tu branche le compteur sur la variable NbTir
Quand incrcompteur(NbTir) depasse la valeur limite ca appelle automatiquement la call back ou tu as mis ce que tu veux
ca gagne de la ligne a ecrire

sinon c'est utilisé dans les automates programmables generalement relié a un timer
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
4
salut
et ça sert à quoi les compteurs ?
Messages postés
69
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
29 août 2012

PS : j'ai aussi ajouté un test sur la valeur de la callback
if (callback==NULL) return 0
sinon plantage si on donne la valeur NULL a la callback (lorsque l'on en veut pas)
mise a jour prochainement

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.