Données en binaire

didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007 - 6 avril 2003 à 17:05
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007 - 6 avril 2003 à 18:03
J'aimerai, à l'instar de denini dans "lire/ecrire fichier texte a plusieurs colonnes" faire un fichier de données dans lequel je pourrai écrire à partir d'un prog (et non directement) et aussi les lire.
Genre, plusieurs catégories:
-Perso
->Perso1
->> nom
->> chemin du bmp
->> Texte1
->> ConditionPourTexte2
->> Texte2
->> ...
->Perso2
...

-Objects
->Object1
->> Apparence

-...

Y a t'il un moyen de faire cela de manière simple? (chaque paramètre sera stocké dans une variable différente). De plus, je ne connais pas l'avance le nombre de Perso, d'objects, ect...
Comment faire? merci

3 réponses

cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
6 avril 2003 à 17:32
bonjour,

Structures mémoires :
si tes structures de données sont connues à l'avance, il est simple de définir des structures :
struct Perso
{ string nom;
string chemin_bmp;
...};
struct Objet idem

ensuite, il faut choisir une structure de stockage dans le fichier texte
Une technique courante est de coder un Identifiant d'enregistrement de manière à savoir le relire correctement
Exemple :
'P' pour la struct Perso et 'O' pour la struct Objet

ensuite, il suffit d'écrire les lignes du fichier comme des enregistrements séparés et délimités par des | (par exemple)
P|nomdePerso1|bmp1|...
P|nomdePerso1|bmp1|...
O|apparenceObjet1|...

lors de la relecture, tu lis la ligne :
if P on décode chacun des champs qu'on envoie dans une struc Perso
Attention à bien prévoir tous les cas, en particulier :
- deux délimiteurs qui se suivent (champs non renseigné)
- un délimiteur utilisé dans le texte (à éviter...)
0
cs_vieuxLion Messages postés 455 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 6 avril 2004 8
6 avril 2003 à 17:48
je n'ai pas vu le rapport avec ton titre

il suffit d'un fichier texte pour ce problème ... à moins que tu ne doive stocker des champs binaires.
Si c'est le cas, le fichier délimité ne convient pas
Il faut alors utiliser une autre technique :
par exemple stocker chaque champ sous la forme
nombre d'octets, valeur du champ
0
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
6 avril 2003 à 18:03
Non, je pensais au début faire comme tu me le dis, (oui, les structures, e fait les classes, sont connues) mais j'ai lu quelque part sur le forum que cette méthode était assez lente (surtout que je veux avant tout, crypter les données), d'où ma question sur un système en binaire!
0
Rejoignez-nous