delimited text - Delimit a string by character unless within quotation marks C# -
i need demilitarise text single character, comma. want use comma delimiter if not encapsulated quotation marks.
an example:
method,value1,value2
would contain 3 values: method, value1 , value2
but:
method,"value1,value2"
would contain 2 values: method , "value1,value2"
i'm not sure how go when splitting string use:
string.split(',');
but demilitarise based on commas. possible without getting overly complicated , having manually check every character of string.
thanks in advance
copied comment: use available csv parser visualbasic.fileio.textfieldparser
or this or this.
as requested, here example textfieldparser
:
var alllinefields = new list<string[]>(); string sampletext = "method,\"value1,value2\""; var reader = new system.io.stringreader(sampletext); using (var parser = new microsoft.visualbasic.fileio.textfieldparser(reader)) { parser.delimiters = new string[] { "," }; parser.hasfieldsenclosedinquotes = true; // <--- !!! string[] fields; while ((fields = parser.readfields()) != null) { alllinefields.add(fields); } }
this list contains single string[]
2 strings. have used stringreader
because sample uses string, if source file use streamreader
(f.e. via file.opentext
).
Comments
Post a Comment