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 :

Enregistrement, ouverture d'un fichier contenant une structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 13
    Par défaut Enregistrement, ouverture d'un fichier contenant une structure
    Bonjour à vous.

    J'ai suivi divers tuto sur le net pour essayer d'enregistrer et charger un tableau consititué d'une telle structure dans un fichier mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct cellule{
            char index[10];
            char formule[100];
            float val;
    }tcell;
    le tout est présent dans un tableau de type t[i][j].

    Je ne vois pas comment m'y prendre... Travailler avec plusieurs fichiers ne faciliterait-il pas la tâche?

    N'auriez vous pas des pistes à me conseiller?

    merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Ta structure contient deux tableaux à 1 dimension. Si tes données doivent se trouver dans un tableau à 2 dimensions, effectivement, ça va poser un problème.

    En fait, je ne comprends pas vraiment ta question. Pourquoi ne pas créer un tableau à deux dimensions ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 13
    Par défaut
    Il s'agit d'un programme de mini tableur.

    (J'ai une autre structure avec l'utilisation d'une liste chainée pour créer l'index, mais celle-ci sera recrée au moment du chargement, car la taille du tableau est fixe....Ca pourrait être vu comme inutile mais j'ai d'autres contraintes.... En tout cas ça ne sert à rien d'en reparler ici...)

    En quelque sorte j'ai un tableau de la sturcture notée plus haut à deux dimensions....

    Je voudrais savoir comment enregistrer son contenu dans un fichier puis l'exploiter (pour faire une sauvegarde-chargement de données sur lesquelles on a travaillé...).

    Donc il me faudrait pour chaque case de ce tableau, enregistrer index, formule et val.
    Et dans un second temps pouvoir tout réimporter dans un tableau vierge.


    Désolé si je m'exprime mal....

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut
    Bonjour,

    une manière simple de résoudre ton problème, serait de gérer ton fichier de sauvegarde comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    X  // nombre de ligne du tableau à sauver
    Y // nombre de colonnes
    /* t[0][0] */
    0 1 2 3 4 5 6 7 8 9  // le tableau index
    0 1 2 3 4 /* ... */ 98 99  // le tableau formule
    3.14  // val
     
    /* idem pour t[0][1], etc...*/
    Pour sauvegarder ce fichier, regarde du côté de la fonction fprintf(), pour la lecture, utilise fscanf().
    Le X, et le Y que tu liras dans le fichier, te permettra d'allouer suffisamment de mémoire pour ton tableau.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Par défaut
    Bien sûr, sans les commentaires !!
    Il est aussi possible de le gérer directement en binaire, mais c'est plus compliqué pour les floats...

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Par défaut
    Citation Envoyé par DeathMixer Voir le message
    Il est aussi possible de le gérer directement en binaire, mais c'est plus compliqué pour les floats...
    C'est pas plus simple au contraire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite(&my_float, sizeof (float), 1, my_file);

Discussions similaires

  1. Structure d'un fichier contenant une image
    Par alexmam15 dans le forum Qt
    Réponses: 1
    Dernier message: 14/01/2011, 06h21
  2. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02
  3. Réponses: 9
    Dernier message: 22/09/2005, 11h52
  4. [systeme]Ouverture aut. de fichiers d'une certaine extension
    Par AnKhCHFR dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 23/08/2005, 17h06
  5. Trouver un fichier contenant une chaine ?
    Par narmataru dans le forum Linux
    Réponses: 2
    Dernier message: 29/04/2004, 10h49

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