- Nemo,
Voilà, je suis lancé dans mon projet de logiciel de valeur nutritive et je suis en train de faire un logiciel pour convertir les fichiers CSV relationnels du FCEN de Santé Canada en une BDD H2.
J'utilise OpenCSV pour extraire les champs de mes fichiers CSV, et je suis bloqué sur un problème. Voici lequel:
Les champs dans les fichiers sont séparé par des virgules. Mais parmi les champs il arrive qu'il y ait un champ texte entre " qui inclus des virgules qui viennent alors perturber le fonctionnement de OpenCSV.
Exemple, la ligne de champs suivante: 4,4,22,20,"Chop suey, with meat, canned","Chop suey, avec viande, conserve",1981-01-01,,,
Dans le 5e champ, les virgules font obstruction…
J'utilise la ligne de code suivante pour ouvrir mon fichier CSV:
1 | CSVReader rdFoodName = new CSVReader(new FileReader("*****/Java/Neon/Nutrion/cnf-fcen-csv/FOOD NAME.csv"), ',', '\'', 1); |
J'ai de la difficulté à saisir le fonctionnement du paramètre \ '.
Il exite un autre constructeur de CSVReader qui ajoute un au paramètre entre le quotechar et le line, c'est le escape, dont je n'arrive pas à saisir la fonctionnalité, voici ce qu'en dit la documentation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public CSVReader(Reader reader, char separator, char quotechar, char escape, int line) Constructs CSVReader. Parameters: reader - The reader to an underlying CSV source. separator - The delimiter to use for separating entries quotechar - The character to use for quoted elements escape - The character to use for escaping a separator or quote line - The number of lines to skip before reading |
Alors voilà, savez-vous s'il y a un moyen avec OpenCSV ou autre de pouvoir traiter différemment ces virgules textuelles? Si nécessaire, je pourrais vous zipper mon projet et vous le rendre disponible… A+ Nemo