Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Fri 14 June 2024 14:39

Max C0L1
Juste Inscrit !
Lieu: Les Monts d'aunay
Date d'inscription: 18 Jan 2023
Messages: 2

Obtenir un sortie avec entêtes de champ et sans entité au format CSV

Bonjour
Je souhaite obtenir un fichier CSV avec une liste de données filtrées même quand je n'ai aucune entité (FME 2022.2)
J'utilise le transmormer TestFilter et j'obtiens à la sortie :
       1) lorsque j'ai des résultats, le Writer me donne bien un CSV avec les entêtes et les entités
       2) lorsque je n'ai pas de résultat il ne me créer pas de fichier CSV
Pour pouvoir avoir un fichier de sortie j'ai ajouté le transformer NoFeaturesTester ce qui créer une ligne vide et me permet d'avoir en sortie un fichier CSV. Le problème c'est que cette solution me créer une entité avec des données vide alors que j'ai besoin uniquement des entêtes !

Je débute avec FME et je vois pas trop vers où m'orienter !
Si quelqu'un a une piste ?

Hors ligne

 

#2 Sat 15 June 2024 10:23

Benoit D
Participant actif
Date d'inscription: 17 Jul 2018
Messages: 148

Re: Obtenir un sortie avec entêtes de champ et sans entité au format CSV

Bonjour, je n'ai pas trouvé de manière simple de faire.
Si votre schéma est fixe, un CSV n'étant qu'un fichier texte formaté, écrivez un fichier texte en fabricant votre ligne d'entête et en l'écrivant dans un fichier texte. Attention à bien respecter votre caractère de séparation, votre fin de ligne, votre encodage.
Si votre schéma est dynamique ou variable, il faudrait avoir au moins une entité dispo, par exemple dans un traitement avant le filtre qui ne renvoie aucune entité, puis d'en extraire les attributs par un "SchemaScanner" à la sortie duquel on ajoute un "ListConcatenator" pour générer la ligne des entêtes en faisant bien attention à choisir son caractère de séparation, puis on doit retraiter la chaîne créée pour retirer les attributs non exposés qui ont étés ajoutés, je le fais avec un "StringReplacer" en mode Expression régulière contenant la valeur "(csv[^,]+,?|fme[^,]+,?|multi[^,]+,?)" si le séparateur est la virgule (à adapter sinon) pour retirer les champs liés à la lecture du CSV, aux attributs FME obligatoires. Enfin cette ligne sera écrite dans un fichier texte.

Hors ligne

 

Pied de page des forums

Powered by FluxBB