ホームページ > バックエンド開発 > C++ > C# で埋め込みカンマを含む CSV 列を処理する方法

C# で埋め込みカンマを含む CSV 列を処理する方法

Linda Hamilton
リリース: 2025-01-26 17:01:11
オリジナル
521 人が閲覧しました

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

C# で埋め込みカンマを含む CSV 列を処理する

CSV ファイルを分割するときに、埋め込まれたアドレスや説明など、カンマを含む列が見つかることがあります。この場合、従来の区切り文字分割方法は失敗する可能性がありますが、C# ではいくつかの堅牢なソリューションが利用できます。

1 つの方法は、Microsoft.VisualBasic.FileIO.TextFieldParser クラスを使用することです。このクラスは区切り文字で区切られたテキスト ファイルの解析を処理し、引用符で囲まれたフィールドの特定の処理を可能にします。

アドレス列にカンマが埋め込まれた次の CSV の例を考えてみましょう:

<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>
ログイン後にコピー

TextFieldParser を使用してこの CSV を解析するには、次のコード例に従うことができます:

<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>
ログイン後にコピー

HasFieldsEnclosedInQuotestrue に設定すると、TextFieldParser は引用符で囲まれたフィールドを別の方法で処理し、フィールド内のカンマが区切り文字として扱われなくなります。

最終出力では、CSV が個々のフィールドに正しく分割され、「オレゴン州コーバリス」住所に埋め込まれたカンマが保持されます。

<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>
ログイン後にコピー

TextFieldParser クラスを利用すると、埋め込みカンマを含む CSV 列を効率的に処理でき、正確なデータ解釈と操作が保証されます。

以上がC# で埋め込みカンマを含む CSV 列を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート