IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

fichiers et concaténation...


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Par défaut fichiers et concaténation...
    Bonjour,

    Voilà je suis en train d'écrire une procédure qui écrit un fichier dont le contenu doit etre la concaténation de plusieurs fichiers du meme type + deux lignes en début de fichier que je ne peux calculer qu'après la concaténation faite....
    Pour cela je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for(it=filenames.begin(); it!=filenames.end();it++)
        {
          ifstream file((*it).c_str());
          if(file)
    	{
    //calcul de somme et de nbP...
    	  while(getline(file,line))
    	    {
    	      fichier << line <<endl;
    	    }
    	}
        }
    //ajout des deux lignes de début...
    fichier.seekp(0);
      fichier << somme << endl;
      fichier << nbP <<endl;
    Seulement apparemment l'ajout de ces deux lignes modifie ce que j'ai écrit au tout début dans ma boucle...Je suppose que ces deux lignes écrase le début de mon fichier...J'ai essayé d'ouvrir le fichier en mode "ate" à priori ça ne change rien...
    Est ce que qqn a une idée de comment procéder au plus simple?

    J'avais penser faire deux fichiers indépendants, un avec l'ensemble des données des fichiers à concaténer et l'autre avec les deux lignes puis concaténer les deux mais manifestement on ne peut pas concaténer deux ofstream facilement...

    Merci

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je te conseillerais de procéder ainsi:
    1/ Tu récupère le contenu du fichier 1 et tu le met dans un buffer
    2/ Tu récupère le contenu du fichier 2 et tu le met dans un autre buffer (ou à la suite du 1er buffer)
    3/ Tu calcule les deux premières lignes que tu met dans un nouveau buffer
    4/ Tu concatène tes buffers dans le bon ordre
    5/ Tu écris le tout dans un nouveau fichier

    Hope it helps

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Par défaut
    Ok , j'étais en train justement de voir du coté des buffers mais je n'en ai encore jamais utilisé... Je vais donc voir de ce coté là et je vous tiens au courant. Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Par défaut
    Voilà j'ai une solution qui marche je ne sais pas si c'est la meilleure ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for(it=filenames.begin(); it!=filenames.end();it++)
        {
          ifstream file((*it).c_str());
          if(file)
    	{
    //calcul de somme et nbP...
    	  while(getline(file,line))
    	    {
    	      buffer << line << endl;
    	    }
    	}
        }
      fichier << somme << endl;
      fichier << nbP <<endl;
      fichier << buffer.str() <<endl;
      fichier.close();
    Merci à rOd

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fichier texte : concaténer ligne 2 à 2
    Par mamax29 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 06/01/2019, 15h19
  2. Réponses: 3
    Dernier message: 08/02/2015, 20h54
  3. concaténer fichiers texte ligne par ligne
    Par tiboleo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/03/2006, 13h45
  4. [debutant] concaténation de fichiers
    Par Spyco dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 13/07/2005, 10h52
  5. Comment concaténer plusieurs fichiers en un ?
    Par souch dans le forum Langage
    Réponses: 16
    Dernier message: 14/12/2004, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo