Tri d'un fichier

Tri d'un fichier - C - Programmation

Marsh Posté le 15-01-2006 à 13:53:36    

Bonjour,
 
je souhaiterais trier un fichier de ce type:
le
la
les
un
une
des
 
sans passer par un tableau(pour stocker les lignes car je l'ai déja fait).
 
j'utilises la fonction fgets dans une boucle while mais cela ne me permet que d'avoir les lignes une à une alors que pour faire le tri,il faut que je puisse avoir 2 lignes.
 
Merci

Reply

Marsh Posté le 15-01-2006 à 13:53:36   

Reply

Marsh Posté le 15-01-2006 à 13:54:47    

et genre faire 2 fgets [:dawa] ?

Reply

Marsh Posté le 15-01-2006 à 14:07:25    

Joel F a écrit :

et genre faire 2 fgets [:dawa] ?


Si mon fichier est:
un
une
des
le
la
 
et que j'utilises,j'aurais ce que je souhaites?

Code :
  1. int tri(FILE *flot, int(*cmp)(const char *,const char *))
  2. {
  3.   char ligne[10];
  4.   if(flot != NULL)
  5.     {
  6.       while(fgets(ligne,sizeof ligne,flot))
  7.       while(fgets(ligne,sizeof ligne, flot))
  8.         {
  9.           if((*cmp)(ligne,ligne)>0)
  10.             {
  11.               /*fonction qui gere les echanges*/
  12.             }
  13.         }
  14.      fclose(flot);
  15.    }
  16. }

Reply

Marsh Posté le 15-01-2006 à 14:17:44    

Gattuso a écrit :


Code :
  1. int tri(FILE *flot, int(*cmp)(const char *,const char *))
  2. {
  3. <...>
  4.       while(fgets(ligne,sizeof ligne,flot))
  5.       while(fgets(ligne,sizeof ligne, flot))
  6. <...>
  7. }



Pourquoi while ?


      if (fgets(ligne,sizeof ligne,flot) != NULL)
      {
         if(fgets(ligne,sizeof ligne, flot) != NULL)
         {
            /* traitement... */
         }
      }


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 15-01-2006 à 14:23:49    

Gattuso a écrit :


je souhaiterais trier un fichier de ce type:
le
la
les
un
une
des
 
sans passer par un tableau(pour stocker les lignes car je l'ai déja fait).


Je ne pense pas que ce soit possible... AMA, il faut définir une clé, lire, indexer, trier l'index, créer le nouveau fichier en se basant sur l'ancien et l'index.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed