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 :

Sauvegarde de données


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 38
    Par défaut Sauvegarde de données
    Bonjour,

    J aimerais avoir des avis sur la meilleure facon de sauvegarder des donnees.
    Je m explique:
    J ai un tableau a 2 dimension qui contient des structures qui peuvent contenir un pointeur sur une autre structure.
    Je cherche la meilleur facon de pouvoir sauvegarder tout ce tableau ainsi que la structure pointer si elle est presente, affin de pouvoir tout recharger n importe quand.
    Actuellement la seule maniere que je connaisse pour faire sa, c est d ecrire toute les valeurs dans un fichier texte, mais je trouve sa relativement barbare (et hardcore pour tout recharger) et puis les valeurs stocker peuvent etre lu/modifier hors du programme :/

    Je cherche donc conseil,
    Merci

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Cela s'appelle sérialiser / désérialiser des objets. C'est un peu brutal à faire à la main. Quel est le but de ton projet ? Vu ton profil, je présume que c'est un exercice d'études ?

    Tu peux stocker en binaire éventuellement. C'est moins simple à modifier mais si tu crées un fichier, on pourra toujours le modifier.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 38
    Par défaut
    Cela s'appelle sérialiser / désérialiser des objets.
    Je suppose que sa ce fais avec des langages objet, mais en c pur c'est possible?

    Sa n'est pas un exercice d'etudes, grossomodo je fais un jeux (pour mon plaisir) en ascii pur du style de Dwarf Fortress.
    Je cherche a faire sa pour pouvoir sauvegarder les maps de jeux.

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Qu'est ce qu'un objet, sinon une structure de données accompagnées de méthodes ? Tu peux bien le faire avec des structures en C. Il semble exister des bibliothèques pour le faire.

    Cela te pose t-il vraiment un problème que les fichiers soient en texte ? Tu peux alors imaginer sauvegarder dans des formats bien connus, tels que JSON ou XML. Il existe des parseurs C pour ces langages.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 38
    Par défaut
    Cela te pose t-il vraiment un problème que les fichiers soient en texte
    Non cela ne pose pas spécialement de problème, je recherche s'il n existe pas d autres "manières" (plus optimisées pour cette tâche) de faire cela.
    Je vais regarder la bibliothèque tpl, merci pour le lien.

    Sinon, quelle serait selon toi la méthode la plus rapide à traiter, entre les 3 que tu proposes ? (tpl, JSON, XML)

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Si tu n'as pas beaucoup de données, ça ne changera pas grand chose d'être en texte ou en binaire, si tu travailles sur PC.

    Que choisir ? Je n'ai jamais traité d'XML ou de JSON en C, donc je ne peux pas te conseiller de bibliothèque pour ça.
    - La plus rapide est peut-être TPL car tu as déjà la bibliothèque.
    - Je sais que http://json.org/ donne des liens vers plein de parseurs, donc des parseurs en C ; j'ai utilisé un parseur pour Java, c'était trivial à mettre en œuvre.
    - Je sais qu'il existe libxml2 pour le XML en C (http://www.xmlsoft.org/).
    Si TPL te convient, ne cherche pas plus loin. Vu ton projet, cela me semble bien.

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Stocker un pointeur, et le contenu pointé, pour le recharger, c'est tout à fait possible, mais ça demande un peu de manipulation

    Ton pointeur, ce n'est qu'une adresse mémoire, qui n'est valide que dans un contexte d'exécution. Si tu changes ce contexte, il faut changer le pointeur

    cas simple pour l'exemple : sauver des pointeurs qui contiennent du texte ou des nombres.
    Pour chacun, tu créés un fichier (ou une entrée dans un fichier) qui contient un identifiant (pour recharger le bon au bon endroit) et le pointé. Attention à bien utiliser ntohs (ou htons) pour les nombres (Network TO Host Short -- Host TO Network Short).
    Lors du chargement : tu cherches l'identifiant, tu lis la valeur, tu alloues la zone mémoire avec malloc puis tu copies les données dans cette zone mémoire.

    Cas plus complexe : tu as un pointeur sur une structure qui contient elle-même un pointeur : dans ce cas, il te faut commencer par sauver le pointeur interne à la structure, puis la structure. Et au chargement, tu devras faire 2 allocation : alloues d'abord la mémoire pour le pointeur de la structure, puis alloues la zone pour la structure, renseigne le pointeur de la structure puis remplis les champs.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 38
    Par défaut
    Je vois un peu le delire.

    Merci pour vos avis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Comment sauvegarder des données ?
    Par Aspic dans le forum VB.NET
    Réponses: 14
    Dernier message: 15/07/2007, 15h47
  2. Sauvegarde de données dans fichier csv
    Par issou dans le forum C
    Réponses: 1
    Dernier message: 22/12/2005, 08h36
  3. [debutant][XML] sauvegarde de donnée provenant de textbox
    Par moust dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 28/06/2005, 15h22
  4. sauvegarde des données des tables
    Par tomm dans le forum Bases de données
    Réponses: 18
    Dernier message: 27/04/2004, 21h29
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

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