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 :

Extraire données de fichier et le mettre dans un tableau


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2006
    Messages : 123
    Points : 59
    Points
    59
    Par défaut Extraire données de fichier et le mettre dans un tableau
    Bonjour à tous! je suis un peu perdu dans un code C sous visual studio 2008. ok mon problème est que je lis tout un fichier qui contient par exemple 10 enregistrements et j'en extrait des données par des conditions. Et ces données extraites peuvent être du nombre de 1 à 5 maximum. Au cas où c'est moins de 5 afficher des 0 a la place du genre pour indiquer que celà est vide.
    Et donc pour ce faire jè créer un tableau de 5 cases qui va recuperer les données extraites.
    La variable "F_choix" ne contient que les nombres "1" et donc je veux que lorsque j'afficher mon tableau, il se presente sous cette forme selon la condition: 0 1 1 0 1
    OK voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    fichier =fopen(xxxxxxxxxxxxxxx,"r");
    int tableau[5]={0};
    do
      {
        fscanf(fichier,"%d %s %d \n",&F_NumRecord,&F_Name,&F_choix)
           if ((strcmp(condition1,F_NumRecord)==0)&&(strcmp(condition2,F_Name)==0)
    {
               for (i=0;i<=4;i++)
               {
                 tableau[i]=F_choix;
                 printf ("[%d]",tableau[i]);
               }
    }
    else
             print ("[0]");
    }while(!feof(fichier));
    Mais mon problème est que ce code ne fonctionne pas comme convenu...il m'affiche un tas de nombre...et now je suis un peu perdu..
    Essayer de voire mon code et j'attends vos commentaires. merci bien pour votre temps.

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Je n'ai rien compris à ce que tu voulais faire.
    Néammoins, ton code présente des incohérences :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        fscanf(fichier,"%d %s %d \n",&F_NumRecord,&F_Name,&F_choix)
           if ((strcmp(condition1,F_NumRecord)==0)&&(strcmp(condition2,F_Name)==0)
    le fscanf indique que F_NumRecord est un entier (format %d)
    L'utilisation de F_NumRecord dans strcmp() indique que c'est une chaîne de caractère

    le fscanf indique que F_Name est un tableau de char (format %s). Il n'y a pas de raison d'écrire &F_Name, F_Name suffit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               for (i=0;i<=4;i++)
               {
                 tableau[i]=F_choix;
                 printf ("[%d]",tableau[i]);
               }
    Quel est l'intérêt de remplir tout le tableau avec la même valeur (F_choix) ?

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2006
    Messages : 123
    Points : 59
    Points
    59
    Par défaut
    OK...merci pour ces critiques... Je vois mon erreur au niveau des %d et %s
    Au fait, j'ai utilisé une boucle do while pour lire tout mon fichier et donc lorsque en parcourant le fichier les 2 conditions sont respectées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     if ((strcmp(condition1,F_NumRecord)==0)&&(strcmp(condition2,F_Name)==0)
    il va sauvegarder le contenu de la variable "F_Choix" dans l'une des cases du tableau[i] ainsi, à la fin du fichier j'aurai la liste des valeurs respectant mes 2 conditions. Et donc la variable F_choix ne sera pas la mem sur chaque ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i=0;i<=4;i++)
               {
                 tableau[i]=F_choix;
                 printf ("[%d]",tableau[i]);
               }
    Car au fait ce que je veux faire c'est du genre j'ai plusieurs lignes d'enregistrement dans mon fichier, ensuite par rapport à mes 2 conditions je dois extraire et afficher les valeurs concernées. MAis l'affichage doit se faire dans un tableau de 5 cases. et donc si dans mon fichier je n'ais que 3 lignes respectant ces 2 conditions, je peux avoir un affichage 1 0 1 0 0 par exemple.

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (i=0;i<=4;i++)
    {
           tableau[i]=F_choix;
           printf ("[%d]",tableau[i]);
    }
    Ce que je ne comprends pas, c'est que tu réécrives tout le tableau à chaque nouvelle valeur de F_choix. Au final, ton tableau contiendra dans toutes les cases la dernière valeur de F_choix.

    je n'ai pas compris non plus
    La variable "F_choix" ne contient que les nombres "1"

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2006
    Messages : 123
    Points : 59
    Points
    59
    Par défaut
    La variable "F_choix" ne contient que les nombres "1"
    oui cette variable garde uniquement que des "1" pour dire que cette personne a accepté l'offre par exemple. Et donc mon fichier n'enregistre que les personnes ayant accepté l'offre. Je voudrais juste mettre dans un tableau[5] initialisé auparavant à 0, tous ces "1" d'après les critères sus mentionnés.

  6. #6
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    oui cette variable garde uniquement que des "1" pour dire que cette personne a accepté l'offre par exemple.
    A quoi sert une "variable" qui vaut toujours 1 ?
    Si la personne n'a pas accepté l'offre, combien vaut-elle ?

  7. #7
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2006
    Messages : 123
    Points : 59
    Points
    59
    Par défaut
    Si l'utilisateur n'accepte pas et donc on enregistre pas les informations...je sais c'est un peu tordu mais c'est comme cela que je veux que ce soit...Or avez d'autres idées à proposer? merci bien

Discussions similaires

  1. extraire des lignes précises et les mettre dans un tableau
    Par ghanouche2408 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/04/2014, 14h50
  2. Lecture d'un fichier et le mettre dans un tableau
    Par midou84 dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 11/06/2013, 09h42
  3. Réponses: 11
    Dernier message: 29/05/2012, 11h46
  4. Réponses: 3
    Dernier message: 12/11/2009, 14h26
  5. Réponses: 9
    Dernier message: 05/11/2007, 11h05

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