Problème lecture structure dans fichier
Fermé
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
-
28 mars 2013 à 11:36
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 2 avril 2013 à 20:56
glennog Messages postés 293 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 19 novembre 2013 - 2 avril 2013 à 20:56
A voir également:
- L'importateur de fichiers a détecté une incohérence dans la structure de fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Ouvrir fichier .bin - Guide
2 réponses
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
28 mars 2013 à 12:33
28 mars 2013 à 12:33
Bonjour,
Il ne faut pas écrire directement une struct dans un fichier à cause l'alignement en mémoire : https://fr.wikipedia.org/wiki/Alignement_en_m%C3%A9moire
Et aussi l'endianness je pense problème sur la portabilité.
Créez un format pour vos données comme les fichiers .ini par exemple
Il ne faut pas écrire directement une struct dans un fichier à cause l'alignement en mémoire : https://fr.wikipedia.org/wiki/Alignement_en_m%C3%A9moire
Et aussi l'endianness je pense problème sur la portabilité.
Créez un format pour vos données comme les fichiers .ini par exemple
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
4
Modifié par glennog le 29/03/2013 à 16:52
Modifié par glennog le 29/03/2013 à 16:52
ok
mais , alors , dis moi comment faire pour sauvegarder les elements de ma structure ?
merci d'avance
mais , alors , dis moi comment faire pour sauvegarder les elements de ma structure ?
merci d'avance
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
29 mars 2013 à 20:40
29 mars 2013 à 20:40
Salut glennog,
Comme tu as un besoin identifié et une structure assez simple, tu peux, par exemple, créer une struct de sauvegarde, dans laquelle les 3 éléments sont des chaînes C, une fonction qui convertit ta struct d'origine (qui sera ta struc de travail), en struct de sauvegarde (en convertissant l'entier en chaîne C, donc), et sauvegarder la structure composée de chaînes C, et faire l'opération inverse pour le chargement.
Sinon, il y a des bibliothèques qui gèrent cela. Ce type d'opérations s'appelle la "sérialisation" des données.
Dal
Comme tu as un besoin identifié et une structure assez simple, tu peux, par exemple, créer une struct de sauvegarde, dans laquelle les 3 éléments sont des chaînes C, une fonction qui convertit ta struct d'origine (qui sera ta struc de travail), en struct de sauvegarde (en convertissant l'entier en chaîne C, donc), et sauvegarder la structure composée de chaînes C, et faire l'opération inverse pour le chargement.
Sinon, il y a des bibliothèques qui gèrent cela. Ce type d'opérations s'appelle la "sérialisation" des données.
Dal
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
4
30 mars 2013 à 07:47
30 mars 2013 à 07:47
ok, Dal ,
mais , stp , dis moi quel genre de structure je peux utiliser ?
merci
mais , stp , dis moi quel genre de structure je peux utiliser ?
merci
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
2 avril 2013 à 18:15
2 avril 2013 à 18:15
une struct de sauvegarde, dans laquelle les 3 éléments sont des chaînes C
utilise snprintf pour convertir de façon sécurisée sans dépasser la taille allouée à ta chaîne (et vérifier que la conversion s'est bien passée) de int à char *.
Pour l'opération inverse, convertir de char * à int avec strtol.
Dal
utilise snprintf pour convertir de façon sécurisée sans dépasser la taille allouée à ta chaîne (et vérifier que la conversion s'est bien passée) de int à char *.
Pour l'opération inverse, convertir de char * à int avec strtol.
Dal
glennog
Messages postés
293
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
19 novembre 2013
4
2 avril 2013 à 20:56
2 avril 2013 à 20:56
ok , merci pour le doc , je teste , et je te donne la suite
merci , bonne soirée à toi
merci , bonne soirée à toi