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

Développement de jobs Discussion :

remplacement des guillemets


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 7
    Points
    7
    Par défaut remplacement des guillemets
    Bonjour,

    Dans un fichier texte que l'on m'envoie, j'ai des champs séparés par des virgules. En plus des virgules, chaque champ est entouré de guillemets.
    A l'import dans talend, y a t'il moyen de supprimer ces guillemets?
    ou alors en utilisant un tmap, y a t'il une fonction pour les enlever? j'ai essayé de faire un ereplace mais cela ne fonctionne pas...

    Merci

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Bonjour,

    après ton fichier utilise un tReplace de la façon suivante : décoche simple mode et va dans l'onglet "Advanced settings" du composant. Coche "Advanced mode" ajoute tes colonnes sur lesquelles tu veux faire un remplacement de guillement et met dans la colonne Pattern : "\"" et dans la colonne Replace ""

    et le tour et joué

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Cela fonctionne très bien.
    Merci beaucoup !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    bonjour,

    ma question concerne la même problématique mais pour d'autres caractères spéciaux. C'est pourquoi je crée ce post à la suite.

    Je dois effectuer la même opération mais pour des antislashs à remplacer par des underscores...
    Pour la chaîne à remplacer, j'ai mis "\\", en chaîne de replacement "\_" mais ça ne fonctionne pas...que mettre?

    Aussi, pourquoi utiliser le mode avancé pour le treplace? Le mode simple ne suffit-il pas?

    Merci

  5. #5
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Il ne faut pas mettre "\\" car quand Talend va le mettre dans la fonction replaceAll(), cela va devenir "\" donc erreur de compilation.

    La solution est de mettre 4 backslash : "\\\\" d'où -> "\\" dans le code java.

    La méthode simple utilise la fonction replaceAll() de la manière suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringUtils.replaceAll(row1.A, "(?i)" + "chaineAChercher", "remplacement");
    alors que la méthode avancée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringUtils.replaceAll(row1.A, "chaineAChercher", "remplacement");
    Je ne suis pas expert java donc (?i) je ne sais pas à quoi cela correspond. Néanmoins je préconise la méthode avancée qui fonctionne correctement.

    Bonne continuation

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Hub2010 Voir le message
    En plus des virgules, chaque champ est entouré de guillemets.
    A priori, il suffit de cocher l'option "Options CSV" sur le composant tFileInputDelimited. Par défaut le délimiteur de texte est """, ce qui correspond bien à ce que tu veux.

    Nicolas

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Points : 287
    Points
    287
    Par défaut
    ok merci jsd

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

Discussions similaires

  1. [RegEx] preg_replace remplacer des guillemets
    Par Invité dans le forum Langage
    Réponses: 19
    Dernier message: 07/09/2011, 17h19
  2. remplacer des espaces dans un champ par des zero
    Par yeep dans le forum Access
    Réponses: 4
    Dernier message: 08/10/2004, 10h41
  3. Fonction permettant de remplacer des caractères
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 06/09/2004, 16h48
  4. [C#] Prob IndexOf sous Pocket Pc avec des guillemets
    Par freddyboy dans le forum Windows Mobile
    Réponses: 7
    Dernier message: 10/06/2004, 10h57
  5. Réponses: 2
    Dernier message: 12/01/2004, 14h56

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