Trier une liste de ligne ...

Trier une liste de ligne ... - C++ - Programmation

Marsh Posté le 23-05-2003 à 19:32:17    

Voila en fait j'ai un fichier .txt avec plein de ligne :)
je cherche à ne récuper les lignes ou se trouve une chaine précise (ici Enabled). voila mon programme passe pas la compilation :) et je capte pas trop les problemes.
J'ai déja fait pas ma de java mais je débute en C, et oui spa logic :)
 
merci de votre aide :
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. main() {
  4. char p[254];
  5. char *s;
  6. s=p;
  7. char c;
  8. char *res;
  9. while((c=getchar())!=EOF) {
  10.  if(c!='\n') {
  11.   *(s++)=c;
  12.  }
  13.  else {
  14.   if(srtsrt(*s,"Enable" )!=NULL) {
  15.    printf("%s",p);
  16.   }
  17.   s=p;
  18.  }
  19. }
  20. }

Reply

Marsh Posté le 23-05-2003 à 19:32:17   

Reply

Marsh Posté le 23-05-2003 à 20:09:56    

un void main(void) ou int main(etc...) serait bien deja, mais surtout la fonction c'est strstr et pas srtsrt :)

Reply

Marsh Posté le 23-05-2003 à 20:11:16    

regarde fgets également

Reply

Marsh Posté le 23-05-2003 à 20:20:35    

le premier s=p devraai pas etre apres la declaration des variable ?

Reply

Marsh Posté le 23-05-2003 à 20:22:24    

j'ai fait nimp je retouche là

Reply

Marsh Posté le 23-05-2003 à 20:39:45    

Voila j'ai regarder fgets et effectivement j'en ai besoin :)
maintenant il le seul pb c'est que ca quite pas le prog a la fin il doit recherché encore un ligne mais je voi pas pk
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. void vider(char* p);
  4. main(void) {
  5. FILE * pFile;
  6. char p[254];
  7. pFile = fopen ("new.txt" , "r" );
  8. fgets (p , 254 , pFile);
  9. while(p!=NULL) {
  10. if(strstr(p,"Enable" ))
  11.  printf("%s",p);
  12. fgets (p , 254 , pFile);
  13. }
  14. }

Reply

Marsh Posté le 23-05-2003 à 20:55:46    

vala now ca met ds un fichier ^^ mais ca fini toujour pas tout seul :/
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. void vider(char* p);
  4. main(void) {
  5. FILE * pFile;
  6. FILE * export;
  7. char p[254];
  8. pFile = fopen ("new.txt" , "r" );
  9. export = fopen ("sort.txt" , "w" );
  10. fgets (p , 254 , pFile);
  11. while(p!=NULL) {
  12. if(strstr(p,"Enable" ))
  13.  fputs (p , export);
  14. fgets (p , 254 , pFile);
  15. }
  16. }

Reply

Marsh Posté le 23-05-2003 à 21:00:54    

EpoK a écrit :

vala now ca met ds un fichier ^^ mais ca fini toujour pas tout seul :/
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. void vider(char* p);
  4. main(void) {
  5. FILE * pFile;
  6. FILE * export;
  7. char p[254];
  8. pFile = fopen ("new.txt" , "r" );
  9. export = fopen ("sort.txt" , "w" );
  10. fgets (p , 254 , pFile);
  11. while(p!=NULL) {
  12. if(strstr(p,"Enable" ))
  13.  fputs (p , export);
  14. fgets (p , 254 , pFile);
  15. }
  16. }




ne pas oublier les fclose deja
y a quoi dans tes fichiers txt ?

Reply

Marsh Posté le 23-05-2003 à 21:05:39    

samuelp a écrit :


ne pas oublier les fclose deja
y a quoi dans tes fichiers txt ?


 
bon j'ai fclose mais ca sort toujours pas :)
 
 
dans mon txt du type :
 
sfdsqfqsdffds Enable qsd qsd qdsqsd
sqdqdsqSDQSDSQDQDSQDSQDQqsdsqd
qsdsqdsqd Enable dsqqsdsqdsqdsqd
sqdsqdsqdsqdqsd

Reply

Marsh Posté le 23-05-2003 à 21:12:06    

essayes while (caracter=fgetc(fp) != EOF)
 
Donc reprends ce que tu avais fait au debut et adapte ce que je t'ai donné

Reply

Marsh Posté le 23-05-2003 à 21:12:06   

Reply

Marsh Posté le 23-05-2003 à 21:34:37    

samuelp a écrit :

essayes while (caracter=fgetc(fp) != EOF)
 
Donc reprends ce que tu avais fait au debut et adapte ce que je t'ai donné

gné? je vois pas pourquoi fgets est pas bien...

Reply

Marsh Posté le 23-05-2003 à 21:36:33    

++Taz a écrit :

gné? je vois pas pourquoi fgets est pas bien...


 
Bah si mais pour fgets faut connaitre la longuer de la ligne, ce qui est un tout petit peu genant.
 
 Mais c vrai que fgets peut aussi faire l'affaire...

Reply

Marsh Posté le 23-05-2003 à 21:39:23    

ben non, pas besoin de la longueur de la ligne    [:spamafote]

Reply

Marsh Posté le 23-05-2003 à 21:42:44    

++Taz a écrit :

ben non, pas besoin de la longueur de la ligne    [:spamafote]  


 
Je me rappelais plus que ct optionnel alors, autant pour moi

Reply

Marsh Posté le 23-05-2003 à 21:44:25    

Ca marche :D merci à ts pour les conseils  :hello:  
 

Code :
  1. #include <string.h>
  2. #include <stdio.h>
  3. void vider(char* p);
  4. main(void) {
  5. FILE * pFile;
  6. FILE * export;
  7. char p[254];
  8. pFile = fopen ("new.txt" , "r" );
  9. export = fopen ("sort.txt" , "w" );
  10. while(fgets (p , 254 , pFile)!=NULL) {
  11. if(strstr(p,"Enable" ))
  12.  fputs (p , export);
  13. }
  14. fclose (pFile);
  15. fclose (export);
  16. }

Reply

Marsh Posté le 23-05-2003 à 21:49:10    

impeccable!

Reply

Marsh Posté le 24-05-2003 à 00:16:25    

c'est quoi la fonction pour concaténer a la fin d'un fichier ?
 
paske là ca m'efface le fichier a chaque utilisation :/

Reply

Marsh Posté le 24-05-2003 à 08:51:57    

c'est le mode d'ouverture du fichier qui compte
 
http://www.cplusplus.com/ref/cstdio/fopen.html
 
(sauf le mode "t" qui n'existe pas, cette page est un bon récapitulatif)

Reply

Marsh Posté le 24-05-2003 à 11:17:05    

++Taz a écrit :

c'est le mode d'ouverture du fichier qui compte
 
http://www.cplusplus.com/ref/cstdio/fopen.html
 
(sauf le mode "t" qui n'existe pas, cette page est un bon récapitulatif)


 
mode a+ et c'est nickel ^^
 
merci  :jap:

Reply

Sujets relatifs:

Leave a Replay

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