|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Bonjour à tous,
J'ai un petit problème que je n'arrive pas à régler tout seul Voilà, pour commencer, j'ai un fichier CSV en entrer de ce type : LIGNE;PRIX MOYEN;EFFECTIF;POIDS 1;4,03;45;6910 2;3,15;3;1188 3;3,73;7;2619 J'aimerais tester chaque ligne du fichier et vérifier si ils sont bien de type numérique. Donc, voici mon job : tFileInputDelimited --row(main)--> tMap --out(main)--> tLogRow Et voici ce qu'il y a dans mon tMap : ![]() Comme vous pouvez le voir, mes tests sur les colonnes "LIGNE", "EFFECTIF" et "POIDS" fonctionne bien. En retour, j'ai 1 pour true et 0 pour false. Mais mon soucis, c'est sur le champ "PRIX MOYEN", étant donnée que c'est un décimal, ce test ne fonctionne pas. Y-a-t-il un moyen de tester si ce champ est bien un décimal? Merci pour votre aide. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
__________________
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) Mes articles publiés |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Merci pour ton aide
Donc, j'ai dû appliquer ce code : Code :
Math.floor(Double.parseDouble(row1.prix_moyen))!=Double.parseDouble(row1.prix_moyen) Code :
Comment régler ce problème? |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Mustapha EL HASSAKIngénieur développement logiciels Inscription : août 2009 Messages : 627 ![]() |
En effet si tu as cette erreur c'est à cause du parseDouble qui essai de convertor "sh" en un double, ce qui est impossible, donc l'exception que tu as est normal.
Sinon si tu veux traiter cette exception je te conseille de créer une routine et de faire appel à cette routine dans ton tMap. Regarde ce tuto pour comprendre comment créer et utiliser des routines sous Talend. http://haskouse.developpez.com/tutor...ation-routine/
__________________
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) Mes articles publiés |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Cédric LECLERC Développeur informatique Inscription : mai 2009 Messages : 38 ![]() |
Bonjour,
L'idée ici serait peut-être d'utiliser les expressions régulières Exemple : Code :
"MaChaineATester".matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")?true:false Bon courage. |
|
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Développeur informatique Inscription : septembre 2011 Messages : 11 ![]() |
Citation:
C'est super , ca fonctionne super bien.Je n'en demandais pas plus. En revanche, si j'ai plus de 2 chiffres après la virgule, le résultat est TRUE!! Y-a-t-il un paramètre à ajouter pour mettre en erreur si il y a plus de 2 chiffres après la virgule? Merci pour votre aide. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com