begin process at 2012 05 28 11:00:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

aide : charger un tableau de structures dans un fichier et vice versa !!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,168 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales