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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Découper un fichier csv sans séparateur avec des longueurs de colonnes fixes en plusieurs fichiers
    Bonjour,

    J'ai un fichier .txt qui est un fichier csv sans séparateur mais avec des longueurs de colonnes fixes

    Ex: colonne 1 longueur 4 , colonne 2 longueur 6, colonne 3 longueur 2
    file20190927.txt
    123412345612
    234523456723

    Je souhaite découper ce fichier qui peut-être très volumineux en plusieurs fichiers de 1000 lignes
    Le nom des fichiers découpés doit avoir la forme :

    file20190927_001.txt
    file20190927_002.txt
    etc.

    Je découvre talend, je n'arrive pas à m'en sortir.
    Quelqu'un aurait-il une solution à me proposer ?

    D'avance merci pour votre aide.

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 666
    Points : 1 416
    Points
    1 416
    Par défaut
    C'est pas un CSV mais un fichier positionnel.

    du coup pour le lire un tFileInputPositional ça me semble bien.

    https://help.talend.com/reader/NNO~f...vAnxD69EWaC5rA
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    juin 2012
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : juin 2012
    Messages : 375
    Points : 807
    Points
    807
    Par défaut
    Si c'est juste pour lire le fichier et le découper, un tFileInputFullRow pour lire le fichier avec un tFileOutputdelimited, qui a un paramètre avancé pour découper en fonction du nombre de ligne, permet de faire ce que vous désirez.

    Par contre le nom généré aléatoire ne sera pas avec les zéro non significatifs.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    En effet j'avais utilisé un tWaitForFile qui itérait vers un tFileInputFullRow connecté en row sur un tFileOutputDelimited
    Le soucis étant qu'il n'existe pas d'option permettant de paramétrer le numéro d'indice généré par le split
    Cela pose un soucis lorsqu'un fichier est découpé plus de 10 fois, car le fichier 'xxxxx_10' sera traité avant le fichier xxxxx_2' car l'ordre de traitement est fait suivant un tri alphanumérique.

  5. #5
    Membre éclairé Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    juin 2012
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : juin 2012
    Messages : 375
    Points : 807
    Points
    807
    Par défaut
    Une fois les fichiers découpés selon le nombre de ligne, une solution serait de faire un tFileList sur ces fichiers, avec un lien iterate vers un tfileCopy pour renommer les fichiers. Dans le renommage du fichier, il suffit alors d'utiliser une Numeric.sequence pour obtenir un compteur qui pourra être formaté via un String.format("%03d", Numeric.sequence("S1", 1, 1)

Discussions similaires

  1. Export en txt sans séparateur, avec espaces à la place des vides
    Par Kremy dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 12/04/2017, 12h11
  2. JTable avec des largeurs de colonnes fixées
    Par alakauf dans le forum Composants
    Réponses: 1
    Dernier message: 08/09/2012, 19h31
  3. Une fenêtre "sans contour", avec des contrôles
    Par Toufinet dans le forum Windows
    Réponses: 6
    Dernier message: 05/02/2011, 00h14
  4. Réponses: 1
    Dernier message: 26/06/2006, 11h33
  5. [JTable] Créer une JTable vide avec des noms de colonnes.
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 27/09/2005, 15h54

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