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

Java Discussion :

Java et les traitements de chaines


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut Java et les traitements de chaines
    Bonjour à tous, j'ai un grand problème que je n'arrive pas à résoudre, je me tourne vers vous Espérant trouver ma solution:
    Alors j'ai un fichier texte, j'arrive à lire dans ce texte, chercher un mot précis... et j'ai un autre fichier à la sortie
    dans lequel j'arrive à écrire, mon problème est le suivant:
    quand je trouve un mot, comment faire pour passer à la ligne suivante dans mon fichier texte, la recopier dans mon fichier de sortie, avec une possibilité
    de modifier cette ligne...? (je suis bloqué la!!!!!)

    je vous remercie bcp pour toute réponse
    Cordialement

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Montre nous ce que tu as fait, et où tu bloques ...

    Là comme ça on ne peut pas grand chose pour toi ...

  3. #3
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut
    Oui c'est vrai, voici mon code:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    import java.io.*;
     
    public class ReadFile {
     
    	/**
             * input : .cpp file, This class read an C++ file, and write in a JAVA file
             * 
             * @param args
             */
    	private static String mot = "//## auto_generated"; /* word to search */
     
    	public static String getMot() {
    		return mot;
    	}
    	/*
    	 * Vérifier que le suivant existe
    	 */
    	public boolean hasNext() {
    		return true;
    	}
     
    	private static String chaine = "";
     
    	public static void lecture() {
    		/*
    		 * This function read data from the input file
    		 */
     
    		String fichier = "MeteringPkg.cpp"; // file we need to read (.cpp)
    		String ligne; // to read line by line
     
    		/* Read file */
    		try {
    			InputStream myFic = new FileInputStream(fichier);
    			InputStreamReader myFich = new InputStreamReader(myFic);
    			BufferedReader br = new BufferedReader(myFich);
    			try {
    				while ((ligne = br.readLine()) != null) {
    					// System.out.println(ligne); // To show the text in console
    					chaine += ligne + "\n";
    				}
    				/**
                                     * Search a word in the text
                                     * 
                                     * @return true if the word exist
                                     * */
    				if (chaine.contains(mot)) {
    					System.out.println("The word '" + mot + "' est trouvé");
    				} else {
    					System.out.println("The word '" + mot + "' n'existe pas");
    				}
    			} finally {
    				br.close();
    			}
    		} catch (Exception e) {
    			System.out.println(e.toString());
    		}
    		/* ** Vérifier si le mot existe*** */
    		if (chaine.contains(mot)) {
    			int n = 2;
    			String Char = mot.substring(0, n); // Récupérer les n premières
    			// lettres
    			System.out.println("les " + n + " premieres lettre sont : " + Char);
     
    			if (mot == getMot() && Char != "") {
    				System.out
    						.println("On recopie le suivant dans le fichier Java!");	
    			}
    		}
    ////////////////////////////////////
    //Je bloque à ce niveau en fait//
    	}
     
    	public static void recherche() {
    		/*
    		 * this function search a string in the C++ file
    		 * 
    		 * @return true if the string exist
    		 */
    		/* NOT IMPLEMENTED YET */
    	}
     
    	public static void ecriture() {
    		/*
    		 * This function write in a Java file
    		 */
    		FileWriter file = null;
    		try {
    			file = new FileWriter("FichierDeSortie.java");
    			try {
    				if (chaine.contains(mot))
    					file
    							.write("static toto titi = new toto(tutu , nbre1 , nbre2); c'est un exemple ");
    			} finally {
    				file.close();
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public static void main(String[] args) {
    		lecture();
    		ecriture();
    		System.exit(0);
    	}
    }
    Merci encore

  4. #4
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ben comme vu dans ton autre thread, il serait pas mal d'effectuer la lecture et l'écriture en même temps.
    L'idée étant de lire ligne par ligne, et d'écrire en même temps.
    L'intérêt n°1 étant de ne pas tout stocker en mémoire surtout si chaque ligne se suffit à elle-même
    L'intérêt n°2 étant que tu peux modifier ta ligne entre la lecture et l'écriture.

    En très gros ça donnerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ((ligne = br.readLine()) != null) {
      ligne = fonctionQuiModifieLaLigne(ligne);
      file.write(ligne);
    }
    Du coup tu n'as plus de variable "chaine".
    Si tu veux savoir après coup si ta ligne contient la chaine, tu peux toujours mettre un booléen à true au fur et à mesure de ton traitement.

  5. #5
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut
    J suis d'accord avec toi Jedifix pour optimiser le code c'est mieux, mais ça serait quoi la fonction : fonctionQuiModifieLigne(), telle est ma question en fait?????

  6. #6
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ben je te retourne la question:
    avec une possibilité
    de modifier cette ligne
    Nous tout ce qu'on sait c'est que tu veux modifier la ligne, à toi de nous en dire plus

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

Discussions similaires

  1. [C#] Traitement de chaine
    Par david71 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 03/03/2005, 16h29
  2. Technologie Java sur les téléphones mobiles
    Par tahiti bob dans le forum Java ME
    Réponses: 6
    Dernier message: 04/12/2004, 13h20
  3. [CR]Traitement de chaines dans les formulas
    Par teckilax dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 05/07/2004, 09h01
  4. [Débutant] Dialogue Java entre les frames pour client HTML
    Par Carrel dans le forum Général Java
    Réponses: 4
    Dernier message: 03/06/2004, 10h39
  5. Réponses: 3
    Dernier message: 24/10/2003, 21h46

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