Mengendalikan lajur CSV yang mengandungi koma terbenam dalam C#
Apabila membahagikan fail CSV, anda mungkin menemui lajur yang mengandungi koma, seperti alamat atau perihalan terbenam. Walaupun kaedah pemisahan pembatas tradisional mungkin gagal dalam kes ini, terdapat beberapa penyelesaian teguh tersedia dalam C#.
Salah satu cara ialah menggunakan kelas Microsoft.VisualBasic.FileIO.TextFieldParser
. Kelas ini mengendalikan menghurai fail teks yang dibataskan, membenarkan pengendalian khusus bagi medan yang disebut.
Pertimbangkan contoh CSV berikut dengan koma terbenam dalam lajur alamat:
<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>
Untuk menghuraikan CSV ini menggunakan TextFieldParser
anda boleh mengikuti contoh kod berikut:
<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>
Dengan menetapkan HasFieldsEnclosedInQuotes
kepada true
, TextFieldParser
akan mengendalikan medan petikan secara berbeza, menghalang koma di dalamnya daripada dianggap sebagai pembatas.
Output akhir akan membahagikan CSV ke dalam medan individunya dengan betul, mengekalkan koma terbenam dalam alamat "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>
Dengan memanfaatkan kelas TextFieldParser
, anda boleh mengendalikan lajur CSV yang mengandungi koma terbenam dengan cekap, memastikan tafsiran dan manipulasi data yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk mengendalikan lajur CSV yang mengandungi koma tertanam di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!