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 : Erreur création d 'index [ Archives / Fichier / Disque ] (RootASM)

lundi 3 avril 2006 à 11:13:07 | Erreur création d 'index

RootASM

Bonjour,

Voila, je crée un fichier qui contient des informations sur des membres d'un club et pour éviter de tout le temps accéder au fichier, je crée un index qui contient le nom et le numero de la personne pour faire mes recherche en vue de modifier ou supprimer un enregistrements.
Au depart le fichier est "bidonné", et ne contient rien
Le probleme vient de ma fonction Creation_index, le programme plante tout simplement...
Lorsque je vais dans le debugger VisualC++ il me dit que l'expression ne peut etre évaluer

Voici la fonction Creation_index

void Creation_index(struct MEMBRE *mbr, struct INDEX *ind)
{
 FILE *fp;
 int i;

 fp = fopen("membre.dat", "r+b");                            ouvre le fichier

 fread(mbr, sizeof(struct MEMBRE), 100, fp);         lit les 100 enregistrements

 for(i=0;i<100;i++)
 {
  strcpy(ind->nom, mbr->nom);                                  place dans l index le nom trouver dans le fichier
  ind->numlicense = mbr->numlicense;                     le num de la personne
  ind->position = i;
  ind ++;
  mbr++;
 }

 fclose(fp);

Et voila ma fonction Affiche

void Listage_fichier(struct INDEX *ind, struct MEMBRE *mbr)
{
 FILE *fp;
 int nbenreg = 0;

 system("cls");
 fp = fopen("membre.dat", "r+b");
 if(fp == NULL)
 {
  printf("ERREUR\n");
 }
 else
 {
  fread(mbr, sizeof(struct MEMBRE), 100, fp);

  printf("\n                            LISTE DES MEMBRES\n");
  printf("                            -----------------\n\n");

  do
  {
   if(strcmp(ind->nom, " ") != 0)                         c'est ici que l 'erreur se produit
   {
    printf("%d %s %s %d/%d/%d\n", ind->numlicense, mbr->nom, mbr->prenom, mbr->nais.jour, mbr->nais.mois, mbr->nais.annee, mbr->sexe);
   }
   mbr++;
   ind++;
   nbenreg++;

  }while(nbenreg < 100);

 }

 fclose(fp);

 printf("\nAppuyer sur une touche pour continuer...");
 getch();

Merci


lundi 3 avril 2006 à 22:01:31 | Re : Erreur création d 'index

louis14

il faudrait initialiser les variables avec des valeurs nulles au départ. Mais le plus imortant est de tester le résultat de fread pour voir si quelque chose a été lu  et traiter selon les cas :
- lecture ok => on recopie
-lecture pas ok , on met des valeurs par défaut, mais surtout on signale que rien n'a été lu par une valeur en retour.
à toi de jouer

louis14

mardi 4 avril 2006 à 10:49:30 | Re : Erreur création d 'index

RootASM

J'ai tester la valeur retournée par fread et elle est bien égale au nombre d'enregistrement (100).
Si la lecture n'a pas été je ne peux pas mettre des valeurs par défaut car mon index me sert pour faire mes ajout, suppression...



Cette discussion est classé dans : fichier, index, ind, fp, mbr


Répondre à ce message

Sujets en rapport avec ce message

Lire toutes les chaines d'un fichier [ par JMGR ] Salut,J'ai fait un programme qui charge toutes les chaines séparées par des espaces, et la boucle for ne se termine jamais, car la dèrnière chaine se vc++ : pb d'ecriture dans fichier taille sup a prévu [ par adidmamah ] g un groooooo pb qui m'épate sincerementj'ecris dans un fichier en utilisant un structure : struct data { char nom[30]; enregister les resultats dans un fichier txt. [ par ekinoks ] j'essepaire que vous allé pouvoir m'evité le susside:-/c'est un decrypeteur de fichier, j'aimeré enregistré tout les resultat dans un fichier TXT com Ecriture dans un fichier [ par sebleboss2002 ] Salut tout le monde !Ce coup-ci, j'ai un problème dans l'enregistrement de type integer dans un fichier texte. Voici mon code :#include <iostream.h&g Petit programme basique sur les fichiers mais je ne suis pas doué^^ [c++] [ par barbamaman ] Coucou :) Je débute juste en C++ et je ne suis pas doué pour le coup^^ J'ai un exercice sur les fichiers qui me demande de faire ça: Pour toutes les Lire dans un fichier [ par SfyLer ] C'est bon j'ai fini mon programme ! enfin presque ! :')J'aimerais lire dans un fichier, donc je l'ouvre et j'utilise ceci:char szBuffer[5000];while(!( Lire un fichier via HTTP [ par yugiohjcj ] Bonjour,je programme en C et je sais ouvrir/lire/écrire un fichier grâce à fopen() sur mon disque dur. Mais là, je veux faire exactement pareil sauf q probleme pour ecrire dans un fichier en C [ par kekobaron ] Bonjour,Je suis novice en C et je suis confronté à un probleme. Je souhaite enregistrer une phrase dans un fichier mais seul le premier mot est enregi Hauteur et largeur d'un fichier jpeg [ par tintin72 ] Salut,Je cherche comment faire pour charger un fichier jpeg afin de récupérer sa hauteur et sa largeur.En fait je veux pas charger l'image entièrement Lecture de caractere speciaux a partir d'un fichier [language c] [ par rouliow ] Bonjour, j'ai un problème en language C.J'aimerai crée une fonction qui ouvre un fichier .txt et qui sauvgarde chacun des caracteres du fichier dans u


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.