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

Langage Java Discussion :

copier le contenu d'un fichier dans un autre en précisant ou


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut copier le contenu d'un fichier dans un autre en précisant ou
    bonjour,

    je veux copier un fichier dans un autre, mais en precisant a quel endroit ce fichier doit etre insert.
    ce que je veux c'est remplacer les includes (.h) d'un programme C par leur contenu sans effacé le include
    exemple: j'ai un fichier A.h et un fichier B.c
    le fichier B.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    --
    #include "A.h"
    using namespace std;
     
    void decoupe(string&);
    // Decoupe une chaine de caractères en lignes de LARGEUR_MAXIMUM caractères au maximum
    // Essaye de découper au niveau des espaces si il y en a
     
    void affiche(string&);
    ...
    le resultat doit etre ça
    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
    17
    18
    19
    20
    21
    22
    23
    24
     
    //#include "A.h"
     
     
    namespace nsBrainfuck
    {
        /**
            * La classe Brinfuck permet d'analyser un programme en brainfuck, afin de l'interpréter
            */
        class Brainfuck
        {
          ...
    }
    }
    //fin include" A.h"
     
    using namespace std;
     
    void decoupe(string&);
    // Decoupe une chaine de caractères en lignes de LARGEUR_MAXIMUM caractères au maximum
    // Essaye de découper au niveau des espaces si il y en a
     
    void affiche(string&);
    ...
    vous allez me dire que le gcc fait ça, oui mais pas comme je le souhaite moi

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Quel rapport avec java?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut
    je veux le faire en java

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    quel est ton code actuel, qu'est-ce qui te bloque concrètement? Parce qu'on ne va pas réaliser le préprocesseur à ta place!

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 192
    Par défaut
    mon problème est comment localisé le "include" récupéré le nom du fichier.h puis insert le contenu du fichier qui est dans un Buffer
    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
    17
    18
    19
    20
    21
     
    File di   = new File("D:/Source/mini1/");
    File fl[] = di.listFiles();
    BufferedReader lecteurAvecBuffer = null;
    //  boucle sur le repertoire 
    for (j=0; j < fl.length; j++)
    		{
    		   if( fl[j].getName().toString().endsWith(".h")){
    			  try
    		      { /** lecture des fichiers .h  **/
                     lecteurAvecBuffer = new BufferedReader(new FileReader(fl[j].getCanonicalPath())); 
    			  }
    		      catch(FileNotFoundException exc)
    		      {
    		    	exc.getMessage();
    		      }
    			  	//remplissage de la liste avec les noms de fichiers .h	  
    			      fileName.add(fl[j].getName());
    	   		      i=i+1;
     
    	    	}
    et la suite mais avec le code qui suit j'ecri a la fin du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	   FileOutputStream BuferWriter = new FileOutputStream("D:/Source/mini1/cowsay1.cpp",true); //append
    			while ((ligne = lecteurAvecBuffer.readLine()) != null){
    		    //  ecriture dans le fichier.cpp
    				PrintStream printtofile = new PrintStream(BuferWriter);
    				printtofile.println(ligne);
    		            }
    				  BuferWriter.close();

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    bon alors,
    1) éviter de créer un printstream dans la boucle, ca va te manger les resources
    2) il suffit dans ta boucle de tester la ligne (exemple: si elle commence par #include alors extraire avec une expression régulière ce qui se trouve entre "" ou <>, et appeler un méthode qui va insérer le contenu de ce fichier dans le stream)

    Pour les expressions régulière, les classes Pattern et Matcher sont destinées à ça.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/04/2009, 00h14
  2. copier le contenu d'un fichier dans un autre avec séparateur
    Par sws2008 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 03/12/2008, 10h56
  3. Réponses: 4
    Dernier message: 28/08/2007, 18h11
  4. Copier le contenu d'un fichier dans un autre
    Par moncef357 dans le forum Pascal
    Réponses: 20
    Dernier message: 09/05/2007, 17h02

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