Accueil > Forum > > > > aide : charger un tableau de structures dans un fichier et vice versa !!
aide : charger un tableau de structures dans un fichier et vice versa !!
mardi 6 avril 2010 à 03:08:19 |
aide : charger un tableau de structures dans un fichier et vice versa !!

onh890
|
salut les amis j'ai une question à vous poser.
ben je voudrais que quelqu'un m'aide sur deux fonctions,l'une permette de charger les données stocker dans un fichier F sous forme de structures bien ordonnées,dans un tableau T de structures tel que la premiere struture dans le fichier F soit chargée exactement dans la premiere cellule du tableau T càd T[0],et que la deuxieme structure dans le fichier F soit chargée exactement dans la deuxieme cellule du tableau T càd T[1],et ainsi de suite jusqu'à qu'on aboutit la fin du fichier F,quant à la deuxieme fonction fera le même travail mais dans le sens inverse,càd stocker les données d'un tableau de structures T' dans un fichier F' tel que T'[0] soit la premiere à stocker dans le fichier F' et T'[1] soit la deuxieme et ainsi de suite jusqu'à qu'on aboutit à la derniere donnée T'[n],mais tout en respectant l'ordre d'enregitrement,càd si on veut recuperer les données du fichier F' et qu'on veut les stocker dans un tableau de structures T" on dois stocker la premiere structure dans le fichier F' qui dans notre càs T'[0] soit chargée exactement dans la premiere cellule du tableau T" càd T"[0] et ainsi de suite,ça à l'air beaucoup de bavarderie mais desolé je n'ai pas d'autre choix pour vous expliquer ce que j'ai affronti  .
bon voici les deux fonctions que j'ai construit même si tout dans mon code ça a l'air logique,pourtant il m'affiche des erreurs logiques  :
//la structure
typedef struct STR
{
int x;
int y;
char s[25];
}STR;
//la fonction qui permet de charger un fichier dans un tableau de structures.
int chargement(STR tab[],FILE *ptr)
{
int i=0;
place q;
ptr=fopen("fichier.txt","r");
while ((fread(&q, sizeof(place), 1, ptr))!=0)
{
strcpy(tab[i].s,q.s);
tab[i].x=q.x;
tab[i].y=q.y;
i++;
}
fclose(ptr);
return 0;
}
//lafonction qui permet de sauvegarder un tableau dans un fichier.
int sauvegarde (STR t[],FILE* help)
{
help=fopen("help.txt","w");
if (help!=NULL)
{
for (i=0;i<100;i++)
{
fwrite(&t[i],sizeof(place),1,help);
}
}
fclose(help);
return 0;
}
si quelqu'un peut me mentioner ou se trouve les erreurs dans mon code source ainsi de les corriger,ou me proposer une autre solution qui permettra d'effectuer la même tache je serais vraiment trop reconaissant  .
et merci d'avance.
|
|
mardi 6 avril 2010 à 10:14:20 |
Re : aide : charger un tableau de structures dans un fichier et vice versa !!

ed73
|
Bonjour,
Tu peux commencer par ouvrir tes fichiers en binaire car si on ne le précise pas lors de l'ouverture, celle-ci se fait en mode texte.
ptr=fopen("fichier.txt","rb");
help=fopen("help.txt","wb");
De plus, quel est l'intèrêt de passer les FILE * en paramètres ? Puisque tu ne t'en sers qu'à l'intérieur des fonctions.
|
|
mardi 6 avril 2010 à 16:06:23 |
Re : aide : charger un tableau de structures dans un fichier et vice versa !!

onh890
|
@ed73 :
merci pour tes conseils,j'ai essayeé le truc du fichier binaire mais ça ne marche toujours pas,il y a toujours des erreurs logiques,j'ai verifié mon code source plusieurs fois et je me suis rendu compte que l'erreur est bel et bien de ces deux fonctions ,alors si c'est possible de me reproposer une autre solution en rectifiant mes deux fonctions ou bien de me proposer tes deux propres fonctions et merci d'avance  .
|
|
mercredi 7 avril 2010 à 10:17:56 |
Re : aide : charger un tableau de structures dans un fichier et vice versa !!

