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 :

Remplacer chr(10) et chr(13) par des espaces


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut Remplacer chr(10) et chr(13) par des espaces
    Salut tout le monde alors voilà j'ai envi de remplacer les retours chariot et saut de ligne par des espace, mais j'ai testé plein de truc et je sais pas quel est le code que je dois mettre pour ces caractere, je voudrais remplacer les chr(10) et les chr(13) par des espaces , pour la tabulation (chr(9)) j'ai mis \t et sa marche bien.

    Je vous montre monde 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
     
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;
    import java.util.regex.Pattern;
     
    public class programmeV2 {
     
    	public static void main(String[] parametre) throws IOException {
     
    		String cheminIn = parametre[0];
    		String cheminOut = parametre[1];
    		String para = parametre[2];
     
     
    		// compilation de la regex
    		Pattern p = Pattern.compile("##");
    		Pattern pp = Pattern.compile("@@");
    		// séparation en sous-chaînes
    		String[] items = p.split(para);	
     
    		Scanner scanner=new Scanner(new File(cheminIn));
     
    		FileWriter writer = null;
    		writer = new FileWriter(cheminOut, false);
     
    		//Lecture du fichier
    		while (scanner.hasNextLine()) {
    		    String line = scanner.nextLine();
    		    //Remplace les caractères
    			for(int i=0; i < items.length; i++){
    				String[] sousItems = pp.split(items[i]);
    				String paraIn= sousItems[0];
    				String paraOut = sousItems[1];
    				line=line.replaceAll(paraIn, paraOut);
    			}
     
    		    //Ecriture dans le nouveau fichier
    		    String texte = line+System.getProperty("line.separator");
    		    try{
    		         writer.write(texte,0,texte.length());
    		    }catch(IOException ex){
    		        ex.printStackTrace();
    		    }
    		} 
    		writer.close();
    		scanner.close();    
    	}
    }
    Dans sousItems[0] j'ai le caractere a remplacer, et dans sousItems[1] le caractere remplacent, mais de probleme dans le code c'est juste pour le caractere retour chariot et saut de ligne que sa marche pas.

    Merci de votre aide !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Utilise un regex avec le pattern \s (qui inclura \n,\t\r).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replaceAll("\\s+", " ")
    A+.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    ok, merci juste avant de me poser sur le probleme, j'ai déjà essayer de mettre
    replaceAll("\n", " ") ou replaceAll("\r", " ") ou même replaceAll("\r\n", " "). Si tu pouvais me confirmer que avec ta technique sa marcherait ?

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Ben si tu veux ne remplacer que \n, \r et \t replaceAll("[\\r\\n\\t]+", " "); suffira.

    A+.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    Re, alors j'ai testé ce que tu ma donnée sur un fichier texte (blocnote) simple avec des tabulations et des saut de ligne (avec la touche entrée) et le programme traite correctement les tabulations mais les saut de lignes non >.<
    Merci pour ta réponse

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Déjà tu lits ton fichier ligne par ligne
    scanner.hasNextLine()
    --> les sauts de lignes ne sont pas lus
    et aussi tu ajoutes un saut de ligne à chaque lecture de ligne dans le nouveau
    String texte = line+System.getProperty("line.separator");
    Ne penses tu pas que ça vient de là?

    A+.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    Re, alors pour le scanner.hasNextLine(), je vais essayer de regarder sa.

    apres j'ai rajouter un saut de ligne car si non tout était collé, et je veux que quand je récrive la ligne en cours j'ai un saut de ligne à la fin (mais le problème c'est que j'ai des fichiers ou j'ai des chr(13) et chr(10) entre les mots et c'est eux que je voudrais supprimer donc tout supprimer, puis rajouter a la fin un saut de ligne.

    Je vais regarder pour le scanner.

    Merci

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 71
    Points : 44
    Points
    44
    Par défaut
    Re, alors j'apporte des news, donc j'ai laisser le programme comme il était, j'ai rajouter le traitement des caracteres \r\n \n et \r, et j'ai rajouté un if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Ecriture dans le nouveau fichier
    			if(line.length()!=0){
    		    String texte = line+System.getProperty("line.separator");
    		    try{
    		         writer.write(texte,0,texte.length());
    		    }catch(IOException ex){
    		        ex.printStackTrace();
    		    }
    			}
    Sur des simple fichier texte sa fonctionne bien ! je dois verifier maintenant les fichiers csv. Merci

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

Discussions similaires

  1. Tabulations remplacées par des espaces entre les balises CODE
    Par Médinoc dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 21/09/2010, 11h34
  2. [DOM] Remplacer les <br> par des espaces
    Par Sammuel dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/12/2009, 15h16
  3. Remplacer des Tabulations par des espaces dans une RichTextBox
    Par skar.theparadiz dans le forum Windows Forms
    Réponses: 11
    Dernier message: 11/07/2008, 14h43
  4. Comment remplacer les tabulations par des espaces ?
    Par richarno dans le forum Langage
    Réponses: 7
    Dernier message: 25/10/2007, 13h05

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