Vector<String> ReadCsvLine(Stream& s, int separator, byte charset) { Vector<String> r; bool instring = false; String val; for(;;) { int c = s.Get(); if(c == '\n' || c < 0) { r.Add(ToCharset(CHARSET_UTF8, val, charset)); return r; } else if(c == separator && !instring) { r.Add(ToCharset(CHARSET_UTF8, val, charset)); val.Clear(); } else if(c == '\"') { if(instring && s.Term() == '\"') { s.Get(); val.Cat('\"'); } else instring = !instring; } else if(c != '\r') val.Cat(c); } }
Report message to a moderator