Maison > développement back-end > C++ > Comment gérer les colonnes CSV contenant des virgules intégrées dans C #?

Comment gérer les colonnes CSV contenant des virgules intégrées dans C #?

Linda Hamilton
Libérer: 2025-01-26 17:01:11
original
521 Les gens l'ont consulté

How to Handle CSV Columns Containing Embedded Commas in C#?

Gestion des colonnes CSV contenant des virgules incorporées en C#

Lors du fractionnement d'un fichier CSV, vous pouvez rencontrer des colonnes contenant des virgules, telles que des adresses ou des descriptions intégrées. Bien que les méthodes traditionnelles de fractionnement des délimiteurs puissent échouer dans ce cas, il existe des solutions robustes disponibles en C#.

Une façon consiste à utiliser la classe Microsoft.VisualBasic.FileIO.TextFieldParser. Cette classe gère l'analyse des fichiers texte délimités, permettant une gestion spécifique des champs entre guillemets.

Considérez l'exemple CSV suivant avec des virgules intégrées dans la colonne d'adresse :

<code>"2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34"</code>
Copier après la connexion

Pour analyser ce CSV à l'aide de TextFieldParser vous pouvez suivre l'exemple de code suivant :

<code class="language-csharp">using Microsoft.VisualBasic.FileIO;

TextFieldParser parser = new TextFieldParser(new StringReader(csv));
parser.HasFieldsEnclosedInQuotes = true;
parser.SetDelimiters(",");

string[] fields;

while (!parser.EndOfData)
{
    fields = parser.ReadFields();
    foreach (string field in fields)
    {
        Console.WriteLine(field);
    }
}

parser.Close();</code>
Copier après la connexion

En définissant HasFieldsEnclosedInQuotes sur true, TextFieldParser gérera les champs entre guillemets différemment, empêchant les virgules qu'ils contiennent d'être traitées comme des délimiteurs.

Le résultat final divisera correctement le CSV en champs individuels, en préservant les virgules intégrées dans l'adresse « Corvallis, OR » :

<code>"2"
"1016"
"7/31/2008 14:22"
"Geoff Dalgas"
"6/5/2011 22:21"
"http://stackoverflow.com"
"Corvallis, OR"
"7679"
"351"
"81"
"b437f461b3fd27387c5d8ab47a293d35"
"34"</code>
Copier après la connexion

En tirant parti de la classe TextFieldParser, vous pouvez gérer efficacement les colonnes CSV contenant des virgules intégrées, garantissant ainsi une interprétation et une manipulation précises des données.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal