|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 3 ![]() |
Bonjour,
Je débute dans la BI en qualité de stagiaire, il m'a était demandé d'alimenter des tables par des champs d'une autre table, jusqu'ici rien de sorcier, le soucis est que ma table source est un fichier *.txt avec aucune délimitation. Je m'explique, ce fichier contient des enregistrement de 350 caractères, mais dans mon fichier texte c'est enregistrement se sont pas ordonner l'un après l'autre proprement, ils sont concaténés sans retour chariot, ni espace. Ma question est la suivante, comment puis-je découper la ligne immense de mon fichier texte en plusieurs lignes de 350 caractères? Cordialement. |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : février 2010 Messages : 24 ![]() |
Bonjour,
A priori il te faudra le coder en java, dans le composant tJavaFlex : Tu peux boucler sur ta ligne fichier en incrémentant l'intervalle de positions qui correspond aux lignes dont tu as besoins pour ton flux (0-350, 350-700, ...) Pour comprendre l'usage de tJavaFlex (et des composants en général) : > http://infodecisionnel.com/talend/ta...-le-tjavaflex/ Grosso-modo : - La partie start contient l'ouverture de la boucle for en incrémentant ton indice i avec un pas de 350 - La partie main contient : -- le substring de ta ligne du fichier, sur la portion indicée (ex: 350-700) -- l'affectation de ce substring au flux de sortie du tJavaFlex (dépend du ou des champs créés dans le schéma du tJavaFlex) - La partie end ferme la boucle for (ie: " } ") Julien |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : mai 2011 Messages : 3 ![]() |
Bonjour,
Merci pour ta réponse et pour la doc sur le tJavaFlex, très utile, mais j'ai trouvé la solution pour tout faire sur un seul job Talend avec un code java assez simple : public class ReadWriteFile { public static void sortfichier(String pathFileSource, String pathFileDest) throws IOException { FileReader entree = new FileReader(pathFileSource); FileWriter sortie = new FileWriter(pathFileDest); int c; while((c = entree.read()) != -1){ sortie.write(c); for(int i = 2; i <351; i++){ sortie.write(entree.read()); } sortie.write("\n" ) ; } entree.close(); sortie.close(); } } je traite la routine dans un composant tJava une fois le fichier traité il m'est plus facile de créer un fichier positionnel dans mon référentiel. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com