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 :

Stockage d'objets dans fichier texte


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut Stockage d'objets dans fichier texte
    Bonjour,

    J'ai un tableau d'objets de type TrieNode que je voudrais stocker dans un fichier texte.
    Chaque objet de type TrieNode comprend les données suivantes:
    --un char
    --un bool
    --un ulong
    --un ulong
    -- 256 uint

    J'aimerais savoir comment stocker ces différentes données dans un fichier texte de sorte à ce que la taille de chaque objets dans le fichier texte soit constante.
    J'ai pensé à stocker un byte pour le char, un byte pour le bool(0 ou 1),20 bytes pour chaque ulong(car le le plus grand nombre en ulong posséde 20 chiffres), et 10 bytes pour chaque uint(car le plus grand nombre en uint possède 10 chiffres).

    Si quelqu'un a une meilleure idée ou même si ce que j'ai dis pose problème, merci de me le signaler.

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Regarde plutôt du côté de la sérialisation XML ou binaire (si tu ne veux pas un accès direct aux données de l'objet ou que tu veux conserver l'état de l'objet).

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    Merci pour la réponse mais pour la sérialisation je ne peux pas l'utiliser car si je stocke le tableau sous cette forme, sachant qu'il peut être très grand alors il sera chargé entièrement en mémoire et ce que je dois faire dois me permettre d'éviter ce problème, je dois pouvoir charger des objets en mémoires par blocs c'est a dire un bloc tout au plus est chargé en mémoire à tout moment et ce bloc ne correspond pas à tout le tableau mais à quelques objets consécutifs du tableau.

    Merci

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Les objets possèdent un identifiant ou bien tu travailles sur la base d'un index ? Je suppose qu'il s'agit du 2ème cas, d'où le besoin d'une taille fixe.

    Tu peux alors essayer de sérialiser tout le tableau et de lire ensuite le XML avec un XmlTextReader (lecture séquentielle, pas de chargement en mémoire) ou éventuellement un XPathDocument (chargement mémoire, mais plus léger qu'un XmlDocument) pour extraire la portion voulue. Et tu désérialises ensuite les objets de ce bloc XML qui sera plus petit que l'ensemble. Ca doit être jouable je pense.

    Sinon il faudra effectivement que tu définisses un format de stockage des données comme tu l'avais dit dans ton premier message et tu écris un fichier binaire avec les informations en question. C'est probablement plus efficace que la sérialisation (au niveau des perf) mais tu devras gérer la lecture / écriture des données.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    Bah en fait chaque objet de type TrieNode stocké dans le fichier texte s'identifie avec sa position dans le fichier texte, c'est pour cela que je peux y accéder en une opération grâce à leur position bien sur en considérant que leur taille est fixe.
    Mais j'ai quand même une question, dans mon programme, je veux utiliser un buffer me permettant de stocker plusieurs objets TrieNode consécutifs du fichier, est ce qu'il est nécessaire que la taille de ce buffer soit un multiple de la taille d'un objet de type TrieNode, si c'est le cas j'ai pas de problème mais si ce n'est pas obligatoire j'ai l'impression que ca poserait un problème pour le dernier objet TrieNode dans le buffer qui ne sera pas complet,je me trompe?

    Merci

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/04/2016, 00h52
  2. Réponses: 13
    Dernier message: 23/09/2011, 18h24
  3. Tstringgrid sauvegardé dans fichier texte
    Par kykyn dans le forum C++Builder
    Réponses: 11
    Dernier message: 15/02/2006, 15h52
  4. [ Vector Fichier ] Vector dans fichier texte
    Par geegee dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2004, 13h56
  5. Insertion dans fichier texte + rapide que TStringList ?
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 26/02/2004, 11h34

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