Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2011, 12h04   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Rajouter le numero de ligne dans un fichier Txt

Bonjour

J'ai un fichier en entrée et je veux rajouter un champ au debut qui contient le numero de ligne.

Pour ça j'ai mis :

tFileList --> TfileInput --> TflowToIterate --> tJava --> TMap --> TfileOUptDelimited.

Dans Tjava :
Code :
1
2
3
4
5
6
7
IF((Integer) globalMap.get("cpt") == NULL) globalMap.put("cpt",0);
Integer temp = (Integer) globalMap.get("cpt");
globalMap.put("cpt",temp + 1 );
dans tMap 
le numeoLigne = (Integer) globalMap.get("cpt")
ch2 = 
((String)globalMap.get("row1.ch2"))
il me rajoute bien les numero de ligne, mais le problemes pour les champs qui sont nulles (cad il n'ya pas de séparateur ";" ) il les remplacent par des vides et des point virgules entre ces champs.

En conclusion, dans mon fichier crée je trouve dans des lignes plus de point virgules que celui de depart, et moi je veux garder le meme nombre de point virgules....

Avez vous une idée SVP ? Ou bien avez vous une autre idée qui me permet de copier un fichier dans un autre en rajouter juste le numero de ligne pour chaque ligne ??

Merci d'avance
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h10   #2
Membre actif
 
Avatar de sofiane_bfm007
 
Consultant Décisionnel
Inscription : mai 2008
Messages : 261
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Consultant Décisionnel

Informations forums :
Inscription : mai 2008
Messages : 261
Points : 187
Points : 187
Envoyer un message via MSN à sofiane_bfm007
Bonjour,

Tu peux utiliser une séquence avec une variable de contexte pour début de la séquence.
Avant toutes itérations tu initialise ta variable à 1 mais à partir de la second itération tu récupère le numéro de la dernière ligne et de mettre à jour ta variable de contexte.

exemple :
première itération :
Code :
1
2
var=1;
sequence("s1",var,1)
deuxième itération :
Code :
1
2
var = 50; (récupérable par un comptage sur le fichier)
sequence("s1",var,1)
A toi de jouer, c'est facile

Bon courage
__________________
Business Intelligence : Talend, Cognos 8, SAS 9.2, ODI
sofiane_bfm007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 14h48   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 100
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 100
Points : 7
Points : 7
Par défaut Re

J'ai pas trop bien compris :s
J'utilise une sequence à quelle niveau ?

peux tu m'expliquer mieux STP ???
Merci beaucoup
delilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 16h59   #4
Membre actif
 
Avatar de sofiane_bfm007
 
Consultant Décisionnel
Inscription : mai 2008
Messages : 261
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Consultant Décisionnel

Informations forums :
Inscription : mai 2008
Messages : 261
Points : 187
Points : 187
Envoyer un message via MSN à sofiane_bfm007
tu utilise une séquence au niveau du tMap que tu vas initialiser avant itération
__________________
Business Intelligence : Talend, Cognos 8, SAS 9.2, ODI
sofiane_bfm007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h38.


 
 
 
 
Partenaires

Hébergement Web