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 :

Lire fichier texte par lot


Sujet :

Développement de jobs

  1. #1
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut Lire fichier texte par lot
    Bonjour,

    Est ce que c'est possible de lire un fichier texte par lot, par exemple 20 lignes par 20 lignes.

    Merci beaucoup.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Je ne connais pas de composant qui fait cela, mais deux idées comme ça qui pourrait t'aider :

    1/ tFileInputFullRow (lecture du fichier ligne par ligne) -> tjavaRow (pour sauvegarder les lignes, éventuellement un traitement)

    La sauvegarde des lignes, dans un hashMap d'ArrayList par exemple. Avec une variable globale qui stocke un compteur de ligne tu peux savoir quand tu arrives à 20.
    Donc mon idée : stocker les 20 premières lignes puis remettre à 0 et faire un nouvel ArrayList avec les 20 prochaines lignes. A la fin tu peux traiter les lignes 20 par 20. Mon idée à une limite si la taille du fichier est trop importante.

    Edit : une idée à étudier 2/ -Première lecture du fichier pour avoir la taille.
    - faire une boucle de lecture du fichier et mettre dans le head et dans le footer une petite formule qui calcul grâce à cette variable ((Integer)globalMap.get("tFileInputDelimited_1_NB_LINE")), l'intervalle à prendre dans le fichier.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour,

    Apparemment ce n'est pas géré dans Talend alors je me suis débrouillé en code JAVA.

    J'ai fait un lien iterate entre l'input 'le fichier' et un composant java, je compte jusqu'à 20 puis je stocke dans un ArrayList de String puis je remets le compteur a zéro et je refais la même chose.

    Merci en tout cas.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  4. #4
    Membre habitué Avatar de TheBlue
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    167
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 167
    Points : 147
    Points
    147
    Par défaut
    Bonjour,

    Excusez de rouvrir la discussion après tant d’année En fait j’ai un besoin similaire.

    Voilà ce que j’ai fait :

    Nom : 1.PNG
Affichages : 448
Taille : 12,1 Ko


    En sortie du composant tFlowToIterate, j’ai activé la case à cocher d’exécutions parallèles, et j’ai choisi un lot de 10

    Nom : 2.PNG
Affichages : 443
Taille : 1,7 Ko


    Or lors de l’affichage dans le tJava par le code :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(	((Integer)globalMap.get("tFlowToIterate_1_CURRENT_ITERATION")) );

    Les lignes parcourus ne sont pas en ordre, et leur ordre diffère d’une exécution à l’autre, comme par exemple :

    Nom : 3.PNG
Affichages : 444
Taille : 2,0 Ko

    Y a-t-il une manière plus simple à faire ?

    Merci d’avance.

    Cordialement.

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

Discussions similaires

  1. Lire Fichier Texte Dans Une TextBox Par FTP
    Par pipoi26 dans le forum VB.NET
    Réponses: 5
    Dernier message: 16/02/2011, 19h21
  2. Lire dans un fichier texte par flux
    Par Fredo123456 dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2010, 07h48
  3. lire un fichier texte par rapport à un symbole
    Par adeltimple dans le forum Langage
    Réponses: 3
    Dernier message: 27/05/2008, 00h14
  4. Lire fichier texte par morceaux
    Par lilibert dans le forum MATLAB
    Réponses: 1
    Dernier message: 12/07/2007, 10h37
  5. Outil pour modification de fichiers html par lots
    Par Tavernier dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/08/2005, 10h21

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