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

  FORUM HardWare.fr
  Programmation
  C++

  [c++]faire un grep dans un fichier (newbie style..)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++]faire un grep dans un fichier (newbie style..)

n°1680358
Burps
Posté le 01-02-2008 à 12:31:57  profilanswer
 

Bonjour
 
Ca fait quelques temps que j'ai pas codé, j'ai donc perdu un peu toutes mes bases. Mais la, j'ai besoin d'aller toucher un prgramme et j'ai besoin de votre aide :  
 
J'ai besoin de verifier si un ID appartient à une liste, que j'ecris dans un fichier. Le ficher ressemble à ca :  
[cpp]
1234
4975073
773
993855
...[cpp]
 
donc questions :  
- que dois-je mettre comme #include pour manipuler les fichiers ?
- existe-t-il une fonction qui "grep" un pattern dans un fichier ? ou dois-je la coder moi-meme ?
 
Merci d'avance.
 
++
Nico

mood
Publicité
Posté le 01-02-2008 à 12:31:57  profilanswer
 

n°1680400
Elmoricq
Modérateur
Posté le 01-02-2008 à 13:24:29  profilanswer
 

Un bon point de départ pour t'aider : http://cplusplus.com
 
Il te suffit d'ouvrir ton fichier avec un ifstream, d'en lire chaque ligne avec l'opérateur >> dans un stringbuf, et à partir du contenu de ce stringbuf, en extraire une string qui te permet d'utiliser la méthode find().
 
Ça se fait en quelques lignes de code. [:dawa]

n°1680458
Burps
Posté le 01-02-2008 à 14:29:34  profilanswer
 

ifstream m'a mis sur la piste, thx.
 
J'ai donc recupéré ca :  

Code :
  1. #include <string>
  2. #include <fstream>
  3. #include <iostream>
  4. int main()
  5. {
  6.   // le constructeur de ifstream permet d'ouvrir un fichier en lecture
  7.   std::ifstream fichier( "ListID.txt" );
  8.   if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
  9.   {
  10.     std::string ligne; // variable contenant chaque ligne lue
  11.     // cette boucle s'arrête dès qu'une erreur de lecture survient
  12. //    while ( fichier >> ligne ) // s'arrete a chaque espace
  13.     while ( std::getline( fichier, ligne ) )    // passe ligne par ligne
  14.     {
  15.       // afficher la ligne à l'écran
  16.       std::cout << ligne << std::endl;
  17.     }
  18.   }
  19. }


 
Maintenant, je recherche l'equivalent du "^" dans grep, qui me permettrait de recupérer le 1er élément de la ligne (oui oui, je sais, la reponse doit etre deja dans mon code, mais j'avoue que c pas hyper clair pour moi...)
 
Merci d'avance... again...


Message édité par Burps le 01-02-2008 à 14:29:56
n°1680466
Taz
bisounours-codeur
Posté le 01-02-2008 à 14:36:34  profilanswer
 

bah std::string a un operator==. Après y a pas pour le moment de regex en standard.
 
Tu ferais bien:
- soit d'utiliser grep
- de te metter au boulot. Ce que tu as récupérer est bon, maintenant c'est à toi de coder.

n°1680486
Joel F
Real men use unique_ptr
Posté le 01-02-2008 à 15:04:30  profilanswer
 

boost::regex na ?


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

  [c++]faire un grep dans un fichier (newbie style..)

 

Sujets relatifs
EXCEL VBA Drag&Drop de fichier[fichier.bat]Un programme qui fermerait tous les dossiers actifs
applet d'upload de fichierDezipper fichier automatiquement
sauvegarder feuille dans fichier differentsbouton sur access qui permet d'accéder à un fichier word
Problème validation W3C: "there is no attribute "style""[SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]
Largerur de colonne en feuille de styleMVS : export compte-rendus SAR dans fichier sequentiel
Plus de sujets relatifs à : [c++]faire un grep dans un fichier (newbie style..)


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