IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lecture de données


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Lecture de données
    je fait un petit programme en langage c sont objectif crée une application qui lire des donne d un fichier s appel donne.txt les données sous forme de structure qui est ce dessous et envoyer vers une fichier s appel panne.txt ses donne sont recue d un capteur qu il envoi ces donne 10h et 13h et 16h sil manque un donne d un capteur il envoi sont id et leur de leur manque
    mon problème comment faire le parcourt et teste chaque id tous seul puis teste sil y a un donnée manque ou non voila exemple de donne
    001 10:00:01 37.3 78 36.804665 10.181531
    011 10:00:02 37.2 80 36.806489 10.180532
    002 10:00:02 37.2 79 36.806489 10.180532
    009 10:00:20 37.2 79 36.806475 10.181632
    001 16:00:01 37.2 78 36.804665 10.181531
    voila mon strucrure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    struct capteur{
        char id[20];
        char horaire[20];
        float temperature;
        int poul;
        double latitude;
        double longitude;
     
     
    };
    typedef struct capteur capteur;
    et merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 059
    Points : 1 396
    Points
    1 396
    Par défaut
    j'ai pas tout compris mais je pense qu'il faut voir du côté des listes chaînées.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    l objectif c est teste tous les id et les heures et tous les donné qu elle envoi exemple si l id num 001 manque les donné de température a 10:02:05 les autre donnée presante sauf la témpérature il envoi sont id et l heures et le donne de température 0 l autre poul et longitute et lontitude s il présente il envoi 1 tous ses donné envoyer vers un fichier panne.txt pour connétre qu il y a une panne d un capteur et connétre son id

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    Commence par lire une ligne de ton fichier, et la traiter.
    Tu peux même simplifier un peu en mettant la ligne en dur dans le code, et en utilisant des fonctions comme sscanf, au lieu de fscanf.
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main() {
        const char* ligne = "001 10:00:01 37.3 78 36.804665 10.181531\n";
        ...
        sscanf (ligne, "...", &...);
        ...
    }
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int main() {
        File* fichier = fopen(...);
        ...
        fscanf (fichier, "...", &...);
        ...
    }
    Une fois cela fait, il sera facile de passer à un fichier: tu auras soit une boucle "tant qu'il y a des lignes" pour remplir une liste de tes structures, que tu traiteras ensuite dans une autre boucle.

    Si tu n'as rien d'autre à faire des lignes, tu peux sauter l'étape de la liste, et simplement traiter la ligne immédiatement à sa lecture.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci mais je suis obligé d utiliser un fichier text ,le fichier peux varier , l objectif faire test chaque id tous seul il faut que chque id envoi le signale 3 fois par jour chaque signal contien 3 capteur température poul et gps si un capteur manque il envoi l id et l heure vers fichier panne.txt

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 163
    Points
    17 163
    Par défaut
    C'est comme traverser une rivière à la nage.
    1. savoir avancer d'un mètre dans une piscine
    2. ajouter de la difficulté: apprendre à avancer d'un mètre dans une rivière
    3. continuer plus loin: répéter jusqu'à avoir atteint l'autre bout.



    Un programme n'est jamais une unique tache simple.
    Ici, tu dois lire chaque ligne d'un ficher, supposé correctement formaté, pour les traiter.
    Il y a trois problème:
    • interpréter une ligne
    • lire une ligne d'un fichier
    • lire toutes les lignes d'un fichier (c'est à dire tant qu'il y en a, en lire une).


    Il faut bien commencer par un bout.
    Le problème, c'est de réussir à valider chaque sous-problème, pour s'assurer que tout fonctionne.
    Tant que tu ne sais pas traiter une ligne, tu ne peux pas valider que tu l'as correctement lue.

    Cette méthode possède un nom: diviser pour reigner, ou encore division en sous-problèmes.

Discussions similaires

  1. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  2. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  3. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  4. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo