Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2016-12-08T09:59:53+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Problème de virgule textuelles dans un fichier CSV, message #1343072016-12-08T09:59:53+01:00Kje/@Kjehttps://zestedesavoir.com/forums/sujet/7523/probleme-de-virgule-textuelles-dans-un-fichier-csv/?page=1#p134307<p>De rien. En vrai c'est toi qui a fait tout le vrai boulot : tu as posé une question précise avec des détails et toutes les informations nécessaires. </p>
<p>Ça doit faire 10 ans que je n'ai pas écris une ligne de Java et donc j'ai jamais utilisé ta lib. Mais avec la doc j'ai put t'apporter un point de vue extérieur. </p>Problème de virgule textuelles dans un fichier CSV, message #1343042016-12-08T09:43:02+01:00Nemo/@Nemohttps://zestedesavoir.com/forums/sujet/7523/probleme-de-virgule-textuelles-dans-un-fichier-csv/?page=1#p134304<p>Bingo!
Problème résolu!
Merci beaucoup Kje!</p>Problème de virgule textuelles dans un fichier CSV, message #1343032016-12-08T09:35:05+01:00Kje/@Kjehttps://zestedesavoir.com/forums/sujet/7523/probleme-de-virgule-textuelles-dans-un-fichier-csv/?page=1#p134303<p>La paramètre <code>quotechar</code> semble être ce que tu as besoin de modifier. Si je me fit à la doc que tu as donné, c'est justement le paramètre qui est censé indiquer avec quel caractère tu entoure les chaines qui contiennent des virgules. </p>
<p>Actuellement tu lui passe la valeur <code>'\''</code> qui correspond au caractère <code>'</code>. Essai de replacer ça par <code>'"'</code> puisque tu nous dis que c'est le caractère <code>"</code> qui semble entourer les chaines.</p>Problème de virgule textuelles dans un fichier CSV, message #1343012016-12-08T09:18:20+01:00Nemo/@Nemohttps://zestedesavoir.com/forums/sujet/7523/probleme-de-virgule-textuelles-dans-un-fichier-csv/?page=1#p134301<p>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.</p>
<p>J'utilise <a href="http://opencsv.sourceforge.net/">OpenCSV</a> pour extraire les champs de mes fichiers CSV, et je suis bloqué sur un problème. Voici lequel:</p>
<p>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.</p>
<p>Exemple, la ligne de champs suivante:
4,4,22,20,"Chop suey, with meat, canned","Chop suey, avec viande, conserve",1981-01-01,,,</p>
<p>Dans le 5e champ, les virgules font obstruction…</p>
<p>J'utilise la ligne de code suivante pour ouvrir mon fichier CSV:</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">CSVReader</span> <span class="n">rdFoodName</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CSVReader</span><span class="o">(</span><span class="k">new</span> <span class="n">FileReader</span><span class="o">(</span><span class="s">"*****/Java/Neon/Nutrion/cnf-fcen-csv/FOOD NAME.csv"</span><span class="o">),</span> <span class="sc">','</span><span class="o">,</span> <span class="sc">'\''</span><span class="o">,</span> <span class="mi">1</span><span class="o">);</span>
</pre></div>
</td></tr></table>
<p>J'ai de la difficulté à saisir le fonctionnement du paramètre \ '.</p>
<p>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:</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="kd">public</span> <span class="nf">CSVReader</span><span class="o">(</span><span class="n">Reader</span> <span class="n">reader</span><span class="o">,</span>
<span class="kt">char</span> <span class="n">separator</span><span class="o">,</span>
<span class="kt">char</span> <span class="n">quotechar</span><span class="o">,</span>
<span class="kt">char</span> <span class="n">escape</span><span class="o">,</span>
<span class="kt">int</span> <span class="n">line</span><span class="o">)</span>
<span class="n">Constructs</span> <span class="n">CSVReader</span><span class="o">.</span>
<span class="nl">Parameters:</span>
<span class="n">reader</span> <span class="o">-</span> <span class="n">The</span> <span class="n">reader</span> <span class="n">to</span> <span class="n">an</span> <span class="n">underlying</span> <span class="n">CSV</span> <span class="n">source</span><span class="o">.</span>
<span class="n">separator</span> <span class="o">-</span> <span class="n">The</span> <span class="n">delimiter</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">separating</span> <span class="n">entries</span>
<span class="n">quotechar</span> <span class="o">-</span> <span class="n">The</span> <span class="n">character</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">quoted</span> <span class="n">elements</span>
<span class="n">escape</span> <span class="o">-</span> <span class="n">The</span> <span class="n">character</span> <span class="n">to</span> <span class="n">use</span> <span class="k">for</span> <span class="n">escaping</span> <span class="n">a</span> <span class="n">separator</span> <span class="n">or</span> <span class="n">quote</span>
<span class="n">line</span> <span class="o">-</span> <span class="n">The</span> <span class="n">number</span> <span class="n">of</span> <span class="n">lines</span> <span class="n">to</span> <span class="n">skip</span> <span class="n">before</span> <span class="n">reading</span>
</pre></div>
</td></tr></table>
<p>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</p>