Gestion des virgules entre guillemets dans l'analyse CSV avec C#
L'analyse correcte des fichiers CSV devient complexe lorsque les champs contiennent eux-mêmes des virgules. Cet article présente une solution C# robuste pour extraire des données de tels fichiers CSV, en se concentrant sur les scénarios dans lesquels les champs délimités par des virgules sont placés entre guillemets.
Le défi se pose lorsqu'un champ, tel que « Corvallis, OR », contient une virgule dans son contenu cité. Le fractionnement de chaîne standard basé sur des virgules échouerait dans ce cas. La solution réside dans l'utilisation de la classe Microsoft.VisualBasic.FileIO.TextFieldParser
.
Cette classe est spécifiquement conçue pour gérer des fichiers délimités avec des champs entre guillemets. Voici un exemple de code C# :
<code class="language-csharp">using Microsoft.VisualBasic.FileIO; using System.IO; string csvData = "2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34"; using (TextFieldParser parser = new TextFieldParser(new StringReader(csvData))) { parser.HasFieldsEnclosedInQuotes = true; parser.SetDelimiters(","); while (!parser.EndOfData) { string[] fields = parser.ReadFields(); foreach (string field in fields) { Console.WriteLine(field); } } }</code>
Cet extrait de code analyse efficacement les données CSV, gère correctement les champs entre guillemets, garantissant que les virgules contenues dans ces guillemets sont traitées comme faisant partie du champ et non comme des délimiteurs. L'instruction using
assure une bonne gestion des ressources en fermant automatiquement le TextFieldParser
. Cette approche garantit une extraction précise des données à partir de fichiers CSV, même avec des structures de champs complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!