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

avec Java Discussion :

Supprimer les sauts de ligne dans les champs texte d'un csv


Sujet :

avec Java

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur généraliste
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti Ingénieur généraliste

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut Supprimer les sauts de ligne dans les champs texte d'un csv
    Bonjour à tous, c'est la première fois que je poste sur un forum, merci d'être indulgent .

    Je cherche à importer des données CSV dans l'ERP de mon entreprise et j'ai besoin de les mettre en forme. En effet, des sauts de ligne présents dans les champs texte sont interprétés comme des sauts de ligne du tableau.
    J'ai déjà pas mal cherché de solution et j'ai écris un programme :
    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
     
    import java.io.FileWriter;
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
     
    public class test 
    {
    	public static void main(String[] args)  
    	throws IOException
    	{
    		String dataOld = new String(Files.readAllBytes(Paths.get("c:\\test.csv")));
    		//System.out.println(dataOld);
     
    		int nbCara=dataOld.length();
    		//System.out.println(nbCara);
    		int i=0,j=0,k=0;
     
    		while (i < nbCara-2) //Tant que le pointeur n'est pas à la fin du String (-1)
    		{
    			j=dataOld.indexOf((char)34,i); //Recherche le début du champ texte " à partir du caractère n° i
    			//System.out.print("j :");
    			//System.out.println(j);
     
    			k=dataOld.indexOf((char)34,j+1); //Recherche la fin du champ texte " à partir du début de ce champ 
    			//System.out.print("k :");
    			//System.out.println(k);
     
    			String champ = dataOld.substring(j,k+1); //Extrait les caractères du champ texte
    			//System.out.println(champ);
     
    			if (champ.contains("[\r\n]+"))	//Si le champ contient un saut de ligne
    			{
    				champ = champ.replaceAll("[\r\n]+"," "); // Remplacer le saut de ligne par un espace
    			}
     
    			FileWriter fw = new FileWriter("c:\\test1.csv",true); //écris dans un autre fichier
    			fw.write(champ+';');					      //Le champ + le séparateur
    			fw.close();
    			i=k+1;							      //On incrémente le pointeur de la position de fin du champ +1
    			//System.out.println(i);
    		}
    	}
    }
    Le problème est que je retrouve mes , séparatrices en sortie et je ne vois pas comment faire autrement pour ne pas les avoir.
    Merci beaucoup pour votre aide.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/07/2016, 09h36
  2. [CR XI] Supprimer double saut de ligne dans un champ texte
    Par Cereal123 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 04/12/2015, 16h39
  3. ETAT - Ignorer les sauts de ligne dans un champ mémo
    Par superseba888 dans le forum Access
    Réponses: 4
    Dernier message: 14/08/2006, 02h27
  4. Réponses: 2
    Dernier message: 12/02/2006, 15h42
  5. Réponses: 9
    Dernier message: 23/05/2005, 09h35

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