Reputation: 16040
Hi all I am reading a csv file and I have encounted a problem when there is a comma inside the field
It all works till I get a comma within a comma all the fields will have "" around it.
string delimiter=",";
using (var sr = new StreamReader(fileName))
{
sr.ReadLine(); //skip headers
while (!sr.EndOfStream)
{
var readline = sr.ReadLine();
if (readline == null) continue;
var fields = readline.Split (delimiter.ToCharArray());
}
}if I CANNOT split because of commas within quotation . How can I recode it?
I cannot use open source or thirdy party libraries.
Any suggestions?
Upvotes: 2
Views: 1973
Reputation: 1062780
Since 3rd party libraries are out, a few choices (there are probably others):
Upvotes: 0
Reputation: 499002
Use the TextFieldParser
class.
The description on MSDN is:
Provides methods and properties for parsing structured text files.
It lives in the Microsoft.VisualBasic.FileIO
namespace, so not third party nor open source.
It is a managed class, so you can simply add a reference, import the namespace and use.
Example usage:
using(var fileReader = New TextFieldParser("C:\ParserText.txt"))
{
fileReader.TextFieldType = FieldType.Delimited;
fileReader.SetDelimiters(",");
...
}
Upvotes: 3