CptPingu
|
Ceci fonctionne chez moi (j'ai retiré tes boucles, puisque fread et fwrite sont capables d'écrire des blocks, pas besoin de les faire un par un):
Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 3
typedef struct
{
int x;
int y;
char s[25];
} STR;
int chargement(STR tab[], const char* filename)
{
FILE* ptr = fopen(filename, "rb");
if (!ptr)
return 0;
fread(tab, sizeof(STR), MAX, ptr);
fclose(ptr);
return 1;
}
int sauvegarde(STR tab[], const char* filename)
{
FILE* help = fopen(filename, "wb");
if (!help)
return 0;
fwrite(tab, sizeof(STR), MAX, help);
fclose(help);
return 1;
}
void affichage(STR t[])
{
int i = 0;
for (i = 0; i < MAX; ++i)
printf("%i: x = %i, y = %i, s = %s\n", i, t[i].x, t[i].y, t[i].s);
}
int main(void)
{
STR tab[MAX] =
{
{1, 1, "Pouet"},
{5,18, "Toto"},
{45, 23, "Kikoo"}
};
STR pouet[MAX];
sauvegarde(tab, "help.txt");
chargement(pouet, "help.txt");
affichage(pouet);
return 0;
}
_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
|
|
Cette discussion est classée dans : fichier, help, tableau, stocker, structures
Répondre à ce message
Sujets en rapport avec ce message
Comment stocker une chaine de caractere d'un fichier dans une variable ou un tableau [ par Jarod1980 ]
Bonjour tout le monde,Voilà je voudrais savoir si quelqu'un pourrait m'aider à résoudre un petit probleme. Je voudrais faire un programme qui ouvre un
stocker tableau dans fichier [ par amau96 ]
bonjours, je suis en train d'essayer de developper une bataille navalle, pour cela, je souhaite stocker la grille dans un tableau a 2 dimentions, puis
Comment stocker des données depuis un fichier dans un tableau [ par Jarod1980 ]
Bonjour tout le monde,En fait, mon fichier se compose de 3 colonnes distinctes qui contiennent chacune des chiffres. Je voudrais savoir comment stocke
Recuperer des mots dans un fichier texte et les stocker dans un tableau. [ par amentag ]
Bonjour.Je dispose d'un fichier texte contenant plusieurs mots (sous forme d'une liste) et j'aimerai les récuperer afin de les stocker dans un tableau
remplir un tableau apartir d'un fichier (C++) [ par rif59 ]
bonjour; vous aurez la gentillesse de me montrer comment remplir deux tableau x[n] et y[n] a partir des donnees qui se trouvent dans un tableau qui ja
tableau dans un autre fichier [ par F0ra ]
Bonjour,Je débute en programmation. J'ai besoin de récupérer les valeurs de mon tableau qui se trouve dans mon fichier « toto.cpp »Pour pouvoir ensuit
recuperation de donnes sur fichier texte [ par semnos21 ]
Bonjour,poru certain d'entre vous ce que je vais demander va paraitre simple, ca tombe bien, j'en ai marre de me casser les dents et de perdre du temp
Gestion de fichier / inisialisation tableaux [ par telecomakram ]
Bonjour,J'ai un fichier dont l'organisation des données est ci dessous et à partir de ce fichier je dois intialiser des tableaux comme suit:de nom_cou
Lecture Fichier TXT [ par DroledeBx ]
Bonjour,j'ai un problème de récupération des données à partir d'un fichier texte.Chaque ligne de mon fichier txt est sous la forme:"un_entier un_doubl
fichier pour stocker des instances [ par feriel a ]
bonjour, je cherche à stocker des instances (générées aléatoirement )dans un gros fichier; puis donner à mon programme la possibilité de traiter des
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|