Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
862 connectés 

  FORUM HardWare.fr
  Programmation
  C

  creation d'un index

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

creation d'un index

n°1707007
pepito17
Posté le 24-03-2008 à 18:19:06  profilanswer
 

Bonjour, je realise un programme et j'aimerai realiser un index...
 
Mon index se cree avec les fichiers.
 
C'est a dire, J'ai mon fichier, et il contient deux enregistrement sous forme de structure et j'aimerai trier les enregistrements
que j'ai dans mon fichier par ordre alphabetique sur le nom dans une structure index. Seulement ca ne vas et je comprend pas pourquoi...
 
Auriez vous une solution ??
 
nproduit = le nombre d'enregistrement qu'il y a dans le fichier
 

Code :
  1. fseek(fproduit,0,SEEK_SET);
  2. i=0;
  3. while(fread(&produit,sizeof(struct produit),1,fproduit)==1 && i<nproduit)
  4. {
  5.     printf("%s", p->NomProduit);
  6.     system("pause" );
  7.     a=i-1;
  8.     while ((a>=0) && strcmp(p->NomProduit,index[a].NomProduit)<0)
  9.     {
  10.          strcpy(index[a+1].NomProduit, index[a].NomProduit);
  11.          index[a+1].NumProduit=index[a].NumProduit;
  12.          index[a+1].Posi=index[a].Posi;
  13.          a--;
  14.     }
  15.     strcpy(index[a+1].NomProduit, p->NomProduit);
  16.     index[a+1].NumProduit=p->NumProduit;
  17.     index[a+1].Posi=i;
  18.     i++;
  19. }


 
Merci beaucoup, et à tres bientot j'espere !
 

mood
Publicité
Posté le 24-03-2008 à 18:19:06  profilanswer
 

n°1707197
Taz
bisounours-codeur
Posté le 25-03-2008 à 11:24:32  profilanswer
 

Déjà t'as des structs, donc tu peux utiliser = au lieu de faire la recopie membre par membre à la main.
 
Ensuite, ce que tu fais c'est assez couteux. Il y a pas mal de littérature sur comment faire un fichier ordonné: tu peux utiliser une tâble de hachag, une liste chaînée, etc. C'est un poil plus compliqué à mettre en place, mais ça tournera mieux que de trier à chaque fois (surtout trier directement dans le fichier). Essaie de faire un truc simple: tes enregistrements sont à taille fixe, tu peux faire une liste chainée avec un .next qui te donne la position de l'enregistrement suivant. Apres, il te suffit d'insérer dans l'ordre.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  creation d'un index

 

Sujets relatifs
Création d'un script de dézipage sur serveurMysql : création base pour héberger mots de passe
[RCH] Aide ou Site pour création de site + pousséCréation de dossiers à la chaîne
creation d'index , stat oracle ???récuperation de l'Index automatique apres création d'une ligne
Création d'indexbesoin de conseil pour la création d'un index
[VB]création dynamique d'objets et index....[perl/php] création d'index ??
Plus de sujets relatifs à : creation d'un index


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR