Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
RÉSOLU

Supprimer les espaces avant et après une barre verticale \ une pipe (|)

Abdesslem_19
Astéroïde

Bonjour à tous, 

 

Comment puis-je supprimer les espaces avant et après une pipe (|) de mon fichier d'entrée ??

le fichier d'entrée est de format texte (.txt) 

 

par exemple ces deux lignes dans un fichier texte : 

 

123  |  ZONE   |  109 RUE  |  |  38340   | DZ  |  1  |2012-10-31

321  |    | 4 RUE | | 93100  | FR | 1 |2022-10-31

 

devient :

123|ZONE|109 RUE||38340|DZ|1|2012-10-31

321||4 RUE||93100|FR|1|2022-10-31

 

Merci d'avance.

11 RÉPONSES 11
BenoitC
Alteryx
Alteryx

Bonjour @Abdesslem_19 

 

Merci d'avoir pris le temps de poser une question sur la communauté Alteryx!

 

J'ai trouvé deux pistes pour répondre à ton besoin:

 

BenoitC_0-1669116677237.png

La première solution serait d'utiliser la formule Replace puis d'indiquer le type de données en entrée Replace([Field1]," | ","|"). En suivant ton format, je n'ai pas réussi du premier coup, il faudra peut-être utiliser plusieurs formules.

 

BenoitC_1-1669116724629.png

 

La deuxième solution est d'utiliser l'outil Regex qui permet de transcrire tous types de texte:

BenoitC_2-1669116789852.png

En cliquant sur le plus, tu peux voir la transcription du code Regex \s*?\|\s*, en l'occurrence cela signifie "nombre d'espace blanc indéfini, pipe, espace blanc"

 

Est-ce que cela répond à ton besoin?

 

Benoit

Benoit Conley

Sales Engineer
Alteryx, Inc.

Abdesslem_19
Astéroïde

Bonjour,

 

Merci beaucoup pour ta réponse, je pense que la deuxième réponse ça répond mieux à mon besoin,

 

Mais je dois appliquer cette fonction sur tous les champs d'un fichier d'entrée de type .txt  d'où les pip (|) sont des délimiteurs !!!!

 

Merci 

 

Cordialement 

Abdesslem

StephaneP
Alteryx
Alteryx

Bonjour @Abdesslem_19 ,

Je ne suis pas sur de comprendre le format du fichier source... et la cible que tu souhaites atteindre. Est ce 1 colonne avec les pipes mais plus d'espace ou justement N colonnes pour avoir cette colonne splittée sur plusieurs colonnes dès qu'il y a un pipe.


Mais imaginons que comme @BenoitC l'a proposé dans son workflow tu as 1 colonne avec toutes les informations séparées par des pipes.
Tu peux via l'outil "Texte en colonnes" demander à Alteryx de te créer tes colonnes dès qu'il rencontre un pipe. Ici 8 colonnes.

StephaneP_1-1669148145766.png

Tu auras donc les colonnes crées mais toujours avec les espaces avant et après.

StephaneP_2-1669148189162.png

Il suiffit donc de rajouter l'objet "Nettoyage de données" qui se chargera de supprimer en 1 passe tous ces espaces pour toutes tes colonnes quelquesoit leur nombre.

 

StephaneP_0-1669147683664.png

 

StephaneP_3-1669148297045.png

J'espère que cela aide

Stéphane Portier
Sales Engineer
Alteryx
Abdesslem_19
Astéroïde

Bonjour @StephaneP

 

Merci d'avoir pris le temps de me répondre.

 

Pour que ce soit plus clair :

 

Le fichier source :

Les espaces blancs avant et après les pip ont des tailles différentes.

 

Abdesslem_19_1-1669199183035.png

 

Je me connecte aux fichier source sur Alteryx : 

 

Abdesslem_19_3-1669199454742.png

 

La cible que je souhaite atteindre

 

Abdesslem_19_0-1669199116422.png

 

Maintenant je supprime les espaces blancs manuellement dans le bloc note avant de le connecter sur alteryx afin de traiter de données, je veux faire cette opération sur altryxx directement ( Vu le nombre des fichiers - plus de 50 fichiers , chaque fichier a plus de 100 mille lignes). 

 

Ci-joints ci dessous le fichier source et la cible.

 

Merci beaucoup de votre aide.

 

 

 

StephaneP
Alteryx
Alteryx

Bonjour,

 

Merci pour les précisions et les fichiers. C'est donc plus claire pour l'entrée.

 

En revanche je ne suis toujours pas claire sur le cible.

1. Est ce que tu veux juste re générer le fichier source avec les pipes sans les espaces ? (1. Je charge, 2, j'enlève les espaces surnuméraire, 3. je regénère un fichier avec des |)

2. Est ce que tu veux charger les fichiers dans Alteryx en supprimant les espaces pour l'utiliser pour d'autres usages dans Alteryx? (tel que je l'ai montré dans le workflow précédent)

Merci

 

Stéphane Portier
Sales Engineer
Alteryx
StephaneP
Alteryx
Alteryx

Voici déjà un enrichissement du workflow précédent qui écrit un .csv mais avec des PIPE comme séparateur.

StephaneP_0-1669202933908.png

Ce qui génère cette sortie (a noter les doubles quotes autour de "Date d'arrêté" mais qu'on peut demander à enlever avec l'option 5

StephaneP_1-1669203044911.png

 

Stéphane Portier
Sales Engineer
Alteryx
Abdesslem_19
Astéroïde

Bonjour,

 

Concernant les fichiers cible :

 

Je veux charger les fichiers dans Alteryx :

 

1- en supprimant les espaces avant et après une pipe

     d'autre façon : 

     remplacer (nombre d'espace blanc indéfini suivi d'une pipe suivi d'un nombre d'espace blanc indéfini) par (une pipe)

 

2- Après, on prend les pipe comme délimiteurs des champ 

 

3- pour l'utiliser pour d'autres usages dans Alteryx (des contrôles de qualité des données pour produire des KPI), donc les formules (les contrôles) sont fixes, je n'actualise que les fichiers sources chaque 30 jours (les fichiers sources sont des extractions -Business Object)  

 

Merci.

StephaneP
Alteryx
Alteryx

OK, donc tu me confirmes que le dernier workflow, le V3 réponds à ton besoin ?
Il y a bien suppression des espaces en trop autour des pipes et tu peux au final, après tes traitements, réécrire dans un fichier plat avec le pipe comme séparateur.
Sinon précise ce que j'ai loupé et j'essaierai de répondre au mieux. 🙂

Stéphane Portier
Sales Engineer
Alteryx
Abdesslem_19
Astéroïde

 OUI, j'ai fait un test et le dernier workflow -le V3- réponds à mon besoin.

 

Merci beaucoup de votre aide et d'avoir pris le temps de me répondre.

Étiquettes