/// <summary> /// Parses a delimited string to be seperated /// </summary> /// <param name="value">String to seperated</param> /// <returns>Returns a delimited string</returns> public static CommaDelimitedString Parse(string value) { List<String> stringlist = new List<string>(); StringBuilder builder = new StringBuilder(); bool NextSpecial = false; bool QuoteOpen = false; for (int i = 0; i < value.Length; i++) { char current = value[i]; if (NextSpecial == false) { switch (current) { case ',': if (QuoteOpen == false) { stringlist.Add(builder.ToString()); builder = new StringBuilder(); } else { builder.Append(current); } break; case '\\': NextSpecial = true; break; case '"': QuoteOpen ^= true; break; default: builder.Append(current); break; } } else { NextSpecial = false; switch (current) { case ',': if (QuoteOpen == false) { stringlist.Add(builder.ToString()); builder = new StringBuilder(); } else { builder.Append(current); } break; case '"': builder.Append(current); break; default: builder.Append('\\'); builder.Append(current); break; } } } stringlist.Add(builder.ToString()); CommaDelimitedString delimitedString = new CommaDelimitedString(); delimitedString._Fields = stringlist.ToArray(); return delimitedString; }
/// <summary> /// Parses a delimited string to be seperated /// </summary> /// <param name="value">String to seperated</param> /// <returns>Returns a delimited string</returns> public static CommaDelimitedString Parse(string value) { List <String> stringlist = new List <string>(); StringBuilder builder = new StringBuilder(); bool NextSpecial = false; bool QuoteOpen = false; for (int i = 0; i < value.Length; i++) { char current = value[i]; if (NextSpecial == false) { switch (current) { case ',': if (QuoteOpen == false) { stringlist.Add(builder.ToString()); builder = new StringBuilder(); } else { builder.Append(current); } break; case '\\': NextSpecial = true; break; case '"': QuoteOpen ^= true; break; default: builder.Append(current); break; } } else { NextSpecial = false; switch (current) { case ',': if (QuoteOpen == false) { stringlist.Add(builder.ToString()); builder = new StringBuilder(); } else { builder.Append(current); } break; case '"': builder.Append(current); break; default: builder.Append('\\'); builder.Append(current); break; } } } stringlist.Add(builder.ToString()); CommaDelimitedString delimitedString = new CommaDelimitedString(); delimitedString._Fields = stringlist.ToArray(); return(delimitedString); }