begin process at 2012 05 29 02:06:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

[C++] Manipulation de fichiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C++] Manipulation de fichiers

lundi 20 juin 2005 à 20:01:06 | [C++] Manipulation de fichiers

heyboy

Salut !
Alors, en fait, voilà mon problème, pour copier exactment un fichier, j'utilise ce code :

#include <string>
#include <fstream>
using namespace std;

int main() {
  ifstream in("monfichier.txt"); // L'ouvre pour être lu
  ofstream out("lememe.txt"); // L'ouvre pour écrire dedans
  string s;
  while(getline(in, s))
    out << s << "\n";
}

En fait, ma question est :
que dois-je modifier dans ce code (ou même, si vous pouvez m'en faire un mieux) afin que dans le nouveau fichier, certains mots soient supprimés ?
En clair, dans le texte du départ, s'il y a par exemple le mot "lol" ou "sms", ils ne doivent plus être présents dans le fichier d'arrivée.

Merci d'avance

ps : J'utilise dev-cpp

lundi 20 juin 2005 à 22:38:58 | Re : [C++] Manipulation de fichiers

Pamaury

là çà va être plus compliqué !
Il faut récupérer chaque ligne(comme tu le fais)et
->soit tu fais une recherche des mots que tu veux dedans et un remplacement: s.replace(" lol "," ");
  (note l'espace avant et après le lol !!!)
->soit tu découpe le la ligne en token séparé par des espace et tu compare chzque token aux mots à supprimer.
  (plus long je pense(même presque sûr) .

A m a u r y
lundi 20 juin 2005 à 22:57:04 | Re : [C++] Manipulation de fichiers

heyboy

Ah ok, et je dois faire ça pour chaque mot ?
N'y aurait-il pas un moyen, si par exemple je met tous les mots "indésirables" dans un fichier texte, qu'il les ignore tous ?

(Merci pour ça déjà ;))

mardi 21 juin 2005 à 00:03:59 | Re : [C++] Manipulation de fichiers

Pamaury

Réponse acceptée !
oui c'est possible:
tu crée le fichier interdit.txt avec les noms interdit .

std::vector< std::string > bad_words;

void readBadWords(const char *filename)
{
    std::ifstream in(filename);
    std::string word;
    while(std::getline(in,word))
    {
       word.replace(" ","");
       word.replace("\t","");// supprime les esspace et tabulations !!
       // ajoute un espace avant et après
       word.insert(0," ");
       word.insert(word.size()," ");
       bad_words.push_back(word);
    }
}

int main()
{
  readBadWords("interdit.txt");
  std::ifstream in("monfichier.txt");
  std::ofstream out("lememe.txt");
  std::string s;
  while(std::getline(in,s))
    {
       for(int i=0;i<bad_words.size();i++)
          s.replace(bad_words[i]," ");
       out<<s<<"\n";
    }
}

voilà ceci devrait marcher à un détail près:
si jamais tu écrit dans le fichier original
"\tlol "
alors çà marcheras pas car la tabulation n'est pas un espace et donc la comparaison échoue .

 un moyen d'éviter çà est le suivant:
->pour chaque mot interdit
    ->créer le mot " "+mot+" "
    ->créer le mot "\t"+mot+"\t";
    ->créer le mot "\t"+mot+" ";
    ->créer le mot ""+mot+"\t";

bien sûr ceci fais 4x plus de comparaison .
Sinon tu peux remplacer les tabulation par n espaces dans le fichier original:
s.replace("\t","    ");

A m a u r y
mercredi 22 juin 2005 à 16:15:33 | Re : [C++] Manipulation de fichiers

heyboy

OK, c'est super cool, merci ! :)


Cette discussion est classée dans : fichier, code, fichiers, utilise, manipulation


Répondre à ce message

Sujets en rapport avec ce message

manipulation des fichiers avec c++ [ par zing_tun ] Salut , c Anis de tunis ,en ce moment je suis en stage et je suis charger de developper un outil de synchronisation entre de base de donnees .le conte ouvir un fichier à partir d'un inode [ par nico_fip1 ] Bonsoir,Je travaille actuellement sur un système QNX (type UNIX et POSIX)Si j'ai bien compris, les fichiers d'un dossiers sont gérés par une liste cha écrire des fichiers log [ par aldoniel ] Bonjour, Lorsqu'on a un programme console qui affiche divers trucs à l'écran, on peut sauvegarder en redirigeant l'entrée vers un fichier, mais du co 65535 fichiers ouvert simultanément [ par _sebf ] Lu All, J'ai un soucis sur mon dev. J'ai besoin d'ouvrir 65535 fichiers simultanément sans les fermer. J'utilise le code suivant : #include #include Aide [ par rubaruba ] Bonjour les amisJe ne suis qu'un poussin dans le langage C, et vous soumets ce petit code que je na sais ni compiler ni exécuter: /* Affiche un messag Exporter une classe dans une librairie statique [ par nightlord666 ] Bonjour !Je vient de commencer la programmation en C++ sous Linux, et je suis confronté à un problème. J'aimerais exporter une classe C++ dans une lib Comment ouvrir plusieurs fichiers dans le meme process [ par Toutoun13 ] Bonjour, Je cherche un moyen d'ouvrir plusieurs fichiers dans le meme process. Je m'explique, j'ai dans mon appli un bouton qui me permet d'ouvrir un Fichier TXT dans textbox [ par nerone21 ] Bonjour a tt les codeurs...Lors voila mon probleme, je code avec visual C++ 2005 express et quel fut mon desarroi lorsque je me suis appercu ke nos ch Structure avec un fichier [ par orangepulpe57 ] Bonjour,Je doit réaliser pour la fac un programme qui convertit le code morse en caractère. Le code morse est inscrit sur un fichier txt comme suit:A fichiers dans .exe [ par didoux95 ] Bonjour a tous.Je debut en C/C++ (je programme en JAVA).J'aurais aimé savoir comment est ce que je peu faire pour inserer un fichier dans mon exe et p


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales