begin process at 2008 08 20 17:17:55
1 228 954 membres
315 nouveaux aujourd'hui
14 259 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : utilisation des Fichiers binaire et texte [ Archives / Au secours ] (romca)

utilisation des Fichiers binaire et texte le 17/02/2005 23:18:09

romca
Salut à tous, j'ai un exercice à faire et je sais pas par ou le commencer.
On décrit une structure avec de champs bien précis.
Dans la première question on me demande de "creer une fonction qui permette
de créer à partir de cette structure un fichier séquentiel binaire".

 Je me pose 2 questions:
1)  On ne me precise pas de créer forcément avant une strucure de données
(type "struct nomdelastrucure").Alors j'en deduis la question 2:
2) Si je suis pas obligé de la créer, j'en deduis qu'un fichier peut comprendre
plusieurs champs de type différent? Est ce posssible?
Mais comment faire alors en utilisant les fonctions fopen() et fwrite() par ex?
Par ex pour inclure dans un fichier de nom "fichier" les champs "num" type int, et
même un tableau comme tableau[20], tout ça dans le même fichier?
Et comment ça s'organise au niveau du fichier?

Merci de vos réponses, ça m'aiderai vraiment.

Re : utilisation des Fichiers binaire et texte le 18/02/2005 09:10:39

ymca2003
Un fichier n'est autre qu'une suite d'octets stockés sur le disque. L'interprétation que l'on en fait dépend du contexte. Si tous les octets sont des caractères ASCII affichables alors on pourra parler de fichier texte sinon c'est du binaire pur. Dans ce cas les données peuvent être n'imporque quoi (des entiers, des flottants, des chaînes de caractères, des structures...).

Pour ton exo, tu as une structure de données qui contient une suite de champs nommés avec un type précis, mais en mémoire ce ne sera qu'une suite d'octets que tu adresse dans ton code à partir des éléments de la structure. En fait lorsque tu accède à un élément de ta structure, le compilateur y accède en ajoutant un offset à l'adresse de début de la structure en mémoire de manière transparente pour le programmeur. Cette suite d'octets peut donc être écrite telle quelle dans un fichier avec fwrite et relue avec fread (pour peu que le fichier soit ouvert en mode binaire b). Les octets auront donc une signification en utilisant la structure de données.

Re : utilisation des Fichiers binaire et texte le 18/02/2005 11:28:12

victorcoasne
Membre Club
Bonjour,

Sont passés où mes 2 messsages d'avant ?


Merci,

Le créateur du site http://www.victorlogiciels.com

Re : utilisation des Fichiers binaire et texte le 18/02/2005 11:33:54

romca
Ok merci de tes explications claires.

Donc si je comprend bien je ne peux pas mélanger dans un même fichier
des champs ASCII et binaire.
Donc dans mon exo je suis obligé de creer une structure de donnée avec
des champs différents mélangés type ASCII et binaire.
(Car dans l'enoncé un champs de cette structure est de type char chaine
de caractères (exactement responsable[21] ou il y aura un nom de responsable ).
Puis, j'accède (à cette structure) en créant un fichier (exemple "nomfichier").
Si je veux donc rentrer les données du tableau responsable[21]  dans "nomfichier"
je ne pourrais pas, je suis donc obligé sinon d'en creer un autre.

Est ce que j'ai bon?

Re : utilisation des Fichiers binaire et texte le 18/02/2005 11:55:02

ymca2003
Dans un fichier tu met ce que tu veux. De l'ASCII c'est du binaire (avec seulement un sous-ensemble de valeurs possible).

un exemple de structure complexe:

struct MySousStruct
{
char s[12];
int tableau[64];
};

struct MyStruct
{
char chaine[32];
int entier;
float flottant;
MySousStruct tableaudestruct[4];
};

pour socker dans un fichier :
MyStruct toto;
FILE* file = fopen("toto.bin", "wb");
fwrite(&toto, sizeof(MyStruct), 1, file);

pour lire :
FILE* file = fopen("toto.bin", "rb");
fread(&toto, sizeof(MyStruct), 1, file);

Le point imporant à ne pas oublier c'est que l'ASCII c'est des octets comme n'import quelle autre variable sauf que ces octets ont signification particulière parce que on a decidé de faire une association entre les octets et des caractères alphanumérique et d'en faire un standard. Au niveau matériel, (mémoire disque) on se fout de savoir si c'est de l'ASCII ou pas, c'est des octets. C'est l'appli qui doit savoir la signification des octets qu'elle manipule (on recopiant une suite d'octets dans une structure avec des champs qui donnent du sens au binaire).

Re : Merci!!!! le 19/02/2005 11:18:26

romca
Merci beaucoup, ymca2003 j'ai bien compris maintenant.
Réponses claires et précises, avec des exemples, que demander de plus!! Super!!
Je vais pouvoir commencer et finir cet exercice. Mais le plus important c'est
que j'ai bien pigé.
Salut Victorcoasne, désolé j'ai pas reçu tes messages mais merci quand même.

Salut à tous.

Re : utilisation des Fichiers binaire et texte le 17/04/2005 17:21:25

benus

Je travaille aussi sur les fichiers en ce moment et j'aurai aimé savoir aprés ta lecture avec :
FILE* file = fopen("toto.bin", "rb");
fread(&toto, sizeof(MyStruct), 1, file);

comment tu faisais pour afficher le contenu de ton fichier
J'ai essayé avec :

cout <<  toto  << endl;

mais il me retourne une erreure, y a t-il une fonction spéciale?


Re : utilisation des Fichiers binaire et texte le 18/04/2005 09:04:19

ymca2003
Il faut afficher un par un les membres de la structure car l'opérateur << n'est pas défini pour elle. L'autre solution est de surcharger cet opérateur (je ne sais plus la syntaxe exacte).

Re : utilisation des Fichiers binaire et texte le 15/05/2008 15:22:44

rabi3a


je veux savoir comment faire la gestion de bibliothèque en java(jcreator)


Classé sous : fichier, créer, binaire, type, champs

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
campagne Adwords
Budget : 5 000€
Boite echanges securis...
Budget : 500€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS