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

  FORUM HardWare.fr
  Programmation
  C++

  nombre de fichiers où appartient un terme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

nombre de fichiers où appartient un terme

n°2013369
thebestgir​l
Posté le 31-07-2010 à 14:12:01  profilanswer
 

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.
 

Code :
  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. }

mood
Publicité
Posté le 31-07-2010 à 14:12:01  profilanswer
 

n°2013394
gilou
Modérateur
Modzilla
Posté le 31-07-2010 à 21:20:45  profilanswer
 

http://www.siteduzero.com/forum-83 [...] terme.html
http://www.developpez.net/forums/d [...] ent-terme/
ben voyons...
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2013593
breizhbugs
Posté le 02-08-2010 à 14:21:40  profilanswer
 

Bonjour,
Il faut que tu fasses de cette variable "int nbFile = 0" une variable globale, en gros que tu l

n°2013600
Joel F
Real men use unique_ptr
Posté le 02-08-2010 à 14:37:21  profilanswer
 

breizhbugs a écrit :

Bonjour,
Il faut que tu fasses de cette variable "int nbFile = 0" une variable globale, en gros que tu l


ache pas ta touche TAB


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

  nombre de fichiers où appartient un terme

 

Sujets relatifs
Problème SSL, générer les fichiers .csr et .keyLlistage de fichiers et répertoires
caractères ^M lors de copies de fichiersboucle pour ouvrir plusieurs fichiers en C
Nombre de valeurs différentesLister les fichiers d'un répertoire : problème de portabilité?
Besoin d'information sur les fichiers partagés sur ExcelNombre de cellules
quel logiciel pour faire du SQL sur des GROS fichiers bruts (csv)?[VB/Excel]Comparer liste excel avec liste de fichiers
Plus de sujets relatifs à : nombre de fichiers où appartient un terme


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