CSV 형태로 된 문자열을 파싱하기 위한 C#언어로 작성된 함수입니다. 예전에 XrGeocoder 프로그램을 개발할때 사용했던 함수로.. 또 다른 프로젝트에서 사용되면서 함수만을 분리해 정리해 봅니다.>/p>
private ListSeperateStringWithComma(String value) { bool inQuotes = false; char delim = ','; List strings = new List (); StringBuilder sb = new StringBuilder(); foreach (char c in value) { if (c == '\'' || c == '"') { if (!inQuotes) inQuotes = true; else inQuotes = false; } if (c == delim) { if (!inQuotes) { strings.Add(sb.Replace("'", string.Empty).Replace("\"", string.Empty).ToString()); sb.Remove(0, sb.Length); } else { sb.Append(c); } } else { sb.Append(c); } } strings.Add(sb.Replace("'", string.Empty).Replace("\"", string.Empty).ToString()); return strings; }
위의 함수를 사용하는 예제는 다음과 같습니다.
String csv = "2011-01-01,18,2008,개인,인천,중구,~,2010-12-31,233400,남자"; Listvalues = SeperateStringWithComma(csv); int cntValues = values.Count; for (int i = 0; i < cntValues; i++) { MessageBox.Show(values[i]); }