Mengendalikan Koma Dalam Petikan dalam Penghuraian CSV dengan C#
Menghuraikan fail CSV dengan betul menjadi rumit apabila medan mengandungi koma sendiri. Artikel ini menunjukkan penyelesaian C# yang teguh untuk mengekstrak data daripada fail CSV sedemikian, memfokuskan pada senario di mana medan yang dipisahkan koma disertakan dalam petikan berganda.
Cabaran timbul apabila medan, seperti "Corvallis, OR," mengandungi koma dalam kandungan yang dipetik. Pemisahan rentetan standard berdasarkan koma akan gagal dalam kes ini. Penyelesaiannya terletak pada penggunaan kelas Microsoft.VisualBasic.FileIO.TextFieldParser
.
Kelas ini direka khusus untuk mengendalikan fail yang dibataskan dengan medan yang disebut. Berikut ialah contoh kod 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>
Coretan kod ini menghuraikan data CSV dengan berkesan, mengendalikan medan yang disertakan dalam petikan dengan betul, memastikan koma dalam petikan tersebut dianggap sebagai sebahagian daripada medan dan bukan sebagai pembatas. Pernyataan using
memastikan pengurusan sumber yang betul dengan menutup TextFieldParser
secara automatik. Pendekatan ini menjamin pengekstrakan data yang tepat daripada fail CSV walaupun dengan struktur medan yang kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Fail CSV dengan Medan Dibatasi Koma yang Dilampirkan dalam Petikan Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!