Gérer efficacement les virgules dans l'analyse CSV C#
L'analyse des fichiers CSV devient complexe lorsqu'il s'agit de colonnes délimitées par des virgules. Cet article présente une solution robuste utilisant la classe Microsoft.VisualBasic.FileIO.TextFieldParser
en C#.
La classe TextFieldParser
offre un avantage significatif en gérant intelligemment les champs entre guillemets et non cités. Cela garantit une extraction précise des données même lorsque des virgules apparaissent dans la valeur d'une colonne.
Illustrons cela avec un exemple pratique :
<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>
Le code initialise un TextFieldParser
avec les données CSV. Surtout, HasFieldsEnclosedInQuotes
est défini sur true
pour permettre à l'analyseur d'interpréter correctement les champs cités. Le délimiteur est défini sur une virgule.
La boucle while
parcourt chaque ligne et ReadFields()
divise la ligne en un tableau de champs. Le code imprime ensuite chaque champ sur la console. L'instruction using
garantit un nettoyage approprié des ressources.
Cette méthode fournit un moyen fiable d'analyser les données CSV, en préservant avec précision les valeurs de colonne contenant des virgules intégrées entre guillemets.
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!