Votre question

Nombre de fichiers où appartient un terme c++

Tags :
  • Programmation
Dernière réponse : dans Programmation
31 Juillet 2010 14:25:43

Bonjour,
j'ai un dossier de fichiers textes et je voulais les parcourir mot à mot pour savoir le nombre de fichiers où appartient chaque terme.
le résultat de ce code est erroné, la faute est dans la fonction nbfiles, j'ai pas su le calculer,
j'espère que vous pouvez m'aider à savoir comment le calculer.
  1. #include <dirent.h>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. #include <map>
  6. bool isValid(const std::string& path)
  7. {
  8. return !path.empty() && path != "." && path != "..";
  9. }
  10. void fillMap(std::map<std::string, int>& map, const std::string& filename)
  11. { std::ifstream entree(filename.c_str());
  12. std::string s;
  13. while (entree >> s)
  14. ++map[s];
  15. }
  16. bool exists(const std::string& filename, const std::string& pattern)
  17. { std::ifstream entree(filename.c_str());
  18. std::string s;
  19. while (entree >> s)
  20. if (s == pattern)
  21. return true;
  22. return false;
  23. }
  24. void nbfiles(const std::string& filename)
  25. { std::map<std::string, int> map;
  26. fillMap(map, filename);
  27. int nbFile = 0;
  28. typedef std::map<std::string, int>::const_iterator iter;
  29. for (iter it = map.begin(); it != map.end(); ++it)
  30. if (exists(filename, it->first))
  31. {++nbFile;
  32. break;
  33. }
  34. for (iter it = map.begin(); it != map.end(); ++it)
  35. std::cout << "Le nombre de fichier contenant le terme " << it->first << " est " << nbFile << std::endl<< std::endl;
  36. }
  37. int main()
  38. { static const std::string folder = "in";
  39. DIR* rep = opendir(folder.c_str());
  40. if (rep)
  41. { struct dirent* lecture;
  42. while ((lecture = readdir(rep)))
  43. {
  44. if (!isValid(lecture->d_name))
  45. continue;
  46. nbfiles(folder + "/" + lecture->d_name);
  47. std::cout << std::endl;
  48. }
  49. closedir(rep);
  50. }
  51. system ("pause" );
  52. return 0;
  53. }

Autres pages sur : nombre fichiers appartient terme

6 Août 2010 19:57:37

Si sa peut te servir je viens de développer un programme permettant de chercher ce que tu veux dans les fichiers que tu veux.

Par exemple si tu cherches le mot "lol" il va te dire dans le répertoire que tu veux trouves combien de fichier contient le mot "lol" et à quelle(s) ligne(s).

Tu peux aussi choisir les extensions etcetc...

Bref extrêmement utile.

ReWordTool 0.8 beta
http://www.all-old-files.com/ReWordTool/ReWordTool_v0.8...
Descriptif ici:
http://www.all-old-files.com/?p=26
m
0
l
7 Août 2010 16:41:26

merci bien pour ton aide, oui c'est extrêmement utile.
m
0
l
7 Août 2010 16:46:38

thebestgirl2000 a dit :
merci bien pour ton aide, oui c'est extrêmement utile.

Effectivement j'ai remarqué que bizarrement sa n'existait pas (tout du moins j'en ai vu un seul mais pas vraiment pratique... c'est pour sa que je l'ai développé)
Si tu as des questions sur ce logiciel (comment s'en servir même si j'ai fait en sorte qu'il soit le plus simple possible ^^ :na:  etcetc ) n'hésite pas.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